From b1296d964dda9e4603d01fd1ae09e61543cb9aea Mon Sep 17 00:00:00 2001
From: acgnhik <acgnhik@outlook.com>
Date: Sun, 22 Oct 2023 12:58:15 +0800
Subject: [PATCH] feat: deprecated old implementations and adopted a new one
 for HLS recording

---
 FAQ.md                                        |  14 --
 setup.cfg                                     |   1 -
 src/blrec/application.py                      |   3 +-
 src/blrec/bili/live.py                        |   8 +-
 src/blrec/bili/live_monitor.py                |  21 +-
 src/blrec/core/danmaku_dumper.py              |  66 +++---
 src/blrec/core/flv_stream_recorder_impl.py    |   5 +-
 .../core/hls_raw_stream_recorder_impl.py      | 110 ----------
 src/blrec/core/hls_stream_recorder_impl.py    |  80 ++++---
 src/blrec/core/metadata_provider.py           |  11 +-
 .../operators/connection_error_handler.py     |   2 +-
 src/blrec/core/operators/recording_monitor.py |  37 +++-
 .../operators/request_exception_handler.py    |  15 +-
 .../core/operators/stream_url_resolver.py     |  53 ++++-
 src/blrec/core/path_provider.py               |   9 +-
 src/blrec/core/recorder.py                    |   6 +-
 src/blrec/core/stream_recorder.py             |  27 +--
 src/blrec/core/stream_recorder_impl.py        |  51 +++--
 src/blrec/core/typing.py                      |   4 +
 src/blrec/data/webapp/287.5c768f00dcd24631.js |   1 -
 src/blrec/data/webapp/287.63ace7ac80c3d9f2.js |   1 +
 ...c2419f2617e.js => 548.f8a3199ca2412e0d.js} |   2 +-
 src/blrec/data/webapp/index.html              |   2 +-
 src/blrec/data/webapp/ngsw.json               |  16 +-
 ...55bada4.js => runtime.8688afa20dbe5cc7.js} |   2 +-
 src/blrec/disk_space/space_reclaimer.py       |  14 +-
 src/blrec/flv/operators/analyse.py            |   6 +
 src/blrec/flv/operators/helpers.py            |   2 +-
 src/blrec/flv/operators/parse.py              |   2 +-
 src/blrec/flv/operators/probe.py              |   4 +-
 src/blrec/hls/helpler.py                      |  12 ++
 src/blrec/hls/metadata_dumper.py              |  18 +-
 src/blrec/hls/operators/__init__.py           |  11 +-
 src/blrec/hls/operators/analyser.py           |  91 ++++++++
 src/blrec/hls/operators/cutter.py             |  90 ++++++++
 src/blrec/hls/operators/limiter.py            |  93 ++++++++
 src/blrec/hls/operators/playlist_dumper.py    | 198 ++++++++++--------
 src/blrec/hls/operators/playlist_fetcher.py   |  29 ++-
 src/blrec/hls/operators/playlist_resolver.py  |  48 +++--
 src/blrec/hls/operators/prober.py             |   4 +-
 src/blrec/hls/operators/segment_dumper.py     | 182 +++++++++++++---
 src/blrec/hls/operators/segment_fetcher.py    |  17 +-
 src/blrec/hls/operators/segment_parser.py     | 104 ---------
 src/blrec/hls/operators/segment_remuxer.py    | 111 ----------
 src/blrec/notification/notifiers.py           |   2 +-
 src/blrec/notification/providers.py           |   2 +-
 src/blrec/path/__init__.py                    |   6 +
 src/blrec/path/helpers.py                     |   9 +
 src/blrec/postprocess/ffmpeg_metadata.py      |  11 +-
 src/blrec/postprocess/helpers.py              |  26 +--
 src/blrec/postprocess/postprocessor.py        | 164 ++++++++-------
 src/blrec/postprocess/remux.py                |  14 +-
 src/blrec/setting/models.py                   |  11 +-
 src/blrec/task/models.py                      |   4 +-
 src/blrec/task/task.py                        |  12 +-
 src/blrec/task/task_manager.py                |   3 +-
 src/blrec/utils/ffprobe.py                    | 133 +++++++++---
 src/blrec/utils/mixins.py                     |  10 +-
 src/blrec/web/routers/tasks.py                | 124 +++--------
 .../recorder-settings.component.html          |  38 +---
 .../src/app/settings/shared/setting.model.ts  |   1 -
 .../src/app/shared/pipes/filestatus.pipe.ts   |   2 +-
 webapp/src/app/tasks/shared/task.model.ts     |   4 +-
 .../task-settings-dialog.component.html       |  84 +-------
 64 files changed, 1209 insertions(+), 1034 deletions(-)
 delete mode 100644 src/blrec/core/hls_raw_stream_recorder_impl.py
 delete mode 100644 src/blrec/data/webapp/287.5c768f00dcd24631.js
 create mode 100644 src/blrec/data/webapp/287.63ace7ac80c3d9f2.js
 rename src/blrec/data/webapp/{548.73ee5c2419f2617e.js => 548.f8a3199ca2412e0d.js} (80%)
 rename src/blrec/data/webapp/{runtime.bad8d115055bada4.js => runtime.8688afa20dbe5cc7.js} (56%)
 create mode 100644 src/blrec/hls/helpler.py
 create mode 100644 src/blrec/hls/operators/analyser.py
 create mode 100644 src/blrec/hls/operators/cutter.py
 create mode 100644 src/blrec/hls/operators/limiter.py
 delete mode 100644 src/blrec/hls/operators/segment_parser.py
 delete mode 100644 src/blrec/hls/operators/segment_remuxer.py

diff --git a/FAQ.md b/FAQ.md
index 14a09b2..85a7795 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -1,19 +1,5 @@
 # 常见问题
 
-## HLS 标准录制模式和原始录制模式有什么区别?
-
-| | 标准录制模式 | 原始录制模式 | 
-| --- | --- | --- |
-| ffmpeg | 需要 | 不需要 |
-| 资源占用 | 较多 | 较少 |
-| 稳定性 | 比较差 | 比较好 |
-| 录播文件 | 一个 flv 文件 | 很多片段文件 |
-| 录播信息 | 包含在 flv 文件里 | 单独保存为一个文件 (index.meta.json) |
-| 播放器支持 | 几乎全部播放器都支持 flv | 支持 m3u8 的播放器很少 (VLC、dandanplay) |
-| 自动分割文件 | 支持 | 不支持 |
-| 手动分割文件 | 支持 | 不支持 |
-| 自动转 mp4 | 支持 | 支持 |
-
 ## 如何终止程序?
 
 `ctrl + c`
diff --git a/setup.cfg b/setup.cfg
index 81799d0..ec31875 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -53,7 +53,6 @@ install_requires =
     lxml >= 4.6.4, < 5.0.0
     toml >= 0.10.2, < 0.11.0
     m3u8 >= 3.3.0, < 4.0.0
-    av >= 10.0.0, < 11.0.0
     jsonpath == 0.82
     psutil >= 5.8.0, < 6.0.0
     reactivex >= 4.0.0, < 5.0.0
diff --git a/src/blrec/application.py b/src/blrec/application.py
index 3ff0e10..d44282b 100644
--- a/src/blrec/application.py
+++ b/src/blrec/application.py
@@ -9,10 +9,11 @@ import psutil
 
 from . import __prog__, __version__
 from .bili.helpers import ensure_room_id
+from .core.typing import MetaData
 from .disk_space import SpaceMonitor, SpaceReclaimer
 from .event.event_submitters import SpaceEventSubmitter
 from .exception import ExceptionHandler, ExistsError, exception_callback
-from .flv.operators import MetaData, StreamProfile
+from .flv.operators import StreamProfile
 from .notification import (
     BarkNotifier,
     EmailNotifier,
diff --git a/src/blrec/bili/live.py b/src/blrec/bili/live.py
index 11c9d82..82e65d4 100644
--- a/src/blrec/bili/live.py
+++ b/src/blrec/bili/live.py
@@ -39,6 +39,7 @@ class Live:
         self._room_id = room_id
         self._user_agent = user_agent
         self._cookie = cookie
+        self._update_headers()
         self._html_page_url = f'https://live.bilibili.com/{room_id}'
 
         self._session = aiohttp.ClientSession(
@@ -87,6 +88,7 @@ class Live:
     @user_agent.setter
     def user_agent(self, value: str) -> None:
         self._user_agent = value
+        self._update_headers()
         self._webapi.headers = self.headers
         self._appapi.headers = self.headers
 
@@ -97,12 +99,16 @@ class Live:
     @cookie.setter
     def cookie(self, value: str) -> None:
         self._cookie = value
+        self._update_headers()
         self._webapi.headers = self.headers
         self._appapi.headers = self.headers
 
     @property
     def headers(self) -> Dict[str, str]:
-        return {
+        return self._headers
+
+    def _update_headers(self) -> None:
+        self._headers = {
             **BASE_HEADERS,
             'Referer': f'https://live.bilibili.com/{self._room_id}',
             'User-Agent': self._user_agent,
diff --git a/src/blrec/bili/live_monitor.py b/src/blrec/bili/live_monitor.py
index 7024201..d63f1e8 100644
--- a/src/blrec/bili/live_monitor.py
+++ b/src/blrec/bili/live_monitor.py
@@ -167,6 +167,22 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
 
         self._previous_status = current_status
 
+    @aio_task_with_room_id
+    async def check_live_status(self) -> None:
+        logger.debug('Checking live status...')
+        try:
+            await self._check_live_status()
+        except Exception as e:
+            logger.warning(f'Failed to check live status: {repr(e)}')
+        logger.debug('Done checking live status')
+
+    @aio_task_with_room_id
+    async def _check_live_status(self) -> None:
+        await self._live.update_room_info()
+        current_status = self._live.room_info.live_status
+        if current_status != self._previous_status:
+            await self._handle_status_change(current_status)
+
     @aio_task_with_room_id
     async def _poll_live_status(self) -> None:
         logger.debug('Started polling live status')
@@ -174,10 +190,7 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
         while True:
             try:
                 await asyncio.sleep(600 + random.randrange(-60, 60))
-                await self._live.update_room_info()
-                current_status = self._live.room_info.live_status
-                if current_status != self._previous_status:
-                    await self._handle_status_change(current_status)
+                await self._check_live_status()
             except asyncio.CancelledError:
                 logger.debug('Cancelled polling live status')
                 break
diff --git a/src/blrec/core/danmaku_dumper.py b/src/blrec/core/danmaku_dumper.py
index d158e94..62f75b1 100644
--- a/src/blrec/core/danmaku_dumper.py
+++ b/src/blrec/core/danmaku_dumper.py
@@ -2,6 +2,7 @@ import asyncio
 import html
 import logging
 from contextlib import suppress
+from decimal import Decimal
 from threading import Lock
 from typing import Iterator, List, Optional
 
@@ -123,7 +124,6 @@ class DanmakuDumper(
         with self._lock:
             self._delta: float = 0
             self._record_start_time: int = record_start_time
-            self._timebase: int = self._record_start_time * 1000
             self._stream_recording_interrupted: bool = False
             self._path = danmaku_path(video_path)
             self._files.append(self._path)
@@ -135,19 +135,32 @@ class DanmakuDumper(
             await self._stop_dumping()
             self._path = None
 
-    async def on_stream_recording_interrupted(self, duration: float) -> None:
-        logger.debug(f'Stream recording interrupted, {duration}')
+    async def on_stream_recording_interrupted(
+        self, timestamp: float, duration: float
+    ) -> None:
+        self._interrupted_timestamp = timestamp
         self._duration = duration
-        self._stream_recording_recovered = asyncio.Condition()
         self._stream_recording_interrupted = True
+        logger.debug(
+            'Stream recording interrupted, '
+            f'timestamp: {timestamp}, duration: {duration}'
+        )
 
-    async def on_stream_recording_recovered(self, timestamp: int) -> None:
-        logger.debug(f'Stream recording recovered, {timestamp}')
-        self._timebase = timestamp * 1000
-        self._delta = self._duration * 1000
+    async def on_stream_recording_recovered(self, timestamp: float) -> None:
+        self._recovered_timestamp = timestamp
+        self._delta += -float(
+            Decimal(str(self._recovered_timestamp))
+            - Decimal(str(self._interrupted_timestamp))
+        )
         self._stream_recording_interrupted = False
-        async with self._stream_recording_recovered:
-            self._stream_recording_recovered.notify_all()
+        logger.debug(
+            'Stream recording recovered, '
+            f'timestamp: {timestamp}, delta: {self._delta}'
+        )
+
+    async def on_duration_lost(self, duration: float) -> None:
+        logger.debug(f'Total duration lost: {(duration)}')
+        self._delta = -duration
 
     def _start_dumping(self) -> None:
         self._create_dump_task()
@@ -217,14 +230,7 @@ class DanmakuDumper(
                     continue
                 await writer.write_super_chat_record(self._make_super_chat_record(msg))
             else:
-                logger.warning('Unsupported message type:', repr(msg))
-
-            if self._stream_recording_interrupted:
-                logger.debug(
-                    f'Last message before stream recording interrupted: {repr(msg)}'
-                )
-                async with self._stream_recording_recovered:
-                    await self._stream_recording_recovered.wait()
+                logger.warning(f'Unsupported message type: {repr(msg)}')
 
     def _make_metadata(self) -> Metadata:
         return Metadata(
@@ -246,7 +252,7 @@ class DanmakuDumper(
         text = html.escape(text)
 
         return Danmu(
-            stime=self._calc_stime(msg.date),
+            stime=self._calc_stime(msg.date / 1000),
             mode=msg.mode,
             size=msg.size,
             color=msg.color,
@@ -261,7 +267,7 @@ class DanmakuDumper(
 
     def _make_gift_send_record(self, msg: GiftSendMsg) -> GiftSendRecord:
         return GiftSendRecord(
-            ts=self._calc_stime(msg.timestamp * 1000),
+            ts=self._calc_stime(msg.timestamp),
             uid=msg.uid,
             user=msg.uname,
             giftname=msg.gift_name,
@@ -272,7 +278,7 @@ class DanmakuDumper(
 
     def _make_guard_buy_record(self, msg: GuardBuyMsg) -> GuardBuyRecord:
         return GuardBuyRecord(
-            ts=self._calc_stime(msg.timestamp * 1000),
+            ts=self._calc_stime(msg.timestamp),
             uid=msg.uid,
             user=msg.uname,
             giftname=msg.gift_name,
@@ -283,7 +289,7 @@ class DanmakuDumper(
 
     def _make_super_chat_record(self, msg: SuperChatMsg) -> SuperChatRecord:
         return SuperChatRecord(
-            ts=self._calc_stime(msg.timestamp * 1000),
+            ts=self._calc_stime(msg.timestamp),
             uid=msg.uid,
             user=msg.uname,
             price=msg.price * msg.rate,
@@ -293,7 +299,7 @@ class DanmakuDumper(
 
     def _make_user_toast(self, msg: UserToastMsg) -> UserToast:
         return UserToast(
-            ts=self._calc_stime(msg.start_time * 1000),
+            ts=self._calc_stime(msg.start_time),
             uid=msg.uid,
             user=msg.username,
             unit=msg.unit,
@@ -304,5 +310,15 @@ class DanmakuDumper(
             msg=msg.toast_msg,
         )
 
-    def _calc_stime(self, timestamp: int) -> float:
-        return (max(timestamp - self._timebase, 0) + self._delta) / 1000
+    def _calc_stime(self, timestamp: float) -> float:
+        if self._stream_recording_interrupted:
+            return self._duration
+        else:
+            return (
+                max(
+                    timestamp * 1000
+                    - self._record_start_time * 1000
+                    + self._delta * 1000,
+                    0,
+                )
+            ) / 1000
diff --git a/src/blrec/core/flv_stream_recorder_impl.py b/src/blrec/core/flv_stream_recorder_impl.py
index 6f43961..2ebba6d 100644
--- a/src/blrec/core/flv_stream_recorder_impl.py
+++ b/src/blrec/core/flv_stream_recorder_impl.py
@@ -4,6 +4,7 @@ from typing import Optional
 from reactivex.scheduler import NewThreadScheduler
 
 from blrec.bili.live import Live
+from blrec.bili.live_monitor import LiveMonitor
 from blrec.bili.typing import QualityNumber
 from blrec.flv import operators as flv_ops
 from blrec.flv.metadata_dumper import MetadataDumper
@@ -22,6 +23,7 @@ class FLVStreamRecorderImpl(StreamRecorderImpl, SupportDebugMixin):
     def __init__(
         self,
         live: Live,
+        live_monitor: LiveMonitor,
         out_dir: str,
         path_template: str,
         *,
@@ -34,6 +36,7 @@ class FLVStreamRecorderImpl(StreamRecorderImpl, SupportDebugMixin):
     ) -> None:
         super().__init__(
             live=live,
+            live_monitor=live_monitor,
             out_dir=out_dir,
             path_template=path_template,
             stream_format='flv',
@@ -66,7 +69,7 @@ class FLVStreamRecorderImpl(StreamRecorderImpl, SupportDebugMixin):
         )
 
         self._recording_monitor = core_ops.RecordingMonitor(
-            live, lambda: self._analyser.duration
+            live, lambda: self._analyser.duration, self._analyser.duration_updated
         )
 
         self._prober.profiles.subscribe(self._on_profile_updated)
diff --git a/src/blrec/core/hls_raw_stream_recorder_impl.py b/src/blrec/core/hls_raw_stream_recorder_impl.py
deleted file mode 100644
index e937d82..0000000
--- a/src/blrec/core/hls_raw_stream_recorder_impl.py
+++ /dev/null
@@ -1,110 +0,0 @@
-import logging
-from typing import Optional
-
-from reactivex.scheduler import NewThreadScheduler
-
-from blrec.bili.live import Live
-from blrec.bili.typing import QualityNumber
-from blrec.hls import operators as hls_ops
-from blrec.hls.metadata_dumper import MetadataDumper
-from blrec.utils import operators as utils_ops
-
-from . import operators as core_ops
-from .stream_recorder_impl import StreamRecorderImpl
-
-__all__ = ('HLSRawStreamRecorderImpl',)
-
-
-logger = logging.getLogger(__name__)
-
-
-class HLSRawStreamRecorderImpl(StreamRecorderImpl):
-    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,
-        disconnection_timeout: Optional[int] = None,
-        filesize_limit: int = 0,
-        duration_limit: int = 0,
-    ) -> None:
-        super().__init__(
-            live=live,
-            out_dir=out_dir,
-            path_template=path_template,
-            stream_format='fmp4',
-            recording_mode='raw',
-            quality_number=quality_number,
-            buffer_size=buffer_size,
-            read_timeout=read_timeout,
-            disconnection_timeout=disconnection_timeout,
-            filesize_limit=filesize_limit,
-            duration_limit=duration_limit,
-        )
-
-        self._playlist_fetcher = hls_ops.PlaylistFetcher(self._live, self._session)
-        self._playlist_dumper = hls_ops.PlaylistDumper(self._path_provider)
-        self._segment_fetcher = hls_ops.SegmentFetcher(
-            self._live, self._session, self._stream_url_resolver
-        )
-        self._segment_dumper = hls_ops.SegmentDumper(self._playlist_dumper)
-        self._ff_metadata_dumper = MetadataDumper(
-            self._playlist_dumper, self._metadata_provider
-        )
-
-        self._prober = hls_ops.Prober()
-        self._dl_statistics = core_ops.SizedStatistics()
-
-        self._recording_monitor = core_ops.RecordingMonitor(
-            live, lambda: self._playlist_dumper.duration
-        )
-
-        self._prober.profiles.subscribe(self._on_profile_updated)
-        self._playlist_dumper.file_opened.subscribe(self._on_video_file_opened)
-        self._playlist_dumper.file_closed.subscribe(self._on_video_file_closed)
-        self._recording_monitor.interrupted.subscribe(self._on_recording_interrupted)
-        self._recording_monitor.recovered.subscribe(self._on_recording_recovered)
-
-    @property
-    def recording_path(self) -> Optional[str]:
-        return self._playlist_dumper.path
-
-    def _on_start(self) -> None:
-        self._ff_metadata_dumper.enable()
-
-    def _on_stop(self) -> None:
-        self._ff_metadata_dumper.disable()
-
-    def _run(self) -> None:
-        self._subscription = (
-            self._stream_param_holder.get_stream_params()  # type: ignore
-            .pipe(
-                self._stream_url_resolver,
-                self._playlist_fetcher,
-                self._recording_monitor,
-                self._connection_error_handler,
-                self._request_exception_handler,
-                self._playlist_dumper,
-                utils_ops.observe_on_new_thread(
-                    queue_size=60,
-                    thread_name=f'SegmentDownloader::{self._live.room_id}',
-                ),
-                self._segment_fetcher,
-                self._dl_statistics,
-                self._prober,
-                self._segment_dumper,
-                self._rec_statistics,
-                self._progress_bar,
-                self._exception_handler,
-            )
-            .subscribe(
-                on_completed=self._on_completed,
-                scheduler=NewThreadScheduler(
-                    self._thread_factory('HLSRawStreamRecorder')
-                ),
-            )
-        )
diff --git a/src/blrec/core/hls_stream_recorder_impl.py b/src/blrec/core/hls_stream_recorder_impl.py
index fba4812..668c14f 100644
--- a/src/blrec/core/hls_stream_recorder_impl.py
+++ b/src/blrec/core/hls_stream_recorder_impl.py
@@ -4,10 +4,10 @@ from typing import Optional
 from reactivex.scheduler import NewThreadScheduler
 
 from blrec.bili.live import Live
+from blrec.bili.live_monitor import LiveMonitor
 from blrec.bili.typing import QualityNumber
-from blrec.flv import operators as flv_ops
-from blrec.flv.metadata_dumper import MetadataDumper
 from blrec.hls import operators as hls_ops
+from blrec.hls.metadata_dumper import MetadataDumper
 from blrec.utils import operators as utils_ops
 
 from . import operators as core_ops
@@ -23,6 +23,7 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
     def __init__(
         self,
         live: Live,
+        live_monitor: LiveMonitor,
         out_dir: str,
         path_template: str,
         *,
@@ -35,6 +36,7 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
     ) -> None:
         super().__init__(
             live=live,
+            live_monitor=live_monitor,
             out_dir=out_dir,
             path_template=path_template,
             stream_format='fmp4',
@@ -52,43 +54,41 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
         self._segment_fetcher = hls_ops.SegmentFetcher(
             self._live, self._session, self._stream_url_resolver
         )
-        self._segment_remuxer = hls_ops.SegmentRemuxer(live)
-
-        self._prober = hls_ops.Prober()
-        self._dl_statistics = core_ops.SizedStatistics()
-
-        self._segment_parser = hls_ops.SegmentParser()
-        self._analyser = flv_ops.Analyser()
-        self._injector = flv_ops.Injector(self._metadata_provider)
-        self._join_point_extractor = flv_ops.JoinPointExtractor()
-        self._limiter = flv_ops.Limiter(filesize_limit, duration_limit)
-        self._cutter = flv_ops.Cutter()
-        self._dumper = flv_ops.Dumper(self._path_provider, buffer_size)
-        self._metadata_dumper = MetadataDumper(
-            self._dumper, self._analyser, self._join_point_extractor
+        self._segment_dumper = hls_ops.SegmentDumper(self._path_provider)
+        self._playlist_dumper = hls_ops.PlaylistDumper(self._segment_dumper)
+        self._ff_metadata_dumper = MetadataDumper(
+            self._segment_dumper, self._metadata_provider
         )
 
+        self._cutter = hls_ops.Cutter(self._playlist_dumper)
+        self._limiter = hls_ops.Limiter(
+            self._playlist_dumper,
+            self._segment_dumper,
+            filesize_limit=filesize_limit,
+            duration_limit=duration_limit,
+        )
+        self._prober = hls_ops.Prober()
+        self._analyser = hls_ops.Analyser(
+            self._playlist_dumper, self._segment_dumper, self._prober
+        )
+        self._dl_statistics = core_ops.SizedStatistics()
+
         self._recording_monitor = core_ops.RecordingMonitor(
-            live, lambda: self._analyser.duration
+            live,
+            lambda: self._playlist_dumper.duration,
+            self._playlist_dumper.duration_updated,
         )
 
         self._prober.profiles.subscribe(self._on_profile_updated)
-        self._dumper.file_opened.subscribe(self._on_video_file_opened)
-        self._dumper.file_closed.subscribe(self._on_video_file_closed)
+        self._segment_dumper.file_opened.subscribe(self._on_video_file_opened)
+        self._segment_dumper.file_closed.subscribe(self._on_video_file_closed)
+        self._playlist_dumper.segments_lost.subscribe(self._on_duration_lost)
         self._recording_monitor.interrupted.subscribe(self._on_recording_interrupted)
         self._recording_monitor.recovered.subscribe(self._on_recording_recovered)
 
-    @property
-    def buffer_size(self) -> int:
-        return self._dumper.buffer_size
-
-    @buffer_size.setter
-    def buffer_size(self, value: int) -> None:
-        self._dumper.buffer_size = value
-
     @property
     def recording_path(self) -> Optional[str]:
-        return self._dumper.path
+        return self._segment_dumper.path
 
     @property
     def filesize_limit(self) -> int:
@@ -107,11 +107,8 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
         self._limiter.duration_limit = value
 
     @property
-    def metadata(self) -> Optional[flv_ops.MetaData]:
-        try:
-            return self._analyser.make_metadata()
-        except Exception:
-            return None
+    def metadata(self) -> Optional[hls_ops.MetaData]:
+        return self._analyser.make_metadata()
 
     def can_cut_stream(self) -> bool:
         return self._cutter.can_cut_stream()
@@ -120,10 +117,10 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
         return self._cutter.cut_stream()
 
     def _on_start(self) -> None:
-        self._metadata_dumper.enable()
+        self._ff_metadata_dumper.enable()
 
     def _on_stop(self) -> None:
-        self._metadata_dumper.disable()
+        self._ff_metadata_dumper.disable()
 
     def _run(self) -> None:
         self._subscription = (
@@ -141,20 +138,13 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
                 self._segment_fetcher,
                 self._dl_statistics,
                 self._prober,
-                utils_ops.observe_on_new_thread(
-                    queue_size=10, thread_name=f'StreamRecorder::{self._live.room_id}'
-                ),
-                self._segment_remuxer,
-                self._segment_parser,
-                flv_ops.process(),
+                self._analyser,
                 self._cutter,
                 self._limiter,
-                self._join_point_extractor,
-                self._injector,
-                self._analyser,
-                self._dumper,
+                self._segment_dumper,
                 self._rec_statistics,
                 self._progress_bar,
+                self._playlist_dumper,
                 self._exception_handler,
             )
             .subscribe(
diff --git a/src/blrec/core/metadata_provider.py b/src/blrec/core/metadata_provider.py
index 2d8ab3a..e325300 100644
--- a/src/blrec/core/metadata_provider.py
+++ b/src/blrec/core/metadata_provider.py
@@ -54,13 +54,6 @@ class MetadataProvider:
             ', bluray' if '_bluray' in self._stream_recorder.stream_url else '',
         )
 
-        if self._stream_recorder.recording_mode == 'standard':
-            recording_mode_desc = '标准'
-        elif self._stream_recorder.recording_mode == 'raw':
-            recording_mode_desc = '原始'
-        else:
-            recording_mode_desc = '??'
-
         return {
             'Title': self._live.room_info.title,
             'Artist': self._live.user_info.name,
@@ -74,11 +67,10 @@ B站直播录像
 开播时间:{live_start_time}
 开始推流时间: {stream_available_time}
 HLS流可用时间: {hls_stream_available_time}
-开始录制时间: {record_start_time}
+录播起始时间: {record_start_time}
 流主机: {self._stream_recorder.stream_host}
 流格式:{self._stream_recorder.stream_format}
 流画质:{stream_quality}
-录制模式: {recording_mode_desc}
 录制程序:{__prog__} v{__version__} {__github__}''',
             'description': OrderedDict(
                 {
@@ -95,7 +87,6 @@ HLS流可用时间: {hls_stream_available_time}
                     'StreamHost': self._stream_recorder.stream_host,
                     'StreamFormat': self._stream_recorder.stream_format,
                     'StreamQuality': stream_quality,
-                    'RecordingMode': self._stream_recorder.recording_mode,
                     'Recorder': f'{__prog__} v{__version__} {__github__}',
                 }
             ),
diff --git a/src/blrec/core/operators/connection_error_handler.py b/src/blrec/core/operators/connection_error_handler.py
index debceb1..f4f2c5c 100644
--- a/src/blrec/core/operators/connection_error_handler.py
+++ b/src/blrec/core/operators/connection_error_handler.py
@@ -77,7 +77,7 @@ class ConnectionErrorHandler(AsyncCooperationMixin):
         timeout = self.disconnection_timeout
         logger.info(f'Waiting {timeout} seconds for connection recovery... ')
         timebase = time.monotonic()
-        while not self._run_coroutine(self._live.check_connectivity()):
+        while not self._call_coroutine(self._live.check_connectivity()):
             if timeout is not None and time.monotonic() - timebase > timeout:
                 logger.error(f'Connection not recovered in {timeout} seconds')
                 return False
diff --git a/src/blrec/core/operators/recording_monitor.py b/src/blrec/core/operators/recording_monitor.py
index 3f1d534..d8c058f 100644
--- a/src/blrec/core/operators/recording_monitor.py
+++ b/src/blrec/core/operators/recording_monitor.py
@@ -1,7 +1,8 @@
 from __future__ import annotations
 
 import logging
-from typing import Callable, Final, Optional, TypeVar
+import time
+from typing import Callable, Final, Optional, Tuple, TypeVar
 
 from reactivex import Observable, Subject, abc
 
@@ -17,21 +18,35 @@ _T = TypeVar('_T')
 
 
 class RecordingMonitor(AsyncCooperationMixin):
-    def __init__(self, live: Live, duration_provider: Callable[..., float]) -> None:
+    def __init__(
+        self,
+        live: Live,
+        duration_provider: Callable[..., float],
+        duration_updated: Observable[float],
+    ) -> None:
         super().__init__()
         self._live = live
         self._duration_provider = duration_provider
-        self._interrupted: Subject[float] = Subject()
-        self._recovered: Subject[int] = Subject()
+        self._duration_updated = duration_updated
+        self._duration_subscription: Optional[abc.DisposableBase] = None
+        self._interrupted: Subject[Tuple[float, float]] = Subject()
+        self._recovered: Subject[float] = Subject()
 
     @property
-    def interrupted(self) -> Observable[float]:
+    def interrupted(self) -> Observable[Tuple[float, float]]:
         return self._interrupted
 
     @property
-    def recovered(self) -> Observable[int]:
+    def recovered(self) -> Observable[float]:
         return self._recovered
 
+    def _on_duration_updated(self, duration: float) -> None:
+        ts = time.time()
+        self._recovered.on_next(ts)
+        assert self._duration_subscription is not None
+        self._duration_subscription.dispose()
+        self._duration_subscription = None
+
     def __call__(self, source: Observable[_T]) -> Observable[_T]:
         return self._monitor(source)
 
@@ -48,8 +63,11 @@ class RecordingMonitor(AsyncCooperationMixin):
                 nonlocal recording, failed_count
                 recording = True
                 if failed_count >= CRITERIA:
-                    ts = self._run_coroutine(self._live.get_timestamp())
-                    self._recovered.on_next(ts)
+                    if self._duration_subscription is not None:
+                        self._duration_subscription.dispose()
+                    self._duration_subscription = self._duration_updated.subscribe(
+                        self._on_duration_updated
+                    )
                 failed_count = 0
                 observer.on_next(item)
 
@@ -58,8 +76,9 @@ class RecordingMonitor(AsyncCooperationMixin):
                 if recording:
                     failed_count += 1
                     if failed_count == CRITERIA:
+                        ts = time.time()
                         duration = self._duration_provider()
-                        self._interrupted.on_next(duration)
+                        self._interrupted.on_next((ts, duration))
                 observer.on_error(exc)
 
             return source.subscribe(
diff --git a/src/blrec/core/operators/request_exception_handler.py b/src/blrec/core/operators/request_exception_handler.py
index e33574e..b10a53e 100644
--- a/src/blrec/core/operators/request_exception_handler.py
+++ b/src/blrec/core/operators/request_exception_handler.py
@@ -9,7 +9,9 @@ import aiohttp
 import requests
 import urllib3
 from reactivex import Observable, abc
+from reactivex import operators as ops
 
+from blrec.core import operators as core_ops
 from blrec.utils import operators as utils_ops
 
 __all__ = ('RequestExceptionHandler',)
@@ -21,12 +23,14 @@ _T = TypeVar('_T')
 
 
 class RequestExceptionHandler:
-    def __init__(self) -> None:
+    def __init__(self, stream_url_resolver: core_ops.StreamURLResolver) -> None:
+        self._stream_url_resolver = stream_url_resolver
         self._last_retry_time = time.monotonic()
 
     def __call__(self, source: Observable[_T]) -> Observable[_T]:
         return self._handle(source).pipe(
-            utils_ops.retry(should_retry=self._should_retry)
+            ops.do_action(on_error=self._before_retry),
+            utils_ops.retry(should_retry=self._should_retry),
         )
 
     def _handle(self, source: Observable[_T]) -> Observable[_T]:
@@ -74,3 +78,10 @@ class RequestExceptionHandler:
             return True
         else:
             return False
+
+    def _before_retry(self, exc: Exception) -> None:
+        if isinstance(
+            exc, requests.exceptions.HTTPError
+        ) and exc.response.status_code in (403, 404):
+            self._stream_url_resolver.reset()
+            self._stream_url_resolver.rotate_routes()
diff --git a/src/blrec/core/operators/stream_url_resolver.py b/src/blrec/core/operators/stream_url_resolver.py
index ca8d9bb..ac5a652 100644
--- a/src/blrec/core/operators/stream_url_resolver.py
+++ b/src/blrec/core/operators/stream_url_resolver.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 import logging
-from typing import Optional
+from typing import Final, Optional
 from urllib.parse import urlparse
 
 import requests
@@ -19,6 +19,7 @@ from blrec.bili.exceptions import (
     NoStreamQualityAvailable,
 )
 from blrec.bili.live import Live
+from blrec.bili.live_monitor import LiveMonitor
 from blrec.utils import operators as utils_ops
 from blrec.utils.mixins import AsyncCooperationMixin
 
@@ -31,13 +32,24 @@ logger = logging.getLogger(__name__)
 
 
 class StreamURLResolver(AsyncCooperationMixin):
-    def __init__(self, live: Live, stream_param_holder: StreamParamHolder) -> None:
+    _MAX_ATTEMPTS_FOR_NO_STREAM: Final[int] = 10
+
+    def __init__(
+        self,
+        live: Live,
+        session: requests.Session,
+        live_monitor: LiveMonitor,
+        stream_param_holder: StreamParamHolder,
+    ) -> None:
         super().__init__()
         self._live = live
+        self._session = session
+        self._live_monitor = live_monitor
         self._stream_param_holder = stream_param_holder
         self._stream_url: str = ''
         self._stream_host: str = ''
         self._stream_params: Optional[StreamParams] = None
+        self._attempts_for_no_stream: int = 0
 
     @property
     def stream_url(self) -> str:
@@ -47,10 +59,22 @@ class StreamURLResolver(AsyncCooperationMixin):
     def stream_host(self) -> str:
         return self._stream_host
 
+    @property
+    def use_alternative_stream(self) -> bool:
+        return self._stream_param_holder.use_alternative_stream
+
+    @use_alternative_stream.setter
+    def use_alternative_stream(self, value: bool) -> None:
+        self._stream_param_holder.use_alternative_stream = value
+
     def reset(self) -> None:
         self._stream_url = ''
         self._stream_host = ''
         self._stream_params = None
+        self._attempts_for_no_stream = 0
+
+    def rotate_routes(self) -> None:
+        self.use_alternative_stream = not self.use_alternative_stream
 
     def __call__(self, source: Observable[StreamParams]) -> Observable[str]:
         self.reset()
@@ -77,7 +101,7 @@ class StreamURLResolver(AsyncCooperationMixin):
                         f'api platform: {params.api_platform}, '
                         f'use alternative stream: {params.use_alternative_stream}'
                     )
-                    url = self._run_coroutine(
+                    url = self._call_coroutine(
                         self._live.get_live_stream_url(
                             params.quality_number,
                             api_platform=params.api_platform,
@@ -93,6 +117,7 @@ class StreamURLResolver(AsyncCooperationMixin):
                     self._stream_url = url
                     self._stream_host = urlparse(url).hostname or ''
                     self._stream_params = params
+                    self._attempts_for_no_stream = 0
                     observer.on_next(url)
 
             return source.subscribe(
@@ -104,8 +129,8 @@ class StreamURLResolver(AsyncCooperationMixin):
     def _can_resue_url(self, params: StreamParams) -> bool:
         if params == self._stream_params and self._stream_url:
             try:
-                response = requests.get(
-                    self._stream_url, stream=True, headers=self._live.headers
+                response = self._session.get(
+                    self._stream_url, stream=True, headers=self._live.headers, timeout=3
                 )
                 response.raise_for_status()
             except Exception:
@@ -134,14 +159,20 @@ class StreamURLResolver(AsyncCooperationMixin):
         try:
             raise exc
         except (NoStreamAvailable, NoStreamCodecAvailable, NoStreamFormatAvailable):
-            pass
+            self._attempts_for_no_stream += 1
+            if self._attempts_for_no_stream > self._MAX_ATTEMPTS_FOR_NO_STREAM:
+                self._run_coroutine(self._live_monitor.check_live_status())
+                self._attempts_for_no_stream = 0
         except NoStreamQualityAvailable:
             qn = self._stream_param_holder.quality_number
-            logger.info(
-                f'The specified stream quality ({qn}) is not available, '
-                'will using the original stream quality (10000) instead.'
-            )
-            self._stream_param_holder.fall_back_quality()
+            if qn == 10000:
+                logger.warning('The original stream quality (10000) is not available')
+            else:
+                logger.info(
+                    f'The specified stream quality ({qn}) is not available, '
+                    'will using the original stream quality (10000) instead.'
+                )
+                self._stream_param_holder.fall_back_quality()
         except NoAlternativeStreamAvailable:
             logger.debug(
                 'No alternative stream url available, '
diff --git a/src/blrec/core/path_provider.py b/src/blrec/core/path_provider.py
index 955751d..3db8fef 100644
--- a/src/blrec/core/path_provider.py
+++ b/src/blrec/core/path_provider.py
@@ -20,10 +20,11 @@ class PathProvider(AsyncCooperationMixin):
         self.out_dir = out_dir
         self.path_template = path_template
 
-    def __call__(self) -> Tuple[str, int]:
-        ts = self._run_coroutine(self._live.get_timestamp())
-        path = self._make_path(ts)
-        return path, ts
+    def __call__(self, timestamp: int = None) -> Tuple[str, int]:
+        if timestamp is None:
+            timestamp = self._call_coroutine(self._live.get_timestamp())
+        path = self._make_path(timestamp)
+        return path, timestamp
 
     def _make_path(self, timestamp: int) -> str:
         date_time = datetime.fromtimestamp(timestamp)
diff --git a/src/blrec/core/recorder.py b/src/blrec/core/recorder.py
index ba662ee..2493644 100644
--- a/src/blrec/core/recorder.py
+++ b/src/blrec/core/recorder.py
@@ -12,8 +12,9 @@ from blrec.bili.live import Live
 from blrec.bili.live_monitor import LiveEventListener, LiveMonitor
 from blrec.bili.models import RoomInfo
 from blrec.bili.typing import QualityNumber, StreamFormat
+from blrec.core.typing import MetaData
 from blrec.event.event_emitter import EventEmitter, EventListener
-from blrec.flv.operators import MetaData, StreamProfile
+from blrec.flv.operators import StreamProfile
 from blrec.setting.typing import RecordingMode
 from blrec.utils.mixins import AsyncStoppableMixin
 
@@ -114,7 +115,8 @@ class Recorder(
         self._stream_available: bool = False
 
         self._stream_recorder = StreamRecorder(
-            self._live,
+            live,
+            live_monitor,
             out_dir=out_dir,
             path_template=path_template,
             stream_format=stream_format,
diff --git a/src/blrec/core/stream_recorder.py b/src/blrec/core/stream_recorder.py
index 8f578df..b19bebc 100644
--- a/src/blrec/core/stream_recorder.py
+++ b/src/blrec/core/stream_recorder.py
@@ -4,17 +4,18 @@ import time
 from typing import Iterator, Optional
 
 from blrec.bili.live import Live
+from blrec.bili.live_monitor import LiveMonitor
 from blrec.bili.typing import QualityNumber, StreamFormat
 from blrec.event.event_emitter import EventEmitter
-from blrec.flv.operators import MetaData, StreamProfile
+from blrec.flv.operators import StreamProfile
 from blrec.setting.typing import RecordingMode
 from blrec.utils.libc import malloc_trim
 from blrec.utils.mixins import AsyncStoppableMixin
 
 from .flv_stream_recorder_impl import FLVStreamRecorderImpl
-from .hls_raw_stream_recorder_impl import HLSRawStreamRecorderImpl
 from .hls_stream_recorder_impl import HLSStreamRecorderImpl
 from .stream_recorder_impl import StreamRecorderEventListener
+from .typing import MetaData
 
 __all__ = 'StreamRecorder', 'StreamRecorderEventListener'
 
@@ -30,6 +31,7 @@ class StreamRecorder(
     def __init__(
         self,
         live: Live,
+        live_monitor: LiveMonitor,
         out_dir: str,
         path_template: str,
         *,
@@ -46,6 +48,7 @@ class StreamRecorder(
         super().__init__()
 
         self._live = live
+        self._live_monitor = live_monitor
         self.stream_format = stream_format
         self.recording_mode = recording_mode
         self.fmp4_stream_timeout = fmp4_stream_timeout
@@ -53,10 +56,7 @@ class StreamRecorder(
         if stream_format == 'flv':
             cls = FLVStreamRecorderImpl
         elif stream_format == 'fmp4':
-            if recording_mode == 'standard':
-                cls = HLSStreamRecorderImpl  # type: ignore
-            else:
-                cls = HLSRawStreamRecorderImpl  # type: ignore
+            cls = HLSStreamRecorderImpl  # type: ignore
         else:
             logger.warning(
                 f'The specified stream format ({stream_format}) is '
@@ -67,6 +67,7 @@ class StreamRecorder(
 
         self._impl = cls(
             live=live,
+            live_monitor=live_monitor,
             out_dir=out_dir,
             path_template=path_template,
             quality_number=quality_number,
@@ -277,10 +278,12 @@ class StreamRecorder(
     async def on_video_file_completed(self, path: str) -> None:
         await self._emit('video_file_completed', path)
 
-    async def on_stream_recording_interrupted(self, duration: float) -> None:
-        await self._emit('stream_recording_interrupted', duration)
+    async def on_stream_recording_interrupted(
+        self, timestamp: float, duration: float
+    ) -> None:
+        await self._emit('stream_recording_interrupted', timestamp, duration)
 
-    async def on_stream_recording_recovered(self, timestamp: int) -> None:
+    async def on_stream_recording_recovered(self, timestamp: float) -> None:
         await self._emit('stream_recording_recovered', timestamp)
 
     async def on_stream_recording_completed(self) -> None:
@@ -307,10 +310,7 @@ class StreamRecorder(
         if stream_format == 'flv':
             cls = FLVStreamRecorderImpl
         elif stream_format == 'fmp4':
-            if self.recording_mode == 'standard':
-                cls = HLSStreamRecorderImpl  # type: ignore
-            else:
-                cls = HLSRawStreamRecorderImpl  # type: ignore
+            cls = HLSStreamRecorderImpl  # type: ignore
         else:
             logger.warning(
                 f'The specified stream format ({stream_format}) is '
@@ -327,6 +327,7 @@ class StreamRecorder(
 
         self._impl = cls(
             live=self._impl._live,
+            live_monitor=self._impl._live_monitor,
             out_dir=self._impl.out_dir,
             path_template=self._impl.path_template,
             quality_number=self._impl.quality_number,
diff --git a/src/blrec/core/stream_recorder_impl.py b/src/blrec/core/stream_recorder_impl.py
index 48b7295..e15d1db 100644
--- a/src/blrec/core/stream_recorder_impl.py
+++ b/src/blrec/core/stream_recorder_impl.py
@@ -11,12 +11,13 @@ from reactivex import abc
 from reactivex.typing import StartableFactory, StartableTarget
 
 from blrec.bili.live import Live
+from blrec.bili.live_monitor import LiveMonitor
 from blrec.bili.typing import QualityNumber, StreamFormat
 from blrec.event.event_emitter import EventEmitter, EventListener
 from blrec.flv import operators as flv_ops
 from blrec.flv.operators import StreamProfile
 from blrec.flv.utils import format_timestamp
-from blrec.logging.room_id import aio_task_with_room_id
+from blrec.hls import operators as hls_ops
 from blrec.setting.typing import RecordingMode
 from blrec.utils.mixins import AsyncCooperationMixin, AsyncStoppableMixin
 
@@ -39,10 +40,15 @@ class StreamRecorderEventListener(EventListener):
     async def on_video_file_completed(self, path: str) -> None:
         ...
 
-    async def on_stream_recording_interrupted(self, duratin: float) -> None:
+    async def on_stream_recording_interrupted(
+        self, timestamp: float, duration: float
+    ) -> None:
         ...
 
-    async def on_stream_recording_recovered(self, timestamp: int) -> None:
+    async def on_stream_recording_recovered(self, timestamp: float) -> None:
+        ...
+
+    async def on_duration_lost(self, duration: float) -> None:
         ...
 
     async def on_stream_recording_completed(self) -> None:
@@ -58,6 +64,7 @@ class StreamRecorderImpl(
     def __init__(
         self,
         live: Live,
+        live_monitor: LiveMonitor,
         out_dir: str,
         path_template: str,
         *,
@@ -73,6 +80,7 @@ class StreamRecorderImpl(
         super().__init__()
 
         self._live = live
+        self._live_monitor = live_monitor
         self._session = requests.Session()
 
         self._recording_mode = recording_mode
@@ -85,7 +93,7 @@ class StreamRecorderImpl(
             stream_format=stream_format, quality_number=quality_number
         )
         self._stream_url_resolver = core_ops.StreamURLResolver(
-            live, self._stream_param_holder
+            live, self._session, live_monitor, self._stream_param_holder
         )
         self._progress_bar = core_ops.ProgressBar(live)
         self._metadata_provider = MetadataProvider(live, self)
@@ -93,7 +101,9 @@ class StreamRecorderImpl(
         self._rec_statistics = core_ops.SizedStatistics()
         self._dl_statistics: Union[core_ops.StreamStatistics, core_ops.SizedStatistics]
 
-        self._request_exception_handler = core_ops.RequestExceptionHandler()
+        self._request_exception_handler = core_ops.RequestExceptionHandler(
+            self._stream_url_resolver
+        )
         self._connection_error_handler = core_ops.ConnectionErrorHandler(
             live, disconnection_timeout=disconnection_timeout
         )
@@ -240,7 +250,7 @@ class StreamRecorderImpl(
         return ''
 
     @property
-    def metadata(self) -> Optional[flv_ops.MetaData]:
+    def metadata(self) -> Optional[Union[flv_ops.MetaData, hls_ops.MetaData]]:
         return None
 
     @property
@@ -337,19 +347,24 @@ class StreamRecorderImpl(
         logger.info(f"Video file completed: '{path}'")
         self._emit_event('video_file_completed', path)
 
-    def _on_recording_interrupted(self, duration: float) -> None:
-        duration_string = format_timestamp(int(duration * 1000))
-        logger.info(f'Recording interrupted, current duration: {duration_string}')
-        self._emit_event('stream_recording_interrupted', duration)
-
-    def _on_recording_recovered(self, timestamp: int) -> None:
+    def _on_recording_interrupted(self, args: Tuple[float, float]) -> None:
+        timestamp, duration = args[0], args[1]
         datetime_string = datetime.fromtimestamp(timestamp).isoformat()
-        logger.info(f'Recording recovered, current date time {(datetime_string)}')
+        duration_string = format_timestamp(int(duration * 1000))
+        logger.info(
+            f'Recording interrupted, datetime: {datetime_string}, '
+            f'duration: {duration_string}'
+        )
+        self._emit_event('stream_recording_interrupted', timestamp, duration)
+
+    def _on_recording_recovered(self, timestamp: float) -> None:
+        datetime_string = datetime.fromtimestamp(timestamp).isoformat()
+        logger.info(f'Recording recovered, datetime: {(datetime_string)}')
         self._emit_event('stream_recording_recovered', timestamp)
 
-    def _emit_event(self, name: str, *args: Any, **kwds: Any) -> None:
-        self._run_coroutine(self._emit(name, *args, **kwds))
+    def _on_duration_lost(self, duration: float) -> None:
+        logger.info(f'Total duration lost: {(duration)}')
+        self._emit_event('duration_lost', duration)
 
-    @aio_task_with_room_id
-    async def _emit(self, *args: Any, **kwds: Any) -> None:  # type: ignore
-        await super()._emit(*args, **kwds)
+    def _emit_event(self, name: str, *args: Any, **kwds: Any) -> None:
+        self._call_coroutine(self._emit(name, *args, **kwds))
diff --git a/src/blrec/core/typing.py b/src/blrec/core/typing.py
index be1c005..87cc2de 100644
--- a/src/blrec/core/typing.py
+++ b/src/blrec/core/typing.py
@@ -1,5 +1,9 @@
 from typing import Union
 
+from blrec.flv.operators import MetaData as FLVMetaData
+from blrec.hls.operators import MetaData as HLSMetaData
+
 from .models import DanmuMsg, GiftSendMsg, GuardBuyMsg, SuperChatMsg, UserToastMsg
 
 DanmakuMsg = Union[DanmuMsg, GiftSendMsg, GuardBuyMsg, SuperChatMsg, UserToastMsg]
+MetaData = Union[FLVMetaData, HLSMetaData]
diff --git a/src/blrec/data/webapp/287.5c768f00dcd24631.js b/src/blrec/data/webapp/287.5c768f00dcd24631.js
deleted file mode 100644
index f218289..0000000
--- a/src/blrec/data/webapp/287.5c768f00dcd24631.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[287],{3692:(x,D,s)=>{s.d(D,{f:()=>h});var c=s(2134),p=s(4650);class h{transform(f,_){if("string"==typeof f)f=parseFloat(f);else if("number"!=typeof f||isNaN(f))return"N/A";return(_=Object.assign({bitrate:!1,precision:3,spacer:" "},_)).bitrate?(0,c.AX)(f,_.spacer,_.precision):(0,c.N4)(f,_.spacer,_.precision)}}h.\u0275fac=function(f){return new(f||h)},h.\u0275pipe=p.Yjl({name:"datarate",type:h,pure:!0})},3520:(x,D,s)=>{s.d(D,{U:()=>h});const c={2e4:"4K",1e4:"\u539f\u753b",401:"\u84dd\u5149(\u675c\u6bd4)",400:"\u84dd\u5149",250:"\u8d85\u6e05",150:"\u9ad8\u6e05",80:"\u6d41\u7545"};var p=s(4650);class h{transform(f){return c[f]}}h.\u0275fac=function(f){return new(f||h)},h.\u0275pipe=p.Yjl({name:"quality",type:h,pure:!0})},5141:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{i:()=>InfoPanelComponent});var _angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4650),rxjs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(9646),rxjs__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(7445),rxjs__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(7188),rxjs_operators__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(7886),rxjs_operators__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(3900),rxjs_operators__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(262),src_app_shared_rx_operators__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(4007),_shared_task_model__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(2948),ng_zorro_antd_notification__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(387),_shared_services_task_service__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(844),_angular_common__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(6895),_wave_graph_wave_graph_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(1755),_shared_pipes_datarate_pipe__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3692),_shared_pipes_quality_pipe__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(3520);function InfoPanelComponent_ul_3_ng_container_36_Template(x,D){1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.ynx(0),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(1,", bluray"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.BQk())}function InfoPanelComponent_ul_3_li_38_Template(x,D){if(1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"li",4)(1,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(2,"\u6d41\u7f16\u7801\u5668"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(3,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()),2&x){const s=_angular_core__WEBPACK_IMPORTED_MODULE_4__.oxw(2);_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Oqu(null==s.profile.streams[0].tags?null:s.profile.streams[0].tags.encoder)}}const _c0=function(){return{bitrate:!0}};function InfoPanelComponent_ul_3_Template(x,D){if(1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"ul",3)(1,"li",4)(2,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(3,"\u89c6\u9891\u4fe1\u606f"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(4,"span",6)(5,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(6),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(7,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(8),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(9,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(10),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(11,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(12),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(13,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(14,"li",4)(15,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(16,"\u97f3\u9891\u4fe1\u606f"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(17,"span",6)(18,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(19),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(20,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(21),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(22,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(23),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(24,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(25),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(26,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(27,"li",4)(28,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(29,"\u683c\u5f0f\u753b\u8d28"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(30,"span",6)(31,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(32),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(33,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(34),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(35,"quality"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(36,InfoPanelComponent_ul_3_ng_container_36_Template,2,0,"ng-container",7),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(37,") "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(38,InfoPanelComponent_ul_3_li_38_Template,5,1,"li",8),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(39,"li",4)(40,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(41,"\u6d41\u4e3b\u673a\u540d"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(42,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(43),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(44,"li",4)(45,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(46,"\u4e0b\u8f7d\u901f\u5ea6"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__._UZ(47,"app-wave-graph",9),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(48,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(49),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(50,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(51,"li",4)(52,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(53,"\u5f55\u5236\u901f\u5ea6"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__._UZ(54,"app-wave-graph",9),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(55,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(56),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(57,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()()),2&x){const s=_angular_core__WEBPACK_IMPORTED_MODULE_4__.oxw();let c;_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(6),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.profile.streams[0].codec_name," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.AsE(" ",s.profile.streams[0].width,"x",s.profile.streams[0].height," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.fps," fps"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(13,19,1e3*s.metadata.videodatarate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(32,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(7),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.profile.streams[1].codec_name," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.profile.streams[1].sample_rate," HZ"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.profile.streams[1].channel_layout," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(26,22,1e3*s.metadata.audiodatarate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(33,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(7),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.data.task_status.real_stream_format?s.data.task_status.real_stream_format:"N/A"," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.AsE(" ",s.data.task_status.real_quality_number?_angular_core__WEBPACK_IMPORTED_MODULE_4__.lcZ(35,25,s.data.task_status.real_quality_number):"N/A"," (",null!==(c=s.data.task_status.real_quality_number)&&void 0!==c?c:"N/A",""),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",s.isBlurayStreamQuality()),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",null==s.profile.streams[0]||null==s.profile.streams[0].tags?null:s.profile.streams[0].tags.encoder),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(5),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",s.data.task_status.stream_host," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("value",s.data.task_status.dl_rate),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(50,27,8*s.data.task_status.dl_rate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(34,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(5),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("value",s.data.task_status.rec_rate),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.lcZ(57,30,s.data.task_status.rec_rate)," ")}}class InfoPanelComponent{constructor(x,D,s){this.changeDetector=x,this.notification=D,this.taskService=s,this.metadata=null,this.close=new _angular_core__WEBPACK_IMPORTED_MODULE_4__.vpe,this.RunningStatus=_shared_task_model__WEBPACK_IMPORTED_MODULE_5__.cG}get fps(){const avgFrameRate=this.profile?.streams[0]?.avg_frame_rate;return avgFrameRate?eval(avgFrameRate).toFixed():"N/A"}ngOnInit(){this.syncData()}ngOnDestroy(){this.desyncData()}isBlurayStreamQuality(){return/_bluray/.test(this.data.task_status.stream_url)}closePanel(x){x.preventDefault(),x.stopPropagation(),this.close.emit()}syncData(){this.dataSubscription=(0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)(0),(0,rxjs__WEBPACK_IMPORTED_MODULE_7__.F)(1e3)).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_8__.u)(),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.w)(()=>(0,rxjs__WEBPACK_IMPORTED_MODULE_10__.$)(this.taskService.getStreamProfile(this.data.room_info.room_id),this.taskService.getMetadata(this.data.room_info.room_id))),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_11__.K)(x=>{throw this.notification.error("\u83b7\u53d6\u6570\u636e\u51fa\u9519",x.message),x}),(0,src_app_shared_rx_operators__WEBPACK_IMPORTED_MODULE_12__.X)(3,1e3)).subscribe(([x,D])=>{this.profile=x,this.metadata=D,this.changeDetector.markForCheck()},x=>{this.notification.error("\u83b7\u53d6\u6570\u636e\u51fa\u9519","\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38, \u8bf7\u5f85\u7f51\u7edc\u6b63\u5e38\u540e\u5237\u65b0\u3002",{nzDuration:0})})}desyncData(){this.dataSubscription?.unsubscribe()}}InfoPanelComponent.\u0275fac=function x(D){return new(D||InfoPanelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(_angular_core__WEBPACK_IMPORTED_MODULE_4__.sBO),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(ng_zorro_antd_notification__WEBPACK_IMPORTED_MODULE_13__.zb),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(_shared_services_task_service__WEBPACK_IMPORTED_MODULE_0__.M))},InfoPanelComponent.\u0275cmp=_angular_core__WEBPACK_IMPORTED_MODULE_4__.Xpm({type:InfoPanelComponent,selectors:[["app-info-panel"]],inputs:{data:"data",profile:"profile",metadata:"metadata"},outputs:{close:"close"},decls:4,vars:1,consts:[[1,"info-panel"],["title","\u5173\u95ed",1,"close-panel",3,"click"],["class","info-list",4,"ngIf"],[1,"info-list"],[1,"info-item"],[1,"label"],[1,"value"],[4,"ngIf"],["class","info-item",4,"ngIf"],[3,"value"]],template:function x(D,s){1&D&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"div",0)(1,"button",1),_angular_core__WEBPACK_IMPORTED_MODULE_4__.NdJ("click",function(p){return s.closePanel(p)}),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(2," [x] "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(3,InfoPanelComponent_ul_3_Template,58,35,"ul",2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()),2&D&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(3),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",s.data.task_status.running_status===s.RunningStatus.RECORDING&&s.profile&&s.profile.streams&&s.profile.format&&s.metadata))},dependencies:[_angular_common__WEBPACK_IMPORTED_MODULE_14__.O5,_wave_graph_wave_graph_component__WEBPACK_IMPORTED_MODULE_1__.w,_shared_pipes_datarate_pipe__WEBPACK_IMPORTED_MODULE_2__.f,_shared_pipes_quality_pipe__WEBPACK_IMPORTED_MODULE_3__.U],styles:['@charset "UTF-8";.info-panel[_ngcontent-%COMP%]{color:#fff;text-shadow:1px 1px 2px black;margin:0;padding:0 .5rem;background:rgba(0,0,0,.32)}.info-panel[_ngcontent-%COMP%]{position:absolute;inset:2.55rem 0rem 2rem;width:100%;font-size:1rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;overflow:auto}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar{background-color:transparent;width:4px;height:4px}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#eee;border-radius:2px}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#fff}.info-panel[_ngcontent-%COMP%]   .close-panel[_ngcontent-%COMP%]{position:absolute;top:0rem;right:0rem;width:2rem;height:2rem;padding:0;color:#fff;background:transparent;border:none;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]{margin:0;padding:0;list-style:none;width:100%;height:100%}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]{display:inline-block;margin:0;width:5rem;text-align:right}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]:after{content:"\\ff1a"}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{display:inline-block;margin:0;text-align:left}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]:not(:first-child):before{content:", "}app-wave-graph[_ngcontent-%COMP%]{margin-right:1rem}'],changeDetection:0})},1755:(x,D,s)=>{s.d(D,{w:()=>h});var c=s(7445),p=s(4650);class h{constructor(f){this.changeDetector=f,this.value=0,this.width=200,this.height=16,this.stroke="white",this.data=[],this.points=[];for(let _=0;_<=this.width;_+=2)this.data.push(0),this.points.push({x:_,y:this.height})}get polylinePoints(){return this.points.map(f=>`${f.x},${f.y}`).join(" ")}ngOnInit(){this.subscription=(0,c.F)(1e3).subscribe(()=>{this.data.push(this.value||0),this.data.shift();let f=Math.max(...this.data);this.points=this.data.map((_,q)=>({x:Math.min(2*q,this.width),y:(1-_/(f||1))*this.height})),this.changeDetector.markForCheck()})}ngOnDestroy(){this.subscription?.unsubscribe()}}h.\u0275fac=function(f){return new(f||h)(p.Y36(p.sBO))},h.\u0275cmp=p.Xpm({type:h,selectors:[["app-wave-graph"]],inputs:{value:"value",width:"width",height:"height",stroke:"stroke"},decls:2,vars:4,consts:[["fill","none"]],template:function(f,_){1&f&&(p.O4$(),p.TgZ(0,"svg"),p._UZ(1,"polyline",0),p.qZA()),2&f&&(p.uIk("width",_.width)("height",_.height),p.xp6(1),p.uIk("stroke",_.stroke)("points",_.polylinePoints))},styles:["[_nghost-%COMP%]{position:relative;top:2px}"],changeDetection:0})},844:(x,D,s)=>{s.d(D,{M:()=>_});var c=s(4004),p=s(2948),h=s(4650),t=s(529),f=s(7930);class _{constructor(u,g){this.http=u,this.url=g}getAllTaskData(u=p.jf.ALL){const g=this.url.makeApiUrl("/api/v1/tasks/data");return this.http.get(g,{params:{select:u}})}getTaskData(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/data`);return this.http.get(g)}getVideoFileDetails(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/videos`);return this.http.get(g)}getDanmakuFileDetails(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/danmakus`);return this.http.get(g)}getTaskParam(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/param`);return this.http.get(g)}getMetadata(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/metadata`);return this.http.get(g)}getStreamProfile(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/profile`);return this.http.get(g)}updateAllTaskInfos(){const u=this.url.makeApiUrl("/api/v1/tasks/info");return this.http.post(u,null)}updateTaskInfo(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/info`);return this.http.post(g,null)}addTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}`);return this.http.post(g,null)}removeTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}`);return this.http.delete(g)}removeAllTasks(){const u=this.url.makeApiUrl("/api/v1/tasks");return this.http.delete(u)}startTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/start`);return this.http.post(g,null)}startAllTasks(){const u=this.url.makeApiUrl("/api/v1/tasks/start");return this.http.post(u,null)}stopTask(u,g=!1,k=!1){const v=this.url.makeApiUrl(`/api/v1/tasks/${u}/stop`);return this.http.post(v,{force:g,background:k})}stopAllTasks(u=!1,g=!1){const k=this.url.makeApiUrl("/api/v1/tasks/stop");return this.http.post(k,{force:u,background:g})}enableTaskMonitor(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/monitor/enable`);return this.http.post(g,null)}enableAllMonitors(){const u=this.url.makeApiUrl("/api/v1/tasks/monitor/enable");return this.http.post(u,null)}disableTaskMonitor(u,g=!1){const k=this.url.makeApiUrl(`/api/v1/tasks/${u}/monitor/disable`);return this.http.post(k,{background:g})}disableAllMonitors(u=!1){const g=this.url.makeApiUrl("/api/v1/tasks/monitor/disable");return this.http.post(g,{background:u})}enableTaskRecorder(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/recorder/enable`);return this.http.post(g,null)}enableAllRecorders(){const u=this.url.makeApiUrl("/api/v1/tasks/recorder/enable");return this.http.post(u,null)}disableTaskRecorder(u,g=!1,k=!1){const v=this.url.makeApiUrl(`/api/v1/tasks/${u}/recorder/disable`);return this.http.post(v,{force:g,background:k})}disableAllRecorders(u=!1,g=!1){const k=this.url.makeApiUrl("/api/v1/tasks/recorder/disable");return this.http.post(k,{force:u,background:g})}canCutStream(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/cut`);return this.http.get(g).pipe((0,c.U)(k=>k.data.result))}cutStream(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/cut`);return this.http.post(g,null)}}_.\u0275fac=function(u){return new(u||_)(h.LFG(t.eN),h.LFG(f.i))},_.\u0275prov=h.Yz7({token:_,factory:_.\u0275fac,providedIn:"root"})},2948:(x,D,s)=>{s.d(D,{cG:()=>p,cS:()=>t,ii:()=>h,jf:()=>c});var c=(()=>{return(_=c||(c={})).ALL="all",_.PREPARING="preparing",_.LIVING="living",_.ROUNDING="rounding",_.MONITOR_ENABLED="monitor_enabled",_.MONITOR_DISABLED="monitor_disabled",_.RECORDER_ENABLED="recorder_enabled",_.RECORDER_DISABLED="recorder_disabled",_.STOPPED="stopped",_.WAITTING="waitting",_.RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",c;var _})(),p=(()=>{return(_=p||(p={})).STOPPED="stopped",_.WAITING="waiting",_.RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",p;var _})(),h=(()=>{return(_=h||(h={})).WAITING="waiting",_.REMUXING="remuxing",_.INJECTING="injecting",h;var _})(),t=(()=>{return(_=t||(t={})).RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",_.COMPLETED="completed",_.MISSING="missing",_.BROKEN="broken",t;var _})()},2287:(x,D,s)=>{s.r(D),s.d(D,{TasksModule:()=>ot});var c=s(6895),p=s(433),h=s(2289),t=s(4650);class f{constructor(o,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),a=i.style;a.position="fixed",a.top=a.opacity="0",a.left="-999em",i.setAttribute("aria-hidden","true"),i.value=o,i.readOnly=!0,this._document.body.appendChild(i)}copy(){const o=this._textarea;let e=!1;try{if(o){const i=this._document.activeElement;o.select(),o.setSelectionRange(0,o.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const o=this._textarea;o&&(o.remove(),this._textarea=void 0)}}let _=(()=>{class n{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),a=i.copy();return i.destroy(),a}beginCopy(e){return new f(e,this._document)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(c.K0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),g=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({}),n})();var k=s(3679),v=s(1971),E=s(1102),T=s(655),F=s(7579),A=s(2722),$=s(3414),M=s(3187),P=s(445);function Ft(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"span",1),t.NdJ("click",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.closeTag(a))}),t.qZA()}}const De=["*"];let Wt=(()=>{class n{constructor(e,i,a,r){this.cdr=e,this.renderer=i,this.elementRef=a,this.directionality=r,this.isPresetColor=!1,this.nzMode="default",this.nzChecked=!1,this.nzOnClose=new t.vpe,this.nzCheckedChange=new t.vpe,this.dir="ltr",this.destroy$=new F.x}updateCheckedStatus(){"checkable"===this.nzMode&&(this.nzChecked=!this.nzChecked,this.nzCheckedChange.emit(this.nzChecked))}closeTag(e){this.nzOnClose.emit(e),e.defaultPrevented||this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}clearPresetColor(){const e=this.elementRef.nativeElement,i=new RegExp(`(ant-tag-(?:${[...$.uf,...$.Bh].join("|")}))`,"g"),a=e.classList.toString(),r=[];let d=i.exec(a);for(;null!==d;)r.push(d[1]),d=i.exec(a);e.classList.remove(...r)}setPresetColor(){const e=this.elementRef.nativeElement;this.clearPresetColor(),this.isPresetColor=!!this.nzColor&&((0,$.o2)(this.nzColor)||(0,$.M8)(this.nzColor)),this.isPresetColor&&e.classList.add(`ant-tag-${this.nzColor}`)}ngOnInit(){this.directionality.change?.pipe((0,A.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzColor:i}=e;i&&this.setPresetColor()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq),t.Y36(P.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-tag"]],hostAttrs:[1,"ant-tag"],hostVars:10,hostBindings:function(e,i){1&e&&t.NdJ("click",function(){return i.updateCheckedStatus()}),2&e&&(t.Udp("background-color",i.isPresetColor?"":i.nzColor),t.ekj("ant-tag-has-color",i.nzColor&&!i.isPresetColor)("ant-tag-checkable","checkable"===i.nzMode)("ant-tag-checkable-checked",i.nzChecked)("ant-tag-rtl","rtl"===i.dir))},inputs:{nzMode:"nzMode",nzColor:"nzColor",nzChecked:"nzChecked"},outputs:{nzOnClose:"nzOnClose",nzCheckedChange:"nzCheckedChange"},exportAs:["nzTag"],features:[t.TTD],ngContentSelectors:De,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(e,i){1&e&&(t.F$t(),t.Hsn(0),t.YNc(1,Ft,1,0,"span",0)),2&e&&(t.xp6(1),t.Q6J("ngIf","closeable"===i.nzMode))},dependencies:[c.O5,E.Ls],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,M.yF)()],n.prototype,"nzChecked",void 0),n})(),Me=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,p.u5,E.PV]}),n})();var Yt=s(4383);const ke=["nzType","avatar"];function Oe(n,o){if(1&n&&(t.TgZ(0,"div",5),t._UZ(1,"nz-skeleton-element",6),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzSize",e.avatar.size||"default")("nzShape",e.avatar.shape||"circle")}}function ve(n,o){if(1&n&&t._UZ(0,"h3",7),2&n){const e=t.oxw(2);t.Udp("width",e.toCSSUnit(e.title.width))}}function Ee(n,o){if(1&n&&t._UZ(0,"li"),2&n){const e=o.index,i=t.oxw(3);t.Udp("width",i.toCSSUnit(i.widthList[e]))}}function Ae(n,o){if(1&n&&(t.TgZ(0,"ul",8),t.YNc(1,Ee,1,2,"li",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.rowsList)}}function Pe(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Oe,2,2,"div",1),t.TgZ(2,"div",2),t.YNc(3,ve,1,2,"h3",3),t.YNc(4,Ae,2,1,"ul",4),t.qZA(),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!!e.nzAvatar),t.xp6(2),t.Q6J("ngIf",!!e.nzTitle),t.xp6(1),t.Q6J("ngIf",!!e.nzParagraph)}}function Se(n,o){1&n&&(t.ynx(0),t.Hsn(1),t.BQk())}const ye=["*"];let Fe=(()=>{class n{constructor(){this.nzActive=!1,this.nzBlock=!1}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=t.lG2({type:n,selectors:[["nz-skeleton-element"]],hostAttrs:[1,"ant-skeleton","ant-skeleton-element"],hostVars:4,hostBindings:function(e,i){2&e&&t.ekj("ant-skeleton-active",i.nzActive)("ant-skeleton-block",i.nzBlock)},inputs:{nzActive:"nzActive",nzType:"nzType",nzBlock:"nzBlock"}}),(0,T.gn)([(0,M.yF)()],n.prototype,"nzBlock",void 0),n})(),be=(()=>{class n{constructor(){this.nzShape="circle",this.nzSize="default",this.styleMap={}}ngOnChanges(e){if(e.nzSize&&"number"==typeof this.nzSize){const i=`${this.nzSize}px`;this.styleMap={width:i,height:i,"line-height":i}}else this.styleMap={}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-skeleton-element","nzType","avatar"]],inputs:{nzShape:"nzShape",nzSize:"nzSize"},features:[t.TTD],attrs:ke,decls:1,vars:9,consts:[[1,"ant-skeleton-avatar",3,"ngStyle"]],template:function(e,i){1&e&&t._UZ(0,"span",0),2&e&&(t.ekj("ant-skeleton-avatar-square","square"===i.nzShape)("ant-skeleton-avatar-circle","circle"===i.nzShape)("ant-skeleton-avatar-lg","large"===i.nzSize)("ant-skeleton-avatar-sm","small"===i.nzSize),t.Q6J("ngStyle",i.styleMap))},dependencies:[c.PC],encapsulation:2,changeDetection:0}),n})(),we=(()=>{class n{constructor(e,i,a){this.cdr=e,this.nzActive=!1,this.nzLoading=!0,this.nzRound=!1,this.nzTitle=!0,this.nzAvatar=!1,this.nzParagraph=!0,this.rowsList=[],this.widthList=[],i.addClass(a.nativeElement,"ant-skeleton")}toCSSUnit(e=""){return(0,M.WX)(e)}getTitleProps(){const e=!!this.nzAvatar,i=!!this.nzParagraph;let a="";return!e&&i?a="38%":e&&i&&(a="50%"),{width:a,...this.getProps(this.nzTitle)}}getAvatarProps(){return{shape:this.nzTitle&&!this.nzParagraph?"square":"circle",size:"large",...this.getProps(this.nzAvatar)}}getParagraphProps(){const e=!!this.nzAvatar,i=!!this.nzTitle,a={};return(!e||!i)&&(a.width="61%"),a.rows=!e&&i?3:2,{...a,...this.getProps(this.nzParagraph)}}getProps(e){return e&&"object"==typeof e?e:{}}getWidthList(){const{width:e,rows:i}=this.paragraph;let a=[];return e&&Array.isArray(e)?a=e:e&&!Array.isArray(e)&&(a=[],a[i-1]=e),a}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(e){(e.nzTitle||e.nzAvatar||e.nzParagraph)&&this.updateProps()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-skeleton"]],hostVars:6,hostBindings:function(e,i){2&e&&t.ekj("ant-skeleton-with-avatar",!!i.nzAvatar)("ant-skeleton-active",i.nzActive)("ant-skeleton-round",!!i.nzRound)},inputs:{nzActive:"nzActive",nzLoading:"nzLoading",nzRound:"nzRound",nzTitle:"nzTitle",nzAvatar:"nzAvatar",nzParagraph:"nzParagraph"},exportAs:["nzSkeleton"],features:[t.TTD],ngContentSelectors:ye,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(e,i){1&e&&(t.F$t(),t.YNc(0,Pe,5,3,"ng-container",0),t.YNc(1,Se,2,0,"ng-container",0)),2&e&&(t.Q6J("ngIf",i.nzLoading),t.xp6(1),t.Q6J("ngIf",!i.nzLoading))},dependencies:[c.sg,c.O5,Fe,be],encapsulation:2,changeDetection:0}),n})(),qt=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez]}),n})();var it=s(7570),bt=s(1243),j=s(9562),At=s(6616),K=s(5156),R=s(6704),V=s(5635),$t=s(8213),Ie=s(4903),Ne=s(8184),U=s(6287),Be=s(1691),Ze=s(2687),Ue=s(1811);let Ye=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,At.sL,Ne.U8,Ue.YI,E.PV,U.T,Be.e4,Ie.g,it.cg,Ze.rt]}),n})();var Pt=s(8521),jt=s(2577),Vt=s(4788),Ht=s(5681),qe=s(2539),S=s(2536);function $e(n,o){1&n&&t.GkF(0)}function je(n,o){if(1&n&&(t.ynx(0),t.YNc(1,$e,1,0,"ng-container",9),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzIcon)}}function Ve(n,o){if(1&n&&t._UZ(0,"span",10),2&n){const e=t.oxw(3);t.Q6J("nzType",e.nzIconType||e.inferredIconType)("nzTheme",e.iconTheme)}}function He(n,o){if(1&n&&(t.TgZ(0,"div",6),t.YNc(1,je,2,1,"ng-container",7),t.YNc(2,Ve,1,2,"ng-template",null,8,t.W1O),t.qZA()),2&n){const e=t.MAs(3),i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",i.nzIcon)("ngIfElse",e)}}function Xe(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(4);t.xp6(1),t.Oqu(e.nzMessage)}}function tn(n,o){if(1&n&&(t.TgZ(0,"span",14),t.YNc(1,Xe,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzMessage)}}function en(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(4);t.xp6(1),t.Oqu(e.nzDescription)}}function nn(n,o){if(1&n&&(t.TgZ(0,"span",15),t.YNc(1,en,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzDescription)}}function on(n,o){if(1&n&&(t.TgZ(0,"div",11),t.YNc(1,tn,2,1,"span",12),t.YNc(2,nn,2,1,"span",13),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",e.nzMessage),t.xp6(1),t.Q6J("ngIf",e.nzDescription)}}function an(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.nzAction)}}function rn(n,o){if(1&n&&(t.TgZ(0,"div",16),t.YNc(1,an,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzAction)}}function sn(n,o){1&n&&t._UZ(0,"span",19)}function ln(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"span",20),t._uU(2),t.qZA(),t.BQk()),2&n){const e=t.oxw(4);t.xp6(2),t.Oqu(e.nzCloseText)}}function cn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,ln,3,1,"ng-container",9),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzCloseText)}}function _n(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.closeAlert())}),t.YNc(1,sn,1,0,"ng-template",null,18,t.W1O),t.YNc(3,cn,2,1,"ng-container",7),t.qZA()}if(2&n){const e=t.MAs(2),i=t.oxw(2);t.xp6(3),t.Q6J("ngIf",i.nzCloseText)("ngIfElse",e)}}function un(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",1),t.NdJ("@slideAlertMotion.done",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.onFadeAnimationDone())}),t.YNc(1,He,4,2,"div",2),t.YNc(2,on,3,2,"div",3),t.YNc(3,rn,2,1,"div",4),t.YNc(4,_n,4,2,"button",5),t.qZA()}if(2&n){const e=t.oxw();t.ekj("ant-alert-rtl","rtl"===e.dir)("ant-alert-success","success"===e.nzType)("ant-alert-info","info"===e.nzType)("ant-alert-warning","warning"===e.nzType)("ant-alert-error","error"===e.nzType)("ant-alert-no-icon",!e.nzShowIcon)("ant-alert-banner",e.nzBanner)("ant-alert-closable",e.nzCloseable)("ant-alert-with-description",!!e.nzDescription),t.Q6J("@.disabled",e.nzNoAnimation)("@slideAlertMotion",void 0),t.xp6(1),t.Q6J("ngIf",e.nzShowIcon),t.xp6(1),t.Q6J("ngIf",e.nzMessage||e.nzDescription),t.xp6(1),t.Q6J("ngIf",e.nzAction),t.xp6(1),t.Q6J("ngIf",e.nzCloseable||e.nzCloseText)}}let pn=(()=>{class n{constructor(e,i,a){this.nzConfigService=e,this.cdr=i,this.directionality=a,this._nzModuleName="alert",this.nzAction=null,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.nzIcon=null,this.nzOnClose=new t.vpe,this.closed=!1,this.iconTheme="fill",this.inferredIconType="info-circle",this.dir="ltr",this.isTypeSet=!1,this.isShowIconSet=!1,this.destroy$=new F.x,this.nzConfigService.getConfigChangeEventForComponent("alert").pipe((0,A.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe((0,A.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}closeAlert(){this.closed=!0}onFadeAnimationDone(){this.closed&&this.nzOnClose.emit(!0)}ngOnChanges(e){const{nzShowIcon:i,nzDescription:a,nzType:r,nzBanner:d}=e;if(i&&(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"}a&&(this.iconTheme=this.nzDescription?"outline":"fill"),d&&(this.isTypeSet||(this.nzType="warning"),this.isShowIconSet||(this.nzShowIcon=!0))}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(P.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-alert"]],inputs:{nzAction:"nzAction",nzCloseText:"nzCloseText",nzIconType:"nzIconType",nzMessage:"nzMessage",nzDescription:"nzDescription",nzType:"nzType",nzCloseable:"nzCloseable",nzShowIcon:"nzShowIcon",nzBanner:"nzBanner",nzNoAnimation:"nzNoAnimation",nzIcon:"nzIcon"},outputs:{nzOnClose:"nzOnClose"},exportAs:["nzAlert"],features:[t.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"],["class","ant-alert-icon",4,"ngIf"],["class","ant-alert-content",4,"ngIf"],["class","ant-alert-action",4,"ngIf"],["type","button","tabindex","0","class","ant-alert-close-icon",3,"click",4,"ngIf"],[1,"ant-alert-icon"],[4,"ngIf","ngIfElse"],["iconDefaultTemplate",""],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType","nzTheme"],[1,"ant-alert-content"],["class","ant-alert-message",4,"ngIf"],["class","ant-alert-description",4,"ngIf"],[1,"ant-alert-message"],[1,"ant-alert-description"],[1,"ant-alert-action"],["type","button","tabindex","0",1,"ant-alert-close-icon",3,"click"],["closeDefaultTemplate",""],["nz-icon","","nzType","close"],[1,"ant-alert-close-text"]],template:function(e,i){1&e&&t.YNc(0,un,5,24,"div",0),2&e&&t.Q6J("ngIf",!i.closed)},dependencies:[c.O5,E.Ls,U.f],encapsulation:2,data:{animation:[qe.Rq]},changeDetection:0}),(0,T.gn)([(0,S.oS)(),(0,M.yF)()],n.prototype,"nzCloseable",void 0),(0,T.gn)([(0,S.oS)(),(0,M.yF)()],n.prototype,"nzShowIcon",void 0),(0,T.gn)([(0,M.yF)()],n.prototype,"nzBanner",void 0),(0,T.gn)([(0,M.yF)()],n.prototype,"nzNoAnimation",void 0),n})(),gn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,E.PV,U.T]}),n})();var at=s(7131),wt=s(8e3);function dn(n,o){if(1&n&&(t.ynx(0),t._UZ(1,"span",8),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzType",e.icon)}}function mn(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(4);t.xp6(1),t.hij(" ",e(i.nzPercent)," ")}}const hn=function(n){return{$implicit:n}};function fn(n,o){if(1&n&&t.YNc(0,mn,2,1,"ng-container",9),2&n){const e=t.oxw(3);t.Q6J("nzStringTemplateOutlet",e.formatter)("nzStringTemplateOutletContext",t.VKq(2,hn,e.nzPercent))}}function Cn(n,o){if(1&n&&(t.TgZ(0,"span",5),t.YNc(1,dn,2,1,"ng-container",6),t.YNc(2,fn,1,4,"ng-template",null,7,t.W1O),t.qZA()),2&n){const e=t.MAs(3),i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",("exception"===i.status||"success"===i.status)&&!i.nzFormat)("ngIfElse",e)}}function zn(n,o){if(1&n&&t.YNc(0,Cn,4,2,"span",4),2&n){const e=t.oxw();t.Q6J("ngIf",e.nzShowInfo)}}function Tn(n,o){if(1&n&&t._UZ(0,"div",17),2&n){const e=t.oxw(4);t.Udp("width",e.nzSuccessPercent,"%")("border-radius","round"===e.nzStrokeLinecap?"100px":"0")("height",e.strokeWidth,"px")}}function xn(n,o){if(1&n&&(t.TgZ(0,"div",13)(1,"div",14),t._UZ(2,"div",15),t.YNc(3,Tn,1,6,"div",16),t.qZA()()),2&n){const e=t.oxw(3);t.xp6(2),t.Udp("width",e.nzPercent,"%")("border-radius","round"===e.nzStrokeLinecap?"100px":"0")("background",e.isGradient?null:e.nzStrokeColor)("background-image",e.isGradient?e.lineGradient:null)("height",e.strokeWidth,"px"),t.xp6(1),t.Q6J("ngIf",e.nzSuccessPercent||0===e.nzSuccessPercent)}}function Dn(n,o){}function Mn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,xn,4,11,"div",11),t.YNc(2,Dn,0,0,"ng-template",12),t.BQk()),2&n){const e=t.oxw(2),i=t.MAs(1);t.xp6(1),t.Q6J("ngIf",!e.isSteps),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function kn(n,o){1&n&&t._UZ(0,"div",20),2&n&&t.Q6J("ngStyle",o.$implicit)}function On(n,o){}function vn(n,o){if(1&n&&(t.TgZ(0,"div",18),t.YNc(1,kn,1,1,"div",19),t.YNc(2,On,0,0,"ng-template",12),t.qZA()),2&n){const e=t.oxw(2),i=t.MAs(1);t.xp6(1),t.Q6J("ngForOf",e.steps),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function En(n,o){if(1&n&&(t.TgZ(0,"div"),t.YNc(1,Mn,3,2,"ng-container",2),t.YNc(2,vn,3,2,"div",10),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!e.isSteps),t.xp6(1),t.Q6J("ngIf",e.isSteps)}}function An(n,o){if(1&n&&(t.O4$(),t._UZ(0,"stop")),2&n){const e=o.$implicit;t.uIk("offset",e.offset)("stop-color",e.color)}}function Pn(n,o){if(1&n&&(t.O4$(),t.TgZ(0,"defs")(1,"linearGradient",24),t.YNc(2,An,1,2,"stop",25),t.qZA()()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("id","gradient-"+e.gradientId),t.xp6(1),t.Q6J("ngForOf",e.circleGradient)}}function Sn(n,o){if(1&n&&(t.O4$(),t._UZ(0,"path",26)),2&n){const e=o.$implicit,i=t.oxw(2);t.Q6J("ngStyle",e.strokePathStyle),t.uIk("d",i.pathString)("stroke-linecap",i.nzStrokeLinecap)("stroke",e.stroke)("stroke-width",i.nzPercent?i.strokeWidth:0)}}function yn(n,o){1&n&&t.O4$()}function Fn(n,o){if(1&n&&(t.TgZ(0,"div",14),t.O4$(),t.TgZ(1,"svg",21),t.YNc(2,Pn,3,2,"defs",2),t._UZ(3,"path",22),t.YNc(4,Sn,1,5,"path",23),t.qZA(),t.YNc(5,yn,0,0,"ng-template",12),t.qZA()),2&n){const e=t.oxw(),i=t.MAs(1);t.Udp("width",e.nzWidth,"px")("height",e.nzWidth,"px")("font-size",.15*e.nzWidth+6,"px"),t.ekj("ant-progress-circle-gradient",e.isGradient),t.xp6(2),t.Q6J("ngIf",e.isGradient),t.xp6(1),t.Q6J("ngStyle",e.trailPathStyle),t.uIk("stroke-width",e.strokeWidth)("d",e.pathString),t.xp6(1),t.Q6J("ngForOf",e.progressCirclePath)("ngForTrackBy",e.trackByFn),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}const te=n=>{let o=[];return Object.keys(n).forEach(e=>{const i=n[e],a=function bn(n){return+n.replace("%","")}(e);isNaN(a)||o.push({key:a,value:i})}),o=o.sort((e,i)=>e.key-i.key),o};let Nn=0;const ee="progress",Bn=new Map([["success","check"],["exception","close"]]),Zn=new Map([["normal","#108ee9"],["exception","#ff5500"],["success","#87d068"]]),Un=n=>`${n}%`;let ne=(()=>{class n{constructor(e,i,a){this.cdr=e,this.nzConfigService=i,this.directionality=a,this._nzModuleName=ee,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=Nn++,this.progressCirclePath=[],this.trailPathStyle=null,this.dir="ltr",this.trackByFn=r=>`${r}`,this.cachedStatus="normal",this.inferredStatus="normal",this.destroy$=new F.x}get formatter(){return this.nzFormat||Un}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(e){const{nzSteps:i,nzGapPosition:a,nzStrokeLinecap:r,nzStrokeColor:d,nzGapDegree:C,nzType:z,nzStatus:l,nzPercent:y,nzSuccessPercent:w,nzStrokeWidth:Z}=e;l&&(this.cachedStatus=this.nzStatus||this.cachedStatus),(y||w)&&(parseInt(this.nzPercent.toString(),10)>=100?((0,M.DX)(this.nzSuccessPercent)&&this.nzSuccessPercent>=100||void 0===this.nzSuccessPercent)&&(this.inferredStatus="success"):this.inferredStatus=this.cachedStatus),(l||y||w||d)&&this.updateIcon(),d&&this.setStrokeColor(),(a||r||C||z||y||d||d)&&this.getCirclePaths(),(y||i||Z)&&(this.isSteps=this.nzSteps>0,this.isSteps&&this.getSteps())}ngOnInit(){this.nzConfigService.getConfigChangeEventForComponent(ee).pipe((0,A.R)(this.destroy$)).subscribe(()=>{this.updateIcon(),this.setStrokeColor(),this.getCirclePaths()}),this.directionality.change?.pipe((0,A.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}updateIcon(){const e=Bn.get(this.status);this.icon=e?e+(this.isCircleStyle?"-o":"-circle-fill"):""}getSteps(){const e=Math.floor(this.nzSteps*(this.nzPercent/100)),i="small"===this.nzSize?2:14,a=[];for(let r=0;r<this.nzSteps;r++){let d;r<=e-1&&(d=this.nzStrokeColor),a.push({backgroundColor:`${d}`,width:`${i}px`,height:`${this.strokeWidth}px`})}this.steps=a}getCirclePaths(){if(!this.isCircleStyle)return;const e=(0,M.DX)(this.nzSuccessPercent)?[this.nzSuccessPercent,this.nzPercent]:[this.nzPercent],i=50-this.strokeWidth/2,r=2*Math.PI*i,d=this.nzGapDegree||("circle"===this.nzType?0:75);let C=0,z=-i,l=0,y=-2*i;switch(this.nzGapPosition||("circle"===this.nzType?"top":"bottom")){case"left":C=-i,z=0,l=2*i,y=0;break;case"right":C=i,z=0,l=-2*i,y=0;break;case"bottom":z=i,y=2*i}this.pathString=`M 50,50 m ${C},${z}\n       a ${i},${i} 0 1 1 ${l},${-y}\n       a ${i},${i} 0 1 1 ${-l},${y}`,this.trailPathStyle={strokeDasharray:`${r-d}px ${r}px`,strokeDashoffset:`-${d/2}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s"},this.progressCirclePath=e.map((w,Z)=>{const I=2===e.length&&0===Z;return{stroke:this.isGradient&&!I?`url(#gradient-${this.gradientId})`:null,strokePathStyle:{stroke:this.isGradient?null:I?Zn.get("success"):this.nzStrokeColor,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s",strokeDasharray:`${(w||0)/100*(r-d)}px ${r}px`,strokeDashoffset:`-${d/2}px`}}}).reverse()}setStrokeColor(){const e=this.nzStrokeColor,i=this.isGradient=!!e&&"string"!=typeof e;i&&!this.isCircleStyle?this.lineGradient=(n=>{const{from:o="#1890ff",to:e="#1890ff",direction:i="to right",...a}=n;return 0!==Object.keys(a).length?`linear-gradient(${i}, ${te(a).map(({key:d,value:C})=>`${C} ${d}%`).join(", ")})`:`linear-gradient(${i}, ${o}, ${e})`})(e):i&&this.isCircleStyle?this.circleGradient=(n=>te(this.nzStrokeColor).map(({key:o,value:e})=>({offset:`${o}%`,color:e})))():(this.lineGradient=null,this.circleGradient=[])}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(S.jY),t.Y36(P.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-progress"]],inputs:{nzShowInfo:"nzShowInfo",nzWidth:"nzWidth",nzStrokeColor:"nzStrokeColor",nzSize:"nzSize",nzFormat:"nzFormat",nzSuccessPercent:"nzSuccessPercent",nzPercent:"nzPercent",nzStrokeWidth:"nzStrokeWidth",nzGapDegree:"nzGapDegree",nzStatus:"nzStatus",nzType:"nzType",nzGapPosition:"nzGapPosition",nzStrokeLinecap:"nzStrokeLinecap",nzSteps:"nzSteps"},exportAs:["nzProgress"],features:[t.TTD],decls:5,vars:17,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(e,i){1&e&&(t.YNc(0,zn,1,1,"ng-template",null,0,t.W1O),t.TgZ(2,"div",1),t.YNc(3,En,3,2,"div",2),t.YNc(4,Fn,6,15,"div",3),t.qZA()),2&e&&(t.xp6(2),t.ekj("ant-progress-line","line"===i.nzType)("ant-progress-small","small"===i.nzSize)("ant-progress-default","default"===i.nzSize)("ant-progress-show-info",i.nzShowInfo)("ant-progress-circle",i.isCircleStyle)("ant-progress-steps",i.isSteps)("ant-progress-rtl","rtl"===i.dir),t.Q6J("ngClass","ant-progress ant-progress-status-"+i.status),t.xp6(1),t.Q6J("ngIf","line"===i.nzType),t.xp6(1),t.Q6J("ngIf",i.isCircleStyle))},dependencies:[c.mk,c.sg,c.O5,c.tP,c.PC,E.Ls,U.f],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,S.oS)()],n.prototype,"nzShowInfo",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzStrokeColor",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzSize",void 0),(0,T.gn)([(0,M.Rn)()],n.prototype,"nzSuccessPercent",void 0),(0,T.gn)([(0,M.Rn)()],n.prototype,"nzPercent",void 0),(0,T.gn)([(0,S.oS)(),(0,M.Rn)()],n.prototype,"nzStrokeWidth",void 0),(0,T.gn)([(0,S.oS)(),(0,M.Rn)()],n.prototype,"nzGapDegree",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzGapPosition",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzStrokeLinecap",void 0),(0,T.gn)([(0,M.Rn)()],n.prototype,"nzSteps",void 0),n})(),Rn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,E.PV,U.T]}),n})();var L=s(6675),oe=s(3353);let Ln=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[c.ez]}),n})();const Jn=function(n){return{$implicit:n}};function Qn(n,o){if(1&n&&t.GkF(0,3),2&n){const e=t.oxw();t.Q6J("ngTemplateOutlet",e.nzValueTemplate)("ngTemplateOutletContext",t.VKq(2,Jn,e.nzValue))}}function Kn(n,o){if(1&n&&(t.TgZ(0,"span",6),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.displayInt)}}function Gn(n,o){if(1&n&&(t.TgZ(0,"span",7),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.displayDecimal)}}function Wn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Kn,2,1,"span",4),t.YNc(2,Gn,2,1,"span",5),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.displayInt),t.xp6(1),t.Q6J("ngIf",e.displayDecimal)}}function Yn(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.nzTitle)}}function qn(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.nzPrefix)}}function $n(n,o){if(1&n&&(t.TgZ(0,"span",6),t.YNc(1,qn,2,1,"ng-container",1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzPrefix)}}function jn(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.nzSuffix)}}function Vn(n,o){if(1&n&&(t.TgZ(0,"span",7),t.YNc(1,jn,2,1,"ng-container",1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzSuffix)}}let Hn=(()=>{class n{constructor(e){this.locale_id=e,this.displayInt="",this.displayDecimal=""}ngOnChanges(){this.formatNumber()}formatNumber(){const e="number"==typeof this.nzValue?".":(0,c.dv)(this.locale_id,c.wE.Decimal),i=String(this.nzValue),[a,r]=i.split(e);this.displayInt=a,this.displayDecimal=r?`${e}${r}`:""}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.soG))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-statistic-number"]],inputs:{nzValue:"nzValue",nzValueTemplate:"nzValueTemplate"},exportAs:["nzStatisticNumber"],features:[t.TTD],decls:3,vars:2,consts:[[1,"ant-statistic-content-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","ant-statistic-content-value-int",4,"ngIf"],["class","ant-statistic-content-value-decimal",4,"ngIf"],[1,"ant-statistic-content-value-int"],[1,"ant-statistic-content-value-decimal"]],template:function(e,i){1&e&&(t.TgZ(0,"span",0),t.YNc(1,Qn,1,4,"ng-container",1),t.YNc(2,Wn,3,2,"ng-container",2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",i.nzValueTemplate),t.xp6(1),t.Q6J("ngIf",!i.nzValueTemplate))},dependencies:[c.O5,c.tP],encapsulation:2,changeDetection:0}),n})(),ie=(()=>{class n{constructor(e,i){this.cdr=e,this.directionality=i,this.nzValueStyle={},this.dir="ltr",this.destroy$=new F.x}ngOnInit(){this.directionality.change?.pipe((0,A.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(P.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-statistic"]],hostAttrs:[1,"ant-statistic"],hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-statistic-rtl","rtl"===i.dir)},inputs:{nzPrefix:"nzPrefix",nzSuffix:"nzSuffix",nzTitle:"nzTitle",nzValue:"nzValue",nzValueStyle:"nzValueStyle",nzValueTemplate:"nzValueTemplate"},exportAs:["nzStatistic"],decls:6,vars:6,consts:[[1,"ant-statistic-title"],[4,"nzStringTemplateOutlet"],[1,"ant-statistic-content",3,"ngStyle"],["class","ant-statistic-content-prefix",4,"ngIf"],[3,"nzValue","nzValueTemplate"],["class","ant-statistic-content-suffix",4,"ngIf"],[1,"ant-statistic-content-prefix"],[1,"ant-statistic-content-suffix"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Yn,2,1,"ng-container",1),t.qZA(),t.TgZ(2,"div",2),t.YNc(3,$n,2,1,"span",3),t._UZ(4,"nz-statistic-number",4),t.YNc(5,Vn,2,1,"span",5),t.qZA()),2&e&&(t.xp6(1),t.Q6J("nzStringTemplateOutlet",i.nzTitle),t.xp6(1),t.Q6J("ngStyle",i.nzValueStyle),t.xp6(1),t.Q6J("ngIf",i.nzPrefix),t.xp6(1),t.Q6J("nzValue",i.nzValue)("nzValueTemplate",i.nzValueTemplate),t.xp6(1),t.Q6J("ngIf",i.nzSuffix))},dependencies:[c.O5,c.PC,U.f,Hn],encapsulation:2,changeDetection:0}),n})(),Xn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,oe.ud,U.T,Ln]}),n})();var ae=s(6451),to=s(8675),rt=s(3900),eo=s(3601),O=s(8505),no=s(8932),It=s(3303);function oo(n,o){1&n&&t.Hsn(0)}const io=["*"];function ao(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.nzTitle)}}function ro(n,o){if(1&n&&(t.TgZ(0,"div",6),t.YNc(1,ao,2,1,"ng-container",7),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzTitle)}}function so(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.nzExtra)}}function lo(n,o){if(1&n&&(t.TgZ(0,"div",8),t.YNc(1,so,2,1,"ng-container",7),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExtra)}}function co(n,o){if(1&n&&(t.TgZ(0,"div",3),t.YNc(1,ro,2,1,"div",4),t.YNc(2,lo,2,1,"div",5),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.nzTitle),t.xp6(1),t.Q6J("ngIf",e.nzExtra)}}function _o(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function uo(n,o){}function po(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",14),t.YNc(4,_o,2,1,"ng-container",7),t.qZA(),t.TgZ(5,"span",15),t.YNc(6,uo,0,0,"ng-template",16),t.qZA()()(),t.BQk()),2&n){const e=t.oxw().$implicit,i=t.oxw(3);t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(2),t.ekj("ant-descriptions-item-no-colon",!i.nzColon),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title),t.xp6(2),t.Q6J("ngTemplateOutlet",e.content)}}function go(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function mo(n,o){}function ho(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",14),t.YNc(2,go,2,1,"ng-container",7),t.qZA(),t.TgZ(3,"td",17),t.YNc(4,mo,0,0,"ng-template",16),t.qZA(),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(2),t.Q6J("nzStringTemplateOutlet",e.title),t.xp6(1),t.Q6J("colSpan",2*e.span-1),t.xp6(1),t.Q6J("ngTemplateOutlet",e.content)}}function fo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,po,7,5,"ng-container",2),t.YNc(2,ho,5,3,"ng-container",2),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("ngIf",!e.nzBordered),t.xp6(1),t.Q6J("ngIf",e.nzBordered)}}function Co(n,o){if(1&n&&(t.TgZ(0,"tr",10),t.YNc(1,fo,3,2,"ng-container",11),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("ngForOf",e)}}function zo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Co,2,1,"tr",9),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function To(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function xo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",14),t.YNc(4,To,2,1,"ng-container",7),t.qZA()()(),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(2),t.ekj("ant-descriptions-item-no-colon",!i.nzColon),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title)}}function Do(n,o){}function Mo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",15),t.YNc(4,Do,0,0,"ng-template",16),t.qZA()()(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(3),t.Q6J("ngTemplateOutlet",e.content)}}function ko(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",10),t.YNc(2,xo,5,4,"ng-container",11),t.qZA(),t.TgZ(3,"tr",10),t.YNc(4,Mo,5,2,"ng-container",11),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(2),t.Q6J("ngForOf",e),t.xp6(2),t.Q6J("ngForOf",e)}}function Oo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,ko,5,2,"ng-container",11),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function vo(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function Eo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",18),t.YNc(2,vo,2,1,"ng-container",7),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title)}}function Ao(n,o){}function Po(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",17),t.YNc(2,Ao,0,0,"ng-template",16),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(1),t.Q6J("ngTemplateOutlet",e.content)}}function So(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",10),t.YNc(2,Eo,3,2,"ng-container",11),t.qZA(),t.TgZ(3,"tr",10),t.YNc(4,Po,3,2,"ng-container",11),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(2),t.Q6J("ngForOf",e),t.xp6(2),t.Q6J("ngForOf",e)}}function yo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,So,5,2,"ng-container",11),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function Fo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Oo,2,1,"ng-container",2),t.YNc(2,yo,2,1,"ng-container",2),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!e.nzBordered),t.xp6(1),t.Q6J("ngIf",e.nzBordered)}}let Nt=(()=>{class n{constructor(){this.nzSpan=1,this.nzTitle="",this.inputChange$=new F.x}ngOnChanges(){this.inputChange$.next()}ngOnDestroy(){this.inputChange$.complete()}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-descriptions-item"]],viewQuery:function(e,i){if(1&e&&t.Gf(t.Rgc,7),2&e){let a;t.iGM(a=t.CRH())&&(i.content=a.first)}},inputs:{nzSpan:"nzSpan",nzTitle:"nzTitle"},exportAs:["nzDescriptionsItem"],features:[t.TTD],ngContentSelectors:io,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.YNc(0,oo,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),(0,T.gn)([(0,M.Rn)()],n.prototype,"nzSpan",void 0),n})();const wo={xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};let re=(()=>{class n{constructor(e,i,a,r){this.nzConfigService=e,this.cdr=i,this.breakpointService=a,this.directionality=r,this._nzModuleName="descriptions",this.nzBordered=!1,this.nzLayout="horizontal",this.nzColumn=wo,this.nzSize="default",this.nzTitle="",this.nzColon=!0,this.itemMatrix=[],this.realColumn=3,this.dir="ltr",this.breakpoint=It.G_.md,this.destroy$=new F.x}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe((0,A.R)(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){e.nzColumn&&this.prepareMatrix()}ngAfterContentInit(){const e=this.items.changes.pipe((0,to.O)(this.items),(0,A.R)(this.destroy$));(0,ae.T)(e,e.pipe((0,rt.w)(()=>(0,ae.T)(...this.items.map(i=>i.inputChange$)).pipe((0,eo.e)(16)))),this.breakpointService.subscribe(It.WV).pipe((0,O.b)(i=>this.breakpoint=i))).pipe((0,A.R)(this.destroy$)).subscribe(()=>{this.prepareMatrix(),this.cdr.markForCheck()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}prepareMatrix(){if(!this.items)return;let e=[],i=0;const a=this.realColumn=this.getColumn(),r=this.items.toArray(),d=r.length,C=[],z=()=>{C.push(e),e=[],i=0};for(let l=0;l<d;l++){const y=r[l],{nzTitle:w,content:Z,nzSpan:I}=y;i+=I,i>=a?(i>a&&(0,no.ZK)(`"nzColumn" is ${a} but we have row length ${i}`),e.push({title:w,content:Z,span:a-(i-I)}),z()):l===d-1?(e.push({title:w,content:Z,span:a-(i-I)}),z()):e.push({title:w,content:Z,span:I})}this.itemMatrix=C}getColumn(){return"number"!=typeof this.nzColumn?this.nzColumn[this.breakpoint]:this.nzColumn}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(S.jY),t.Y36(t.sBO),t.Y36(It.r3),t.Y36(P.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-descriptions"]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,Nt,4),2&e){let r;t.iGM(r=t.CRH())&&(i.items=r)}},hostAttrs:[1,"ant-descriptions"],hostVars:8,hostBindings:function(e,i){2&e&&t.ekj("ant-descriptions-bordered",i.nzBordered)("ant-descriptions-middle","middle"===i.nzSize)("ant-descriptions-small","small"===i.nzSize)("ant-descriptions-rtl","rtl"===i.dir)},inputs:{nzBordered:"nzBordered",nzLayout:"nzLayout",nzColumn:"nzColumn",nzSize:"nzSize",nzTitle:"nzTitle",nzExtra:"nzExtra",nzColon:"nzColon"},exportAs:["nzDescriptions"],features:[t.TTD],decls:6,vars:3,consts:[["class","ant-descriptions-header",4,"ngIf"],[1,"ant-descriptions-view"],[4,"ngIf"],[1,"ant-descriptions-header"],["class","ant-descriptions-title",4,"ngIf"],["class","ant-descriptions-extra",4,"ngIf"],[1,"ant-descriptions-title"],[4,"nzStringTemplateOutlet"],[1,"ant-descriptions-extra"],["class","ant-descriptions-row",4,"ngFor","ngForOf"],[1,"ant-descriptions-row"],[4,"ngFor","ngForOf"],[1,"ant-descriptions-item",3,"colSpan"],[1,"ant-descriptions-item-container"],[1,"ant-descriptions-item-label"],[1,"ant-descriptions-item-content"],[3,"ngTemplateOutlet"],[1,"ant-descriptions-item-content",3,"colSpan"],[1,"ant-descriptions-item-label",3,"colSpan"]],template:function(e,i){1&e&&(t.YNc(0,co,3,2,"div",0),t.TgZ(1,"div",1)(2,"table")(3,"tbody"),t.YNc(4,zo,2,1,"ng-container",2),t.YNc(5,Fo,3,2,"ng-container",2),t.qZA()()()),2&e&&(t.Q6J("ngIf",i.nzTitle||i.nzExtra),t.xp6(4),t.Q6J("ngIf","horizontal"===i.nzLayout),t.xp6(1),t.Q6J("ngIf","vertical"===i.nzLayout))},dependencies:[c.sg,c.O5,c.tP,U.f],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,M.yF)(),(0,S.oS)()],n.prototype,"nzBordered",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzColumn",void 0),(0,T.gn)([(0,S.oS)()],n.prototype,"nzSize",void 0),(0,T.gn)([(0,S.oS)(),(0,M.yF)()],n.prototype,"nzColon",void 0),n})(),Io=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[P.vT,c.ez,U.T,oe.ud]}),n})();var St=s(5861),b=s(9646),yt=s(515),se=s(4986),No=s(9751),Bo=s(4482),le=s(5403),Zo=s(8421);const ce={leading:!0,trailing:!1};var Ro=s(5963);class Bt{constructor(o){this.changes=o}static of(o){return new Bt(o)}notEmpty(o){if(this.changes[o]){const e=this.changes[o].currentValue;if(null!=e)return(0,b.of)(e)}return yt.E}has(o){return this.changes[o]?(0,b.of)(this.changes[o].currentValue):yt.E}notFirst(o){return this.changes[o]&&!this.changes[o].isFirstChange()?(0,b.of)(this.changes[o].currentValue):yt.E}notFirstAndEmpty(o){if(this.changes[o]&&!this.changes[o].isFirstChange()){const e=this.changes[o].currentValue;if(null!=e)return(0,b.of)(e)}return yt.E}}const _e=new t.OlP("NGX_ECHARTS_CONFIG");let ue=(()=>{class n{constructor(e,i,a){this.el=i,this.ngZone=a,this.options=null,this.theme=null,this.initOpts=null,this.merge=null,this.autoResize=!0,this.loading=!1,this.loadingType="default",this.loadingOpts=null,this.chartInit=new t.vpe,this.optionsError=new t.vpe,this.chartClick=this.createLazyEvent("click"),this.chartDblClick=this.createLazyEvent("dblclick"),this.chartMouseDown=this.createLazyEvent("mousedown"),this.chartMouseMove=this.createLazyEvent("mousemove"),this.chartMouseUp=this.createLazyEvent("mouseup"),this.chartMouseOver=this.createLazyEvent("mouseover"),this.chartMouseOut=this.createLazyEvent("mouseout"),this.chartGlobalOut=this.createLazyEvent("globalout"),this.chartContextMenu=this.createLazyEvent("contextmenu"),this.chartLegendSelectChanged=this.createLazyEvent("legendselectchanged"),this.chartLegendSelected=this.createLazyEvent("legendselected"),this.chartLegendUnselected=this.createLazyEvent("legendunselected"),this.chartLegendScroll=this.createLazyEvent("legendscroll"),this.chartDataZoom=this.createLazyEvent("datazoom"),this.chartDataRangeSelected=this.createLazyEvent("datarangeselected"),this.chartTimelineChanged=this.createLazyEvent("timelinechanged"),this.chartTimelinePlayChanged=this.createLazyEvent("timelineplaychanged"),this.chartRestore=this.createLazyEvent("restore"),this.chartDataViewChanged=this.createLazyEvent("dataviewchanged"),this.chartMagicTypeChanged=this.createLazyEvent("magictypechanged"),this.chartPieSelectChanged=this.createLazyEvent("pieselectchanged"),this.chartPieSelected=this.createLazyEvent("pieselected"),this.chartPieUnselected=this.createLazyEvent("pieunselected"),this.chartMapSelectChanged=this.createLazyEvent("mapselectchanged"),this.chartMapSelected=this.createLazyEvent("mapselected"),this.chartMapUnselected=this.createLazyEvent("mapunselected"),this.chartAxisAreaSelected=this.createLazyEvent("axisareaselected"),this.chartFocusNodeAdjacency=this.createLazyEvent("focusnodeadjacency"),this.chartUnfocusNodeAdjacency=this.createLazyEvent("unfocusnodeadjacency"),this.chartBrush=this.createLazyEvent("brush"),this.chartBrushEnd=this.createLazyEvent("brushend"),this.chartBrushSelected=this.createLazyEvent("brushselected"),this.chartRendered=this.createLazyEvent("rendered"),this.chartFinished=this.createLazyEvent("finished"),this.animationFrameID=null,this.resize$=new F.x,this.echarts=e.echarts}ngOnChanges(e){const i=Bt.of(e);i.notFirstAndEmpty("options").subscribe(a=>this.onOptionsChange(a)),i.notFirstAndEmpty("merge").subscribe(a=>this.setOption(a)),i.has("loading").subscribe(a=>this.toggleLoading(!!a)),i.notFirst("theme").subscribe(()=>this.refreshChart())}ngOnInit(){if(!window.ResizeObserver)throw new Error("please install a polyfill for ResizeObserver");this.resizeSub=this.resize$.pipe(function Lo(n,o=se.z,e=ce){const i=(0,Ro.H)(n,o);return function Uo(n,o=ce){return(0,Bo.e)((e,i)=>{const{leading:a,trailing:r}=o;let d=!1,C=null,z=null,l=!1;const y=()=>{z?.unsubscribe(),z=null,r&&(I(),l&&i.complete())},w=()=>{z=null,l&&i.complete()},Z=Y=>z=(0,Zo.Xf)(n(Y)).subscribe((0,le.x)(i,y,w)),I=()=>{if(d){d=!1;const Y=C;C=null,i.next(Y),!l&&Z(Y)}};e.subscribe((0,le.x)(i,Y=>{d=!0,C=Y,(!z||z.closed)&&(a?I():Z(Y))},()=>{l=!0,(!(r&&d&&z)||z.closed)&&i.complete()}))})}(()=>i,e)}(100,se.z,{leading:!1,trailing:!0})).subscribe(()=>this.resize()),this.autoResize&&(this.resizeOb=this.ngZone.runOutsideAngular(()=>new window.ResizeObserver(()=>{this.animationFrameID=window.requestAnimationFrame(()=>this.resize$.next())})),this.resizeOb.observe(this.el.nativeElement))}ngOnDestroy(){window.clearTimeout(this.initChartTimer),this.resizeSub&&this.resizeSub.unsubscribe(),this.animationFrameID&&window.cancelAnimationFrame(this.animationFrameID),this.resizeOb&&this.resizeOb.unobserve(this.el.nativeElement),this.dispose()}ngAfterViewInit(){this.initChartTimer=window.setTimeout(()=>this.initChart())}dispose(){this.chart&&(this.chart.isDisposed()||this.chart.dispose(),this.chart=null)}resize(){this.chart&&this.chart.resize()}toggleLoading(e){this.chart&&(e?this.chart.showLoading(this.loadingType,this.loadingOpts):this.chart.hideLoading())}setOption(e,i){if(this.chart)try{this.chart.setOption(e,i)}catch(a){console.error(a),this.optionsError.emit(a)}}refreshChart(){var e=this;return(0,St.Z)(function*(){e.dispose(),yield e.initChart()})()}createChart(){const e=this.el.nativeElement;if(window&&window.getComputedStyle){const i=window.getComputedStyle(e,null).getPropertyValue("height");(!i||"0px"===i)&&(!e.style.height||"0px"===e.style.height)&&(e.style.height="400px")}return this.ngZone.runOutsideAngular(()=>("function"==typeof this.echarts?this.echarts:()=>Promise.resolve(this.echarts))().then(({init:a})=>a(e,this.theme,this.initOpts)))}initChart(){var e=this;return(0,St.Z)(function*(){yield e.onOptionsChange(e.options),e.merge&&e.chart&&e.setOption(e.merge)})()}onOptionsChange(e){var i=this;return(0,St.Z)(function*(){e&&(i.chart||(i.chart=yield i.createChart(),i.chartInit.emit(i.chart)),i.setOption(i.options,!0))})()}createLazyEvent(e){return this.chartInit.pipe((0,rt.w)(i=>new No.y(a=>(i.on(e,r=>this.ngZone.run(()=>a.next(r))),()=>{this.chart&&(this.chart.isDisposed()||i.off(e))}))))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(_e),t.Y36(t.SBq),t.Y36(t.R0b))},n.\u0275dir=t.lG2({type:n,selectors:[["echarts"],["","echarts",""]],inputs:{options:"options",theme:"theme",initOpts:"initOpts",merge:"merge",autoResize:"autoResize",loading:"loading",loadingType:"loadingType",loadingOpts:"loadingOpts"},outputs:{chartInit:"chartInit",optionsError:"optionsError",chartClick:"chartClick",chartDblClick:"chartDblClick",chartMouseDown:"chartMouseDown",chartMouseMove:"chartMouseMove",chartMouseUp:"chartMouseUp",chartMouseOver:"chartMouseOver",chartMouseOut:"chartMouseOut",chartGlobalOut:"chartGlobalOut",chartContextMenu:"chartContextMenu",chartLegendSelectChanged:"chartLegendSelectChanged",chartLegendSelected:"chartLegendSelected",chartLegendUnselected:"chartLegendUnselected",chartLegendScroll:"chartLegendScroll",chartDataZoom:"chartDataZoom",chartDataRangeSelected:"chartDataRangeSelected",chartTimelineChanged:"chartTimelineChanged",chartTimelinePlayChanged:"chartTimelinePlayChanged",chartRestore:"chartRestore",chartDataViewChanged:"chartDataViewChanged",chartMagicTypeChanged:"chartMagicTypeChanged",chartPieSelectChanged:"chartPieSelectChanged",chartPieSelected:"chartPieSelected",chartPieUnselected:"chartPieUnselected",chartMapSelectChanged:"chartMapSelectChanged",chartMapSelected:"chartMapSelected",chartMapUnselected:"chartMapUnselected",chartAxisAreaSelected:"chartAxisAreaSelected",chartFocusNodeAdjacency:"chartFocusNodeAdjacency",chartUnfocusNodeAdjacency:"chartUnfocusNodeAdjacency",chartBrush:"chartBrush",chartBrushEnd:"chartBrushEnd",chartBrushSelected:"chartBrushSelected",chartRendered:"chartRendered",chartFinished:"chartFinished"},exportAs:["echarts"],features:[t.TTD]}),n})(),Jo=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[{provide:_e,useValue:e}]}}static forChild(){return{ngModule:n}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({}),n})();var Qo=s(4466),st=s(6582),pe=s(7445),ge=s(7188),de=s(7886),lt=s(262),Zt=s(4007),me=s(387),Ut=s(844),Ko=s(5545),Go=s(7512),m=s(2948),Wo=s(8147);class J{transform(o,e){return(0,Wo.G)(o,{base:2,standard:"jedec",...e,output:"string"})}}J.\u0275fac=function(o){return new(o||J)},J.\u0275pipe=t.Yjl({name:"filesize",type:J,pure:!0});class G{transform(o){return o?o.startsWith("/")?o.split("/").pop()??"":o.split("\\").pop()??"":""}}G.\u0275fac=function(o){return new(o||G)},G.\u0275pipe=t.Yjl({name:"filename",type:G,pure:!0});const Yo=new Map([[m.cS.RECORDING,"\u5f55\u5236\u4e2d"],[m.cS.INJECTING,"\u5904\u7406\u4e2d"],[m.cS.REMUXING,"\u5904\u7406\u4e2d"],[m.cS.COMPLETED,"\u5df2\u5b8c\u6210"],[m.cS.MISSING,"\u4e0d\u5b58\u5728"],[m.cS.BROKEN,"\u5f55\u5236\u4e2d\u65ad"]]);class ct{transform(o){return Yo.get(o)??"\uff1f\uff1f\uff1f"}}function qo(n,o){if(1&n&&(t.TgZ(0,"th",5),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.Q6J("nzSortOrder",e.sortOrder)("nzSortFn",e.sortFn)("nzSortDirections",e.sortDirections)("nzFilters",e.listOfFilter)("nzFilterFn",e.filterFn)("nzFilterMultiple",e.filterMultiple)("nzShowFilter",e.listOfFilter.length>0),t.xp6(1),t.hij(" ",e.name," ")}}function $o(n,o){if(1&n&&(t.TgZ(0,"tr")(1,"td",6),t._uU(2),t.ALo(3,"filename"),t.qZA(),t.TgZ(4,"td",6),t.ALo(5,"number"),t._uU(6),t.ALo(7,"filesize"),t.qZA(),t.TgZ(8,"td",6),t._uU(9),t.ALo(10,"filestatus"),t.qZA()()),2&n){const e=o.$implicit;t.xp6(1),t.s9C("title",e.path),t.xp6(1),t.Oqu(t.lcZ(3,9,e.path)),t.xp6(2),t.s9C("title",t.lcZ(5,11,e.size)),t.xp6(2),t.Oqu(t.lcZ(7,13,e.size)),t.xp6(2),t.Gre("status ",e.status,""),t.s9C("title",e.status),t.xp6(1),t.hij(" ",t.lcZ(10,15,e.status)," ")}}ct.\u0275fac=function(o){return new(o||ct)},ct.\u0275pipe=t.Yjl({name:"filestatus",type:ct,pure:!0});const he=[m.cS.RECORDING,m.cS.INJECTING,m.cS.REMUXING,m.cS.COMPLETED,m.cS.MISSING];class _t{constructor(){this.loading=!0,this.videoFileDetails=[],this.danmakuFileDetails=[],this.VideoFileStatus=m.cS,this.fileDetails=[],this.columns=[{name:"\u6587\u4ef6",sortOrder:"ascend",sortFn:(o,e)=>o.path.localeCompare(e.path),sortDirections:["ascend","descend"],filterMultiple:!1,listOfFilter:[{text:"\u89c6\u9891",value:"video"},{text:"\u5f39\u5e55",value:"danmaku"}],filterFn:(o,e)=>{switch(o){case"video":return e.path.endsWith(".flv")||e.path.endsWith(".mp4");case"danmaku":return e.path.endsWith(".xml");default:return!1}}},{name:"\u5927\u5c0f",sortOrder:null,sortFn:(o,e)=>o.size-e.size,sortDirections:["ascend","descend",null],filterMultiple:!0,listOfFilter:[],filterFn:null},{name:"\u72b6\u6001",sortOrder:null,sortFn:(o,e)=>he.indexOf(o.status)-he.indexOf(e.status),sortDirections:["ascend","descend",null],filterMultiple:!0,listOfFilter:[{text:"\u5f55\u5236\u4e2d",value:[m.cS.RECORDING]},{text:"\u5904\u7406\u4e2d",value:[m.cS.INJECTING,m.cS.REMUXING]},{text:"\u5df2\u5b8c\u6210",value:[m.cS.COMPLETED]},{text:"\u4e0d\u5b58\u5728",value:[m.cS.MISSING]}],filterFn:(o,e)=>o.some(i=>i.some(a=>a===e.status))}]}ngOnChanges(){this.fileDetails=[...this.videoFileDetails,...this.danmakuFileDetails]}trackByPath(o,e){return e.path}}_t.\u0275fac=function(o){return new(o||_t)},_t.\u0275cmp=t.Xpm({type:_t,selectors:[["app-task-file-detail"]],inputs:{loading:"loading",videoFileDetails:"videoFileDetails",danmakuFileDetails:"danmakuFileDetails"},features:[t.TTD],decls:8,vars:8,consts:[["nzTitle","\u6587\u4ef6\u8be6\u60c5",3,"nzLoading"],[3,"nzLoading","nzData","nzPageSize","nzHideOnSinglePage"],["fileDetailsTable",""],[3,"nzSortOrder","nzSortFn","nzSortDirections","nzFilters","nzFilterFn","nzFilterMultiple","nzShowFilter",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"nzSortOrder","nzSortFn","nzSortDirections","nzFilters","nzFilterFn","nzFilterMultiple","nzShowFilter"],[3,"title"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-table",1,2)(3,"thead")(4,"tr"),t.YNc(5,qo,2,8,"th",3),t.qZA()(),t.TgZ(6,"tbody"),t.YNc(7,$o,11,17,"tr",4),t.qZA()()()),2&o){const i=t.MAs(2);t.Q6J("nzLoading",e.loading),t.xp6(1),t.Q6J("nzLoading",e.loading)("nzData",e.fileDetails)("nzPageSize",8)("nzHideOnSinglePage",!0),t.xp6(4),t.Q6J("ngForOf",e.columns),t.xp6(2),t.Q6J("ngForOf",i.data)("ngForTrackBy",e.trackByPath)}},dependencies:[c.sg,v.bd,L.N8,L.qD,L.Uo,L._C,L.Om,L.p0,L.$Z,c.JJ,J,G,ct],styles:[".status.recording[_ngcontent-%COMP%]{color:red}.status.injecting[_ngcontent-%COMP%], .status.remuxing[_ngcontent-%COMP%]{color:#00f}.status.completed[_ngcontent-%COMP%]{color:green}.status.missing[_ngcontent-%COMP%]{color:gray}.status.broken[_ngcontent-%COMP%]{color:orange}"],changeDetection:0});class ut{constructor(){this.loading=!0}ngOnInit(){}}function jo(n,o){if(1&n&&(t.TgZ(0,"span",18),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("",e.roomInfo.short_room_id," ")}}function Vo(n,o){1&n&&(t.ynx(0),t._uU(1,"\u95f2\u7f6e"),t.BQk())}function Ho(n,o){1&n&&(t.ynx(0),t._uU(1,"\u76f4\u64ad\u4e2d"),t.BQk())}function Xo(n,o){1&n&&(t.ynx(0),t._uU(1,"\u8f6e\u64ad\u4e2d"),t.BQk())}function ti(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.ALo(2,"date"),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.hij(" ",t.Dn7(2,1,1e3*e.roomInfo.live_start_time,"YYYY-MM-dd HH:mm:ss","+8")," ")}}function ei(n,o){if(1&n&&(t.TgZ(0,"nz-tag"),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.hij(" ",e," ")}}function ni(n,o){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.Oqu(e)}}ut.\u0275fac=function(o){return new(o||ut)},ut.\u0275cmp=t.Xpm({type:ut,selectors:[["app-task-user-info-detail"]],inputs:{loading:"loading",userInfo:"userInfo"},decls:12,vars:6,consts:[["nzTitle","\u4e3b\u64ad\u4fe1\u606f",3,"nzLoading"],["nzTitle",""],["nzTitle","\u6635\u79f0"],["nzTitle","\u6027\u522b"],["nzTitle","UID"],["nzTitle","\u7b49\u7ea7"],["nzTitle","\u7b7e\u540d"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-descriptions",1)(2,"nz-descriptions-item",2),t._uU(3),t.qZA(),t.TgZ(4,"nz-descriptions-item",3),t._uU(5),t.qZA(),t.TgZ(6,"nz-descriptions-item",4),t._uU(7),t.qZA(),t.TgZ(8,"nz-descriptions-item",5),t._uU(9),t.qZA(),t.TgZ(10,"nz-descriptions-item",6),t._uU(11),t.qZA()()()),2&o&&(t.Q6J("nzLoading",e.loading),t.xp6(3),t.Oqu(e.userInfo.name),t.xp6(2),t.Oqu(e.userInfo.gender),t.xp6(2),t.Oqu(e.userInfo.uid),t.xp6(2),t.Oqu(e.userInfo.level),t.xp6(2),t.hij(" ",e.userInfo.sign," "))},dependencies:[v.bd,re,Nt],changeDetection:0});class pt{constructor(){this.loading=!0}ngOnInit(){}}pt.\u0275fac=function(o){return new(o||pt)},pt.\u0275cmp=t.Xpm({type:pt,selectors:[["app-task-room-info-detail"]],inputs:{loading:"loading",roomInfo:"roomInfo"},decls:24,vars:13,consts:[["nzTitle","\u76f4\u64ad\u95f4\u4fe1\u606f",3,"nzLoading"],["nzTitle",""],["nzTitle","\u6807\u9898"],["nzTitle","\u5206\u533a"],["nzTitle","\u623f\u95f4\u53f7"],[1,"room-id-wrapper"],["class","short-room-id",4,"ngIf"],[1,"real-room-id"],["nzTitle","\u72b6\u6001"],[3,"ngSwitch"],[4,"ngSwitchCase"],["nzTitle","\u5f00\u64ad\u65f6\u95f4"],[4,"ngIf"],["nzTitle","\u6807\u7b7e"],[1,"tags"],[4,"ngFor","ngForOf"],["nzTitle","\u7b80\u4ecb"],[1,"introduction"],[1,"short-room-id"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-descriptions",1)(2,"nz-descriptions-item",2),t._uU(3),t.qZA(),t.TgZ(4,"nz-descriptions-item",3),t._uU(5),t.qZA(),t.TgZ(6,"nz-descriptions-item",4)(7,"span",5),t.YNc(8,jo,2,1,"span",6),t.TgZ(9,"span",7),t._uU(10),t.qZA()()(),t.TgZ(11,"nz-descriptions-item",8),t.ynx(12,9),t.YNc(13,Vo,2,0,"ng-container",10),t.YNc(14,Ho,2,0,"ng-container",10),t.YNc(15,Xo,2,0,"ng-container",10),t.BQk(),t.qZA(),t.TgZ(16,"nz-descriptions-item",11),t.YNc(17,ti,3,5,"ng-container",12),t.qZA(),t.TgZ(18,"nz-descriptions-item",13)(19,"div",14),t.YNc(20,ei,2,1,"nz-tag",15),t.qZA()(),t.TgZ(21,"nz-descriptions-item",16)(22,"div",17),t.YNc(23,ni,2,1,"p",15),t.qZA()()()()),2&o&&(t.Q6J("nzLoading",e.loading),t.xp6(3),t.Oqu(e.roomInfo.title),t.xp6(2),t.AsE(" ",e.roomInfo.parent_area_name," - ",e.roomInfo.area_name," "),t.xp6(3),t.Q6J("ngIf",e.roomInfo.short_room_id),t.xp6(2),t.hij(" ",e.roomInfo.room_id," "),t.xp6(2),t.Q6J("ngSwitch",e.roomInfo.live_status),t.xp6(1),t.Q6J("ngSwitchCase",0),t.xp6(1),t.Q6J("ngSwitchCase",1),t.xp6(1),t.Q6J("ngSwitchCase",2),t.xp6(2),t.Q6J("ngIf",0!==e.roomInfo.live_start_time),t.xp6(3),t.Q6J("ngForOf",e.roomInfo.tags.split(",")),t.xp6(3),t.Q6J("ngForOf",e.roomInfo.description.split("\n")))},dependencies:[c.sg,c.O5,c.RF,c.n9,v.bd,Wt,re,Nt,c.uU],styles:['.room-id-wrapper[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.room-id-wrapper[_ngcontent-%COMP%]   .short-room-id[_ngcontent-%COMP%]:after{display:inline-block;width:1em;content:","}.tags[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;row-gap:.5em}.introduction[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;padding:0}'],changeDetection:0});class H{transform(o){return o&&0!==o.total?Math.round(o.count/o.total*100):0}}H.\u0275fac=function(o){return new(o||H)},H.\u0275pipe=t.Yjl({name:"progress",type:H,pure:!0});class gt{constructor(){this.loading=!0}ngOnInit(){}get title(){switch(this.taskStatus.postprocessor_status){case m.ii.INJECTING:return"\u66f4\u65b0 FLV \u5143\u6570\u636e";case m.ii.REMUXING:return"\u8f6c\u6362 FLV \u4e3a MP4";default:return"\u6587\u4ef6\u5904\u7406"}}}gt.\u0275fac=function(o){return new(o||gt)},gt.\u0275cmp=t.Xpm({type:gt,selectors:[["app-task-postprocessing-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},decls:6,vars:9,consts:[[3,"nzTitle","nzLoading"],[3,"title"],["nzStatus","active",3,"nzPercent"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"p",1),t._uU(2),t.ALo(3,"filename"),t.qZA(),t._UZ(4,"nz-progress",2),t.ALo(5,"progress"),t.qZA()),2&o){let i;t.Q6J("nzTitle",e.title)("nzLoading",e.loading),t.xp6(1),t.Q6J("title",e.taskStatus.postprocessing_path),t.xp6(1),t.hij(" ",t.lcZ(3,5,null!==(i=e.taskStatus.postprocessing_path)&&void 0!==i?i:"")," "),t.xp6(2),t.Q6J("nzPercent",null===e.taskStatus.postprocessing_progress?0:t.lcZ(5,7,e.taskStatus.postprocessing_progress))}},dependencies:[v.bd,ne,H,G],styles:["p[_ngcontent-%COMP%]{margin:0}"],changeDetection:0});var X=s(2134);class tt{transform(o){return(0,X.LU)(o,!0)}}tt.\u0275fac=function(o){return new(o||tt)},tt.\u0275pipe=t.Yjl({name:"duration",type:tt,pure:!0});var Rt=s(3692),fe=s(3520);function oi(n,o){if(1&n&&(t._uU(0),t.ALo(1,"duration")),2&n){const e=t.oxw();t.Oqu(t.lcZ(1,1,e.taskStatus.rec_elapsed))}}function ii(n,o){if(1&n&&(t._uU(0),t.ALo(1,"datarate")),2&n){const e=t.oxw();t.Oqu(t.lcZ(1,1,e.taskStatus.rec_rate))}}const ai=function(){return{spacer:" "}};function ri(n,o){if(1&n&&(t._uU(0),t.ALo(1,"filesize")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,e.taskStatus.rec_total,t.DdM(4,ai)))}}function si(n,o){if(1&n&&(t._uU(0),t.ALo(1,"quality")),2&n){const e=t.oxw();t.Oqu(e.taskStatus.real_quality_number?t.lcZ(1,1,e.taskStatus.real_quality_number)+" ("+e.taskStatus.real_quality_number+")":"")}}class dt{constructor(o){this.changeDetector=o,this.loading=!0,this.initialChartOptions={},this.updatedChartOptions={},this.chartData=[],this.initChartOptions()}ngOnChanges(){this.taskStatus.running_status===m.cG.RECORDING&&this.updateChartOptions()}initChartOptions(){const o=Date.now();for(let e=59;e>=0;e--){const i=new Date(o-1e3*e);this.chartData.push({name:i.toLocaleString("zh-CN",{hour12:!1}),value:[i.toISOString(),0]})}this.initialChartOptions={title:{},tooltip:{trigger:"axis",formatter:e=>{const i=e[0];return`\n            <div>\n              <div>\n                ${new Date(i.name).toLocaleTimeString("zh-CN",{hour12:!1})}\n              </div>\n              <div>${(0,X.N4)(i.value[1])}</div>\n            </div>\n          `},axisPointer:{animation:!1}},xAxis:{type:"time",name:"\u65f6\u95f4",min:"dataMin",max:"dataMax",splitLine:{show:!0}},yAxis:{type:"value",name:"\u5f55\u5236\u901f\u5ea6",splitLine:{show:!0},axisLabel:{formatter:e=>(0,X.N4)(e)}},series:[{name:"\u5f55\u5236\u901f\u5ea6",type:"line",showSymbol:!1,smooth:!0,lineStyle:{width:1},areaStyle:{opacity:.2},data:this.chartData}]}}updateChartOptions(){const o=new Date;this.chartData.push({name:o.toLocaleString("zh-CN",{hour12:!1}),value:[o.toISOString(),this.taskStatus.rec_rate]}),this.chartData.shift(),this.updatedChartOptions={series:[{data:this.chartData}]},this.changeDetector.markForCheck()}}function li(n,o){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.taskStatus.stream_host)}}function ci(n,o){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.taskStatus.real_stream_format)}}dt.\u0275fac=function(o){return new(o||dt)(t.Y36(t.sBO))},dt.\u0275cmp=t.Xpm({type:dt,selectors:[["app-task-recording-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},features:[t.TTD],decls:17,vars:17,consts:[["nzTitle","\u5f55\u5236\u8be6\u60c5",3,"nzLoading"],[1,"statistics"],[3,"nzTitle","nzValueTemplate"],["recordingElapsed",""],["recordingRate",""],["recordedTotal",""],["recordingQuality",""],[3,"nzTitle","nzValue"],["echarts","",1,"rec-rate-chart",3,"loading","options","merge"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"div",1),t._UZ(2,"nz-statistic",2),t.YNc(3,oi,2,3,"ng-template",null,3,t.W1O),t._UZ(5,"nz-statistic",2),t.YNc(6,ii,2,3,"ng-template",null,4,t.W1O),t._UZ(8,"nz-statistic",2),t.YNc(9,ri,2,5,"ng-template",null,5,t.W1O),t._UZ(11,"nz-statistic",2),t.YNc(12,si,2,3,"ng-template",null,6,t.W1O),t._UZ(14,"nz-statistic",7),t.ALo(15,"number"),t.qZA(),t._UZ(16,"div",8),t.qZA()),2&o){const i=t.MAs(4),a=t.MAs(7),r=t.MAs(10),d=t.MAs(13);t.Q6J("nzLoading",e.loading),t.xp6(2),t.Q6J("nzTitle","\u5f55\u5236\u7528\u65f6")("nzValueTemplate",i),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u901f\u5ea6")("nzValueTemplate",a),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u603b\u8ba1")("nzValueTemplate",r),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u753b\u8d28")("nzValueTemplate",d),t.xp6(3),t.Q6J("nzTitle","\u5f39\u5e55\u603b\u8ba1")("nzValue",t.xi3(15,14,e.taskStatus.danmu_total,"1.0-2")),t.xp6(2),t.Q6J("loading",e.loading)("options",e.initialChartOptions)("merge",e.updatedChartOptions)}},dependencies:[v.bd,ie,ue,c.JJ,tt,Rt.f,J,fe.U],styles:[".statistics[_ngcontent-%COMP%]{--grid-width: 200px;display:grid;grid-template-columns:repeat(auto-fill,var(--grid-width));gap:1em;justify-content:center;margin:0 auto}@media screen and (max-width: 1024px){.statistics[_ngcontent-%COMP%]{--grid-width: 180px}}@media screen and (max-width: 720px){.statistics[_ngcontent-%COMP%]{--grid-width: 160px}}@media screen and (max-width: 680px){.statistics[_ngcontent-%COMP%]{--grid-width: 140px}}@media screen and (max-width: 480px){.statistics[_ngcontent-%COMP%]{--grid-width: 120px}}.rec-rate-chart[_ngcontent-%COMP%]{width:100%;height:300px;margin:0}"],changeDetection:0});const _i=function(){return{bitrate:!0}};function ui(n,o){if(1&n&&(t._uU(0),t.ALo(1,"datarate")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,8*e.taskStatus.dl_rate,t.DdM(4,_i)))}}const pi=function(){return{spacer:" "}};function gi(n,o){if(1&n&&(t._uU(0),t.ALo(1,"filesize")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,e.taskStatus.dl_total,t.DdM(4,pi)))}}class mt{constructor(o){this.changeDetector=o,this.loading=!0,this.initialChartOptions={},this.updatedChartOptions={},this.chartData=[],this.initChartOptions()}ngOnChanges(){this.taskStatus.running_status===m.cG.RECORDING&&this.updateChartOptions()}initChartOptions(){const o=Date.now();for(let e=59;e>=0;e--){const i=new Date(o-1e3*e);this.chartData.push({name:i.toLocaleString("zh-CN",{hour12:!1}),value:[i.toISOString(),0]})}this.initialChartOptions={title:{},tooltip:{trigger:"axis",formatter:e=>{const i=e[0];return`\n            <div>\n              <div>\n                ${new Date(i.name).toLocaleTimeString("zh-CN",{hour12:!1})}\n              </div>\n              <div>${(0,X.AX)(i.value[1])}</div>\n            </div>\n          `},axisPointer:{animation:!1}},xAxis:{type:"time",name:"\u65f6\u95f4",min:"dataMin",max:"dataMax",splitLine:{show:!0}},yAxis:{type:"value",name:"\u4e0b\u8f7d\u901f\u5ea6",splitLine:{show:!0},axisLabel:{formatter:function(e){return(0,X.AX)(e)}}},series:[{name:"\u4e0b\u8f7d\u901f\u5ea6",type:"line",showSymbol:!1,smooth:!0,lineStyle:{width:1},areaStyle:{opacity:.2},data:this.chartData}]}}updateChartOptions(){const o=new Date;this.chartData.push({name:o.toLocaleString("zh-CN",{hour12:!1}),value:[o.toISOString(),8*this.taskStatus.dl_rate]}),this.chartData.shift(),this.updatedChartOptions={series:[{data:this.chartData}]},this.changeDetector.markForCheck()}}function di(n,o){if(1&n&&t._UZ(0,"app-task-user-info-detail",6),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("userInfo",e.taskData.user_info)}}function mi(n,o){if(1&n&&t._UZ(0,"app-task-room-info-detail",7),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("roomInfo",e.taskData.room_info)}}function hi(n,o){if(1&n&&t._UZ(0,"app-task-recording-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function fi(n,o){if(1&n&&t._UZ(0,"app-task-network-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function Ci(n,o){if(1&n&&t._UZ(0,"app-task-postprocessing-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function zi(n,o){if(1&n&&(t.YNc(0,di,1,2,"app-task-user-info-detail",2),t.YNc(1,mi,1,2,"app-task-room-info-detail",3),t.YNc(2,hi,1,2,"app-task-recording-detail",4),t.YNc(3,fi,1,2,"app-task-network-detail",4),t.YNc(4,Ci,1,2,"app-task-postprocessing-detail",4),t._UZ(5,"app-task-file-detail",5)),2&n){const e=t.oxw();t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",null==e.taskData||null==e.taskData.task_status?null:e.taskData.task_status.postprocessing_path),t.xp6(1),t.Q6J("loading",e.loading)("videoFileDetails",e.videoFileDetails)("danmakuFileDetails",e.danmakuFileDetails)}}mt.\u0275fac=function(o){return new(o||mt)(t.Y36(t.sBO))},mt.\u0275cmp=t.Xpm({type:mt,selectors:[["app-task-network-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},features:[t.TTD],decls:15,vars:12,consts:[["nzTitle","\u7f51\u7edc\u8be6\u60c5",3,"nzLoading"],[1,"statistics"],[1,"stream-host",3,"nzTitle","nzValueTemplate"],["streamHost",""],[3,"nzTitle","nzValueTemplate"],["realStreamFormat",""],["downloadRate",""],["downloadTotal",""],["echarts","",1,"dl-rate-chart",3,"loading","options","merge"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"div",1),t._UZ(2,"nz-statistic",2),t.YNc(3,li,1,1,"ng-template",null,3,t.W1O),t._UZ(5,"nz-statistic",4),t.YNc(6,ci,1,1,"ng-template",null,5,t.W1O),t._UZ(8,"nz-statistic",4),t.YNc(9,ui,2,5,"ng-template",null,6,t.W1O),t._UZ(11,"nz-statistic",4),t.YNc(12,gi,2,5,"ng-template",null,7,t.W1O),t.qZA(),t._UZ(14,"div",8),t.qZA()),2&o){const i=t.MAs(4),a=t.MAs(7),r=t.MAs(10),d=t.MAs(13);t.Q6J("nzLoading",e.loading),t.xp6(2),t.Q6J("nzTitle","\u6d41\u4e3b\u673a")("nzValueTemplate",i),t.xp6(3),t.Q6J("nzTitle","\u6d41\u683c\u5f0f")("nzValueTemplate",a),t.xp6(3),t.Q6J("nzTitle","\u4e0b\u8f7d\u901f\u5ea6")("nzValueTemplate",r),t.xp6(3),t.Q6J("nzTitle","\u4e0b\u8f7d\u603b\u8ba1")("nzValueTemplate",d),t.xp6(3),t.Q6J("loading",e.loading)("options",e.initialChartOptions)("merge",e.updatedChartOptions)}},dependencies:[v.bd,ie,ue,Rt.f,J],styles:[".statistics[_ngcontent-%COMP%]{--grid-width: 200px;display:grid;grid-template-columns:repeat(auto-fill,var(--grid-width));gap:1em;justify-content:center;margin:0 auto}@media screen and (max-width: 1024px){.statistics[_ngcontent-%COMP%]{--grid-width: 180px}}@media screen and (max-width: 720px){.statistics[_ngcontent-%COMP%]{--grid-width: 160px}}@media screen and (max-width: 680px){.statistics[_ngcontent-%COMP%]{--grid-width: 140px}}@media screen and (max-width: 480px){.statistics[_ngcontent-%COMP%]{--grid-width: 120px}}.stream-host[_ngcontent-%COMP%]{grid-column:1/3;grid-row:1}.dl-rate-chart[_ngcontent-%COMP%]{width:100%;height:300px;margin:0}"],changeDetection:0});const Ti=function(){return{"max-width":"unset"}},xi=function(){return{"row-gap":"1em"}};class ht{constructor(o,e,i,a,r){this.route=o,this.router=e,this.changeDetector=i,this.notification=a,this.taskService=r,this.videoFileDetails=[],this.danmakuFileDetails=[],this.loading=!0}ngOnInit(){this.route.paramMap.subscribe(o=>{this.roomId=parseInt(o.get("id")),this.syncData()})}ngOnDestroy(){this.desyncData()}syncData(){this.dataSubscription=(0,b.of)((0,b.of)(0),(0,pe.F)(1e3)).pipe((0,de.u)(),(0,rt.w)(()=>(0,ge.$)(this.taskService.getTaskData(this.roomId),this.taskService.getVideoFileDetails(this.roomId),this.taskService.getDanmakuFileDetails(this.roomId))),(0,lt.K)(o=>{throw this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519",o.message),o}),(0,Zt.X)(10,3e3)).subscribe(([o,e,i])=>{this.loading=!1,this.taskData=o,this.videoFileDetails=e,this.danmakuFileDetails=i,this.changeDetector.markForCheck()},o=>{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})})}desyncData(){this.dataSubscription?.unsubscribe()}}ht.\u0275fac=function(o){return new(o||ht)(t.Y36(st.gz),t.Y36(st.F0),t.Y36(t.sBO),t.Y36(me.zb),t.Y36(Ut.M))},ht.\u0275cmp=t.Xpm({type:ht,selectors:[["app-task-detail"]],decls:2,vars:5,consts:[["pageTitle","\u4efb\u52a1\u8be6\u60c5",3,"loading","pageStyles","contentStyles"],["appSubPageContent",""],[3,"loading","userInfo",4,"ngIf"],[3,"loading","roomInfo",4,"ngIf"],[3,"loading","taskStatus",4,"ngIf"],[3,"loading","videoFileDetails","danmakuFileDetails"],[3,"loading","userInfo"],[3,"loading","roomInfo"],[3,"loading","taskStatus"]],template:function(o,e){1&o&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,zi,6,8,"ng-template",1),t.qZA()),2&o&&t.Q6J("loading",e.loading)("pageStyles",t.DdM(3,Ti))("contentStyles",t.DdM(4,xi))},dependencies:[c.O5,Ko.Y,Go.q,_t,ut,pt,gt,dt,mt],changeDetection:0});var Ce=s(2323),Lt=s(7044),Di=s(1664),Mi=s(8372),ki=s(1884),W=s(4004);const ft=["(max-width: 534.98px)","(min-width: 535px) and (max-width: 1199.98px)","(min-width: 1200px)"];var Jt=s(9651);class Q{constructor(o,e){this.message=o,this.taskService=e}getAllTaskRoomIds(){return this.taskService.getAllTaskData().pipe((0,W.U)(o=>o.map(e=>e.room_info.room_id)))}updateTaskInfo(o){return this.taskService.updateTaskInfo(o).pipe((0,O.b)(()=>{this.message.success(`[${o}] \u6210\u529f\u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e`)},e=>{this.message.error(`[${o}] \u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${e.message}`)}))}updateAllTaskInfos(){return this.taskService.updateAllTaskInfos().pipe((0,O.b)(()=>{this.message.success("\u6210\u529f\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e")},o=>{this.message.error(`\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${o.message}`)}))}addTask(o){return this.taskService.addTask(o).pipe((0,W.U)(e=>({type:"success",message:"\u6210\u529f\u6dfb\u52a0\u4efb\u52a1"})),(0,lt.K)(e=>{let i;return i=409==e.status?{type:"error",message:"\u4efb\u52a1\u5df2\u5b58\u5728\uff0c\u4e0d\u80fd\u91cd\u590d\u6dfb\u52a0\u3002"}:403==e.status?{type:"warning",message:"\u4efb\u52a1\u6570\u91cf\u8d85\u8fc7\u9650\u5236\uff0c\u4e0d\u80fd\u6dfb\u52a0\u4efb\u52a1\u3002"}:404==e.status?{type:"error",message:"\u76f4\u64ad\u95f4\u4e0d\u5b58\u5728"}:{type:"error",message:`\u6dfb\u52a0\u4efb\u52a1\u51fa\u9519: ${e.message}`},(0,b.of)(i)}),(0,W.U)(e=>(e.message=`${o}: ${e.message}`,e)),(0,O.b)(e=>{this.message[e.type](e.message)}))}removeTask(o){return this.taskService.removeTask(o).pipe((0,O.b)(()=>{this.message.success(`[${o}] \u4efb\u52a1\u5df2\u5220\u9664`)},e=>{this.message.error(`[${o}] \u5220\u9664\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}removeAllTasks(){const o=this.message.loading("\u6b63\u5728\u5220\u9664\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.removeAllTasks().pipe((0,O.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5220\u9664\u5168\u90e8\u4efb\u52a1")},e=>{this.message.remove(o),this.message.error(`\u5220\u9664\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}startTask(o){const e=this.message.loading(`[${o}] \u6b63\u5728\u8fd0\u884c\u4efb\u52a1...`,{nzDuration:0}).messageId;return this.taskService.startTask(o).pipe((0,O.b)(()=>{this.message.remove(e),this.message.success(`[${o}] \u6210\u529f\u8fd0\u884c\u4efb\u52a1`)},i=>{this.message.remove(e),this.message.error(`[${o}] \u8fd0\u884c\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}startAllTasks(){const o=this.message.loading("\u6b63\u5728\u8fd0\u884c\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.startAllTasks().pipe((0,O.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u8fd0\u884c\u5168\u90e8\u4efb\u52a1")},e=>{this.message.remove(o),this.message.error(`\u8fd0\u884c\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}stopTask(o,e=!1){const i=this.message.loading(`[${o}] \u6b63\u5728\u505c\u6b62\u4efb\u52a1...`,{nzDuration:0}).messageId;return this.taskService.stopTask(o,e).pipe((0,O.b)(()=>{this.message.remove(i),this.message.success(`[${o}] \u6210\u529f\u505c\u6b62\u4efb\u52a1`)},a=>{this.message.remove(i),this.message.error(`[${o}] \u505c\u6b62\u4efb\u52a1\u51fa\u9519: ${a.message}`)}))}stopAllTasks(o=!1){const e=this.message.loading("\u6b63\u5728\u505c\u6b62\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.stopAllTasks(o).pipe((0,O.b)(()=>{this.message.remove(e),this.message.success("\u6210\u529f\u505c\u6b62\u5168\u90e8\u4efb\u52a1")},i=>{this.message.remove(e),this.message.error(`\u505c\u6b62\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}enableRecorder(o){const e=this.message.loading(`[${o}] \u6b63\u5728\u5f00\u542f\u5f55\u5236...`,{nzDuration:0}).messageId;return this.taskService.enableTaskRecorder(o).pipe((0,O.b)(()=>{this.message.remove(e),this.message.success(`[${o}] \u6210\u529f\u5f00\u542f\u5f55\u5236`)},i=>{this.message.remove(e),this.message.error(`[${o}] \u5f00\u542f\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}enableAllRecorders(){const o=this.message.loading("\u6b63\u5728\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.enableAllRecorders().pipe((0,O.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},e=>{this.message.remove(o),this.message.error(`\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${e.message}`)}))}disableRecorder(o,e=!1){const i=this.message.loading(`[${o}] \u6b63\u5728\u5173\u95ed\u5f55\u5236...`,{nzDuration:0}).messageId;return this.taskService.disableTaskRecorder(o,e).pipe((0,O.b)(()=>{this.message.remove(i),this.message.success(`[${o}] \u6210\u529f\u5173\u95ed\u5f55\u5236`)},a=>{this.message.remove(i),this.message.error(`[${o}] \u5173\u95ed\u5f55\u5236\u51fa\u9519: ${a.message}`)}))}disableAllRecorders(o=!1){const e=this.message.loading("\u6b63\u5728\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.disableAllRecorders(o).pipe((0,O.b)(()=>{this.message.remove(e),this.message.success("\u6210\u529f\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},i=>{this.message.remove(e),this.message.error(`\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}canCutStream(o){return this.taskService.canCutStream(o).pipe((0,O.b)(e=>{e||this.message.warning(`[${o}] \u4e0d\u652f\u6301\u6587\u4ef6\u5207\u5272~`)}))}cutStream(o){return this.taskService.cutStream(o).pipe((0,O.b)(()=>{this.message.success(`[${o}] \u6587\u4ef6\u5207\u5272\u5df2\u89e6\u53d1`)},e=>{403==e.status?this.message.warning(`[${o}] \u65f6\u957f\u592a\u77ed\u4e0d\u80fd\u5207\u5272\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002`):this.message.error(`[${o}] \u5207\u5272\u6587\u4ef6\u51fa\u9519: ${e.message}`)}))}}Q.\u0275fac=function(o){return new(o||Q)(t.LFG(Jt.dD),t.LFG(Ut.M))},Q.\u0275prov=t.Yz7({token:Q,factory:Q.\u0275fac,providedIn:"root"});var Ct=s(3325);function Oi(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8),t._UZ(2,"nz-divider",13),t.GkF(3,8),t._UZ(4,"nz-divider",13),t.GkF(5,8),t._UZ(6,"nz-divider",13),t.GkF(7,8),t.BQk()),2&n){t.oxw();const e=t.MAs(5),i=t.MAs(9),a=t.MAs(11),r=t.MAs(13);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(2),t.Q6J("ngTemplateOutlet",i),t.xp6(2),t.Q6J("ngTemplateOutlet",a),t.xp6(2),t.Q6J("ngTemplateOutlet",r)}}function vi(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8),t._UZ(2,"nz-divider",13),t.GkF(3,8),t._UZ(4,"nz-divider",13),t.GkF(5,8),t._UZ(6,"nz-divider",13),t.GkF(7,8),t.BQk()),2&n){t.oxw();const e=t.MAs(7),i=t.MAs(9),a=t.MAs(11),r=t.MAs(13);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(2),t.Q6J("ngTemplateOutlet",i),t.xp6(2),t.Q6J("ngTemplateOutlet",a),t.xp6(2),t.Q6J("ngTemplateOutlet",r)}}function Ei(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8)(2,8),t.BQk()),2&n){t.oxw();const e=t.MAs(9),i=t.MAs(20);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function Ai(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"label",16),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)}}function Pi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-radio-group",14),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selection=a)})("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selectionChange.emit(a))}),t.YNc(1,Ai,3,2,"ng-container",15),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("ngModel",e.selection),t.xp6(1),t.Q6J("ngForOf",e.selections)}}function Si(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-select",17),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selection=a)})("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.selectionChange.emit(a))}),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzOptions",e.selections)("ngModel",e.selection)}}function yi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"i",23),t.NdJ("click",function(){t.CHM(e),t.oxw(2);const a=t.MAs(2),r=t.oxw();return a.value="",t.KtG(r.onFilterInput(""))}),t.qZA()}}function Fi(n,o){if(1&n&&t.YNc(0,yi,1,0,"i",22),2&n){t.oxw();const e=t.MAs(2);t.Q6J("ngIf",e.value)}}function bi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-input-group",18)(1,"input",19,20),t.NdJ("input",function(){t.CHM(e);const a=t.MAs(2),r=t.oxw();return t.KtG(r.onFilterInput(a.value))}),t.qZA()(),t.YNc(3,Fi,1,1,"ng-template",null,21,t.W1O)}if(2&n){const e=t.MAs(4);t.Q6J("nzSuffix",e)}}function wi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",24),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.toggleReverse())}),t.TgZ(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"i",25),t.qZA()}if(2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.reverse?"\u5012\u5e8f":"\u6b63\u5e8f"),t.xp6(1),t.Q6J("nzType",e.reverse?"swap-left":"swap-right")("nzRotate",90)}}function Ii(n,o){if(1&n&&(t.TgZ(0,"button",26),t._UZ(1,"i",27),t.qZA()),2&n){t.oxw();const e=t.MAs(15);t.Q6J("nzDropdownMenu",e)}}function Ni(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"ul",28)(1,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.startAllTasks())}),t._uU(2,"\u5168\u90e8\u8fd0\u884c"),t.qZA(),t.TgZ(3,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopAllTasks())}),t._uU(4,"\u5168\u90e8\u505c\u6b62"),t.qZA(),t.TgZ(5,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopAllTasks(!0))}),t._uU(6,"\u5168\u90e8\u5f3a\u5236\u505c\u6b62"),t.qZA(),t._UZ(7,"li",30),t.TgZ(8,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllRecorders(!1))}),t._uU(9,"\u5168\u90e8\u5173\u95ed\u5f55\u5236"),t.qZA(),t.TgZ(10,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllRecorders(!0))}),t._uU(11,"\u5168\u90e8\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),t.qZA(),t._UZ(12,"li",30),t.TgZ(13,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.removeAllTasks())}),t._uU(14,"\u5168\u90e8\u5220\u9664"),t.qZA(),t.TgZ(15,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.updateAllTaskInfos())}),t._uU(16,"\u5168\u90e8\u5237\u65b0\u6570\u636e"),t.qZA(),t.TgZ(17,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.copyAllTaskRoomIds())}),t._uU(18,"\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7"),t.qZA()()}}function Bi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.drawerVisible=!0)}),t._UZ(1,"i",27),t.qZA()}}function Zi(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"div",35),t._UZ(2,"nz-divider",36),t.GkF(3,8),t._UZ(4,"nz-divider",37),t.TgZ(5,"div",38),t.GkF(6,8),t.qZA()(),t.BQk()),2&n){t.oxw(2);const e=t.MAs(5),i=t.MAs(11);t.xp6(3),t.Q6J("ngTemplateOutlet",e),t.xp6(3),t.Q6J("ngTemplateOutlet",i)}}function Ui(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"div",39),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!1)}),t.GkF(2,8),t.qZA(),t.BQk()}if(2&n){t.oxw(2);const e=t.MAs(18);t.xp6(2),t.Q6J("ngTemplateOutlet",e)}}const Ri=function(){return{padding:"0"}};function Li(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-drawer",32),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.drawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.drawerVisible=!1)}),t.YNc(1,Zi,7,2,"ng-container",33),t.TgZ(2,"nz-drawer",34),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.menuDrawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!1)}),t.YNc(3,Ui,3,1,"ng-container",33),t.qZA()()}if(2&n){const e=t.oxw(),i=t.MAs(23);t.Q6J("nzTitle",i)("nzClosable",!1)("nzVisible",e.drawerVisible),t.xp6(2),t.Q6J("nzClosable",!1)("nzBodyStyle",t.DdM(6,Ri))("nzVisible",e.menuDrawerVisible)}}function Ji(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",40)(1,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!0)}),t._UZ(2,"i",27),t.qZA()()}}class zt{constructor(o,e,i,a,r,d){this.message=i,this.modal=a,this.clipboard=r,this.taskManager=d,this.selectionChange=new t.vpe,this.reverseChange=new t.vpe,this.filterChange=new t.vpe,this.destroyed=new F.x,this.useDrawer=!1,this.useSelector=!1,this.useRadioGroup=!0,this.drawerVisible=!1,this.menuDrawerVisible=!1,this.filterTerms=new F.x,this.selections=[{label:"\u5168\u90e8",value:m.jf.ALL},{label:"\u5f55\u5236\u4e2d",value:m.jf.RECORDING},{label:"\u5f55\u5236\u5f00",value:m.jf.RECORDER_ENABLED},{label:"\u5f55\u5236\u5173",value:m.jf.RECORDER_DISABLED},{label:"\u8fd0\u884c",value:m.jf.MONITOR_ENABLED},{label:"\u505c\u6b62",value:m.jf.MONITOR_DISABLED},{label:"\u76f4\u64ad",value:m.jf.LIVING},{label:"\u8f6e\u64ad",value:m.jf.ROUNDING},{label:"\u95f2\u7f6e",value:m.jf.PREPARING}],e.observe(ft).pipe((0,A.R)(this.destroyed)).subscribe(C=>{this.useDrawer=C.breakpoints[ft[0]],this.useSelector=C.breakpoints[ft[1]],this.useRadioGroup=C.breakpoints[ft[2]],o.markForCheck()})}ngOnInit(){this.filterTerms.pipe((0,Mi.b)(300),(0,ki.x)()).subscribe(o=>{this.filterChange.emit(o)})}ngOnDestroy(){this.destroyed.next(),this.destroyed.complete()}onFilterInput(o){this.filterTerms.next(o)}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((o,e)=>{this.taskManager.removeAllTasks().subscribe(o,e)})})}startAllTasks(){this.taskManager.startAllTasks().subscribe()}stopAllTasks(o=!1){o?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((e,i)=>{this.taskManager.stopAllTasks(o).subscribe(e,i)})}):this.taskManager.stopAllTasks().subscribe()}disableAllRecorders(o=!1){o?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((e,i)=>{this.taskManager.disableAllRecorders(o).subscribe(e,i)})}):this.taskManager.disableAllRecorders().subscribe()}updateAllTaskInfos(){this.taskManager.updateAllTaskInfos().subscribe()}copyAllTaskRoomIds(){this.taskManager.getAllTaskRoomIds().pipe((0,W.U)(o=>o.join(" ")),(0,O.b)(o=>{if(!this.clipboard.copy(o))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")},o=>{this.message.error("\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7\u5230\u526a\u5207\u677f\u51fa\u9519",o)})}}zt.\u0275fac=function(o){return new(o||zt)(t.Y36(t.sBO),t.Y36(h.Yg),t.Y36(Jt.dD),t.Y36(K.Sf),t.Y36(_),t.Y36(Q))},zt.\u0275cmp=t.Xpm({type:zt,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(o,e){if(1&o&&(t.TgZ(0,"div",0),t.YNc(1,Oi,8,4,"ng-container",1),t.YNc(2,vi,8,4,"ng-container",1),t.YNc(3,Ei,3,2,"ng-container",1),t.qZA(),t.YNc(4,Pi,2,2,"ng-template",null,2,t.W1O),t.YNc(6,Si,1,2,"ng-template",null,3,t.W1O),t.YNc(8,bi,5,1,"ng-template",null,4,t.W1O),t.YNc(10,wi,4,3,"ng-template",null,5,t.W1O),t.YNc(12,Ii,2,1,"ng-template",null,6,t.W1O),t.TgZ(14,"nz-dropdown-menu",null,7),t.GkF(16,8),t.YNc(17,Ni,19,0,"ng-template",null,9,t.W1O),t.qZA(),t.YNc(19,Bi,2,0,"ng-template",null,10,t.W1O),t.YNc(21,Li,4,7,"nz-drawer",11),t.YNc(22,Ji,3,0,"ng-template",null,12,t.W1O)),2&o){const i=t.MAs(18);t.ekj("use-drawer",e.useDrawer),t.xp6(1),t.Q6J("ngIf",e.useRadioGroup),t.xp6(1),t.Q6J("ngIf",e.useSelector),t.xp6(1),t.Q6J("ngIf",e.useDrawer),t.xp6(13),t.Q6J("ngTemplateOutlet",i),t.xp6(5),t.Q6J("ngIf",e.useDrawer)}},dependencies:[c.sg,c.O5,c.tP,p.JJ,p.On,E.Ls,Ct.wO,Ct.r9,Ct.YV,j.cm,j.RR,j.wA,At.ix,Lt.w,V.Zp,V.gB,V.ke,Pt.Of,Pt.Bq,Pt.Dg,jt.g,at.Vz,at.SQ,wt.Vq],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;gap:.2em;width:100%;padding:.2em;background:#f9f9f9;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}.controls-wrapper[_ngcontent-%COMP%]   .selector[_ngcontent-%COMP%]{min-width:6em}.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);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});var Qi=s(5136);class et{constructor(o){this.storage=o}getSettings(o){const e=this.storage.getData(this.getStorageKey(o));return e?JSON.parse(e)??{}:{}}updateSettings(o,e){e=Object.assign(this.getSettings(o),e);const i=JSON.stringify(e);this.storage.setData(this.getStorageKey(o),i)}getStorageKey(o){return`app-tasks-${o}`}}et.\u0275fac=function(o){return new(o||et)(t.LFG(Ce.V))},et.\u0275prov=t.Yz7({token:et,factory:et.\u0275fac,providedIn:"root"});var N=s(3523),B=s(4960),Ki=s(6457),Gi=s(4501);function Wi(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),t.BQk())}function Yi(n,o){1&n&&(t.ynx(0),t._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),t.BQk())}function qi(n,o){if(1&n&&(t.YNc(0,Wi,2,0,"ng-container",57),t.YNc(1,Yi,2,0,"ng-container",57)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function $i(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u5927\u5c0f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1a\u6570\u5b57 + \u5355\u4f4d(GB, MB, KB, B) "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"0 B"),t.qZA(),t._UZ(8,"br"),t.qZA())}function ji(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",58)(1,"nz-form-label",14),t._uU(2,"\u5927\u5c0f\u9650\u5236"),t.qZA(),t.YNc(3,$i,9,0,"ng-template",null,59,t.W1O),t.TgZ(5,"nz-form-control",60)(6,"app-input-filesize",61),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.output.filesizeLimit=a)}),t.qZA()(),t.TgZ(7,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.output.filesizeLimit=a?r.globalSettings.output.filesizeLimit:null)}),t._uU(8,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(4),i=t.oxw(2);t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(5),t.Q6J("ngModel",i.model.output.filesizeLimit)("disabled",null===i.options.output.filesizeLimit),t.xp6(1),t.Q6J("nzChecked",null!==i.options.output.filesizeLimit)}}function Vi(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u65f6\u957f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1aHH:MM:SS "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"00:00:00"),t.qZA(),t._UZ(8,"br"),t.qZA())}function Hi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",62)(1,"nz-form-label",14),t._uU(2,"\u65f6\u957f\u9650\u5236"),t.qZA(),t.YNc(3,Vi,9,0,"ng-template",null,63,t.W1O),t.TgZ(5,"nz-form-control",60)(6,"app-input-duration",64),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.output.durationLimit=a)}),t.qZA()(),t.TgZ(7,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.output.durationLimit=a?r.globalSettings.output.durationLimit:null)}),t._uU(8,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(4),i=t.oxw(2);t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(5),t.Q6J("ngModel",i.model.output.durationLimit)("disabled",null===i.options.output.durationLimit),t.xp6(1),t.Q6J("nzChecked",null!==i.options.output.durationLimit)}}function Xi(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u9009\u62e9\u8981\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u683c\u5f0f "),t._UZ(2,"br"),t.TgZ(3,"b"),t._uU(4,"FLV:"),t.qZA(),t._uU(5," flv \u6d41\u5728\u7f51\u7edc\u4e0d\u7a33\u5b9a\u7684\u60c5\u51b5\u4e0b\u5bb9\u6613\u4e2d\u65ad\u4e22\u5931\u6570\u636e\u6216\u5f55\u5236\u5230\u4e8c\u538b\u753b\u8d28\u3002\u6ca1\u6709 flv \u6d41\u7684\u76f4\u64ad\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 fmp4 \u6d41\u3002 "),t._UZ(6,"br"),t.TgZ(7,"b"),t._uU(8,"HLS (fmp4):"),t.qZA(),t._uU(9," hls \u6d41\u57fa\u672c\u4e0d\u53d7\u7f51\u7edc\u6ce2\u52a8\u5f71\u54cd\uff0c\u4f46\u4e0d\u662f\u6240\u6709\u76f4\u64ad\u95f4\u90fd\u652f\u6301\u3002\u6709 flv \u6d41\u7684\u76f4\u64ad\uff0c\u5728\u8bbe\u5b9a\u7684\u7b49\u5f85\u65f6\u95f4\u5185\u6ca1\u6709 fmp4 \u6d41\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 flv \u6d41\u3002 "),t._UZ(10,"br"),t.TgZ(11,"b"),t._uU(12,"P.S."),t.qZA(),t._UZ(13,"br"),t._uU(14," WEB \u7aef\u76f4\u64ad\u64ad\u653e\u5668\u662f Hls7Player \u7684\u76f4\u64ad\u95f4\u652f\u6301\u5f55\u5236 fmp4 \u6d41, fMp4Player \u5219\u4e0d\u652f\u6301\u3002 "),t.qZA())}function ta(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u5982\u679c\u8d85\u8fc7\u6240\u8bbe\u7f6e\u7684\u7b49\u5f85\u65f6\u95f4 fmp4 \u6d41\u8fd8\u6ca1\u6709\u5c31\u5207\u6362\u4e3a\u5f55\u5236 flv \u6d41 "),t._UZ(2,"br"),t._uU(3," fmp4 \u6d41\u5728\u521a\u63a8\u6d41\u662f\u6ca1\u6709\u7684\uff0c\u8981\u8fc7\u4e00\u4f1a\u624d\u6709\u3002 "),t._UZ(4,"br"),t._uU(5," fmp4 \u6d41\u51fa\u73b0\u7684\u65f6\u95f4\u548c\u76f4\u64ad\u5ef6\u8fdf\u6709\u5173\uff0c\u4e00\u822c\u90fd\u5728 10 \u79d2\u5185\uff0c\u4f46\u4e5f\u6709\u5ef6\u8fdf\u6bd4\u8f83\u5927\u8d85\u8fc7 1 \u5206\u949f\u7684\u3002 "),t._UZ(6,"br"),t._uU(7," \u63a8\u8350\u5168\u5c40\u8bbe\u7f6e\u4e3a 10 \u79d2\uff0c\u4e2a\u522b\u5ef6\u8fdf\u6bd4\u8f83\u5927\u7684\u76f4\u64ad\u95f4\u5355\u72ec\u8bbe\u7f6e\u3002 "),t.qZA())}function ea(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",13)(1,"nz-form-label",14),t._uU(2,"fmp4 \u6d41\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.YNc(3,ta,8,0,"ng-template",null,65,t.W1O),t.TgZ(5,"nz-form-control",16)(6,"nz-select",66,67),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.recorder.fmp4StreamTimeout=a)}),t.qZA()(),t.TgZ(8,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.recorder.fmp4StreamTimeout=a?r.globalSettings.recorder.fmp4StreamTimeout:null)}),t._uU(9,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(4),i=t.oxw(2);t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(5),t.Q6J("ngModel",i.model.recorder.fmp4StreamTimeout)("disabled",null===i.options.recorder.fmp4StreamTimeout)("nzOptions",i.fmp4StreamTimeoutOptions),t.xp6(2),t.Q6J("nzChecked",null!==i.options.recorder.fmp4StreamTimeout)}}function na(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u6807\u51c6\u6a21\u5f0f: \u5bf9\u4e0b\u8f7d\u7684\u6d41\u6570\u636e\u8fdb\u884c\u89e3\u6790\u5904\u7406\uff0c\u652f\u6301\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u7b49\u529f\u80fd\u3002 "),t._UZ(2,"br"),t._uU(3," \u539f\u59cb\u6a21\u5f0f: \u76f4\u63a5\u4e0b\u8f7d\u6d41\u6570\u636e\uff0c\u6ca1\u6709\u8fdb\u884c\u89e3\u6790\u5904\u7406\uff0c\u4e0d\u652f\u6301\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u7b49\u529f\u80fd\u3002 "),t._UZ(4,"br"),t.qZA())}function oa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",13)(1,"nz-form-label",14),t._uU(2,"\u5f55\u5236\u6a21\u5f0f"),t.qZA(),t.YNc(3,na,5,0,"ng-template",null,68,t.W1O),t.TgZ(5,"nz-form-control",16)(6,"nz-select",69),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.recorder.recordingMode=a)}),t.qZA()(),t.TgZ(7,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.recorder.recordingMode=a?r.globalSettings.recorder.recordingMode:null)}),t._uU(8,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(4),i=t.oxw(2);t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(5),t.Q6J("ngModel",i.model.recorder.recordingMode)("disabled",null===i.options.recorder.recordingMode)("nzOptions",i.recordingModeOptions),t.xp6(1),t.Q6J("nzChecked",null!==i.options.recorder.recordingMode)}}function ia(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u9ed8\u8ba4: \u6bcf\u4e2a\u5206\u5272\u7684\u5f55\u64ad\u6587\u4ef6\u5bf9\u5e94\u4fdd\u5b58\u4e00\u4e2a\u5c01\u9762\u6587\u4ef6\uff0c\u4e0d\u7ba1\u5c01\u9762\u662f\u5426\u76f8\u540c\u3002"),t._UZ(2,"br"),t._uU(3," \u53bb\u91cd: \u76f8\u540c\u7684\u5c01\u9762\u53ea\u4fdd\u5b58\u4e00\u6b21"),t._UZ(4,"br"),t._uU(5," P.S. "),t._UZ(6,"br"),t._uU(7," \u5224\u65ad\u662f\u5426\u76f8\u540c\u662f\u4f9d\u636e\u5c01\u9762\u6570\u636e\u7684 sha1\uff0c\u53ea\u5728\u5355\u6b21\u5f55\u5236\u5185\u6709\u6548\u3002 "),t.qZA())}function aa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",13)(1,"nz-form-label",70),t._uU(2,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),t.qZA(),t.TgZ(3,"nz-form-control",71)(4,"nz-select",72,73),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.recorder.readTimeout=a)}),t.qZA()(),t.TgZ(6,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.recorder.readTimeout=a?r.globalSettings.recorder.readTimeout:null)}),t._uU(7,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(5),i=t.oxw(2);t.xp6(3),t.Q6J("nzValidateStatus",e.value>3?"warning":e),t.xp6(1),t.Q6J("ngModel",i.model.recorder.readTimeout)("disabled",null===i.options.recorder.readTimeout)("nzOptions",i.readTimeoutOptions),t.xp6(2),t.Q6J("nzChecked",null!==i.options.recorder.readTimeout)}}function ra(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",13)(1,"nz-form-label",74),t._uU(2,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),t.qZA(),t.TgZ(3,"nz-form-control",16)(4,"nz-select",75),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.recorder.bufferSize=a)}),t.qZA()(),t.TgZ(5,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.recorder.bufferSize=a?r.globalSettings.recorder.bufferSize:null)}),t._uU(6,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.oxw(2);t.xp6(4),t.Q6J("ngModel",e.model.recorder.bufferSize)("disabled",null===e.options.recorder.bufferSize)("nzOptions",e.bufferOptions)("nzOptionOverflowSize",6),t.xp6(1),t.Q6J("nzChecked",null!==e.options.recorder.bufferSize)}}function sa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",13)(1,"nz-form-label",76),t._uU(2,"flv \u6dfb\u52a0\u5143\u6570\u636e"),t.qZA(),t.TgZ(3,"nz-form-control",22)(4,"nz-switch",77),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.model.postprocessing.injectExtraMetadata=a)}),t.qZA()(),t.TgZ(5,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.options.postprocessing.injectExtraMetadata=a?r.globalSettings.postprocessing.injectExtraMetadata:null)}),t._uU(6,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.oxw(2);t.xp6(4),t.Q6J("ngModel",e.model.postprocessing.injectExtraMetadata)("disabled",null===e.options.postprocessing.injectExtraMetadata||!!e.options.postprocessing.remuxToMp4),t.xp6(1),t.Q6J("nzChecked",null!==e.options.postprocessing.injectExtraMetadata)}}function la(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8: \u6ca1\u51fa\u9519\u5c31\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(2,"br"),t._uU(3," \u8c28\u614e: \u6ca1\u51fa\u9519\u4e14\u6ca1\u8b66\u544a\u624d\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(4,"br"),t._uU(5," \u4ece\u4e0d: \u603b\u662f\u4fdd\u7559\u6e90\u6587\u4ef6"),t._UZ(6,"br"),t.qZA())}function ca(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 User Agent "),t.BQk())}function _a(n,o){1&n&&t.YNc(0,ca,2,0,"ng-container",57),2&n&&t.Q6J("ngIf",o.$implicit.hasError("required"))}function ua(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"form",2)(2,"div",3)(3,"h2"),t._uU(4,"\u6587\u4ef6"),t.qZA(),t.TgZ(5,"nz-form-item",4)(6,"nz-form-label",5),t._uU(7,"\u8def\u5f84\u6a21\u677f"),t.qZA(),t.TgZ(8,"nz-form-control",6)(9,"input",7),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.output.pathTemplate=a)}),t.qZA(),t.YNc(10,qi,2,2,"ng-template",null,8,t.W1O),t.qZA(),t.TgZ(12,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.output.pathTemplate=a?r.globalSettings.output.pathTemplate:null)}),t._uU(13,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(14,ji,9,4,"nz-form-item",10),t.YNc(15,Hi,9,4,"nz-form-item",11),t.qZA(),t.TgZ(16,"div",12)(17,"h2"),t._uU(18,"\u5f55\u5236"),t.qZA(),t.TgZ(19,"nz-form-item",13)(20,"nz-form-label",14),t._uU(21,"\u76f4\u64ad\u6d41\u683c\u5f0f"),t.qZA(),t.YNc(22,Xi,15,0,"ng-template",null,15,t.W1O),t.TgZ(24,"nz-form-control",16)(25,"nz-select",17),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.recorder.streamFormat=a)}),t.qZA()(),t.TgZ(26,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.recorder.streamFormat=a?r.globalSettings.recorder.streamFormat:null)}),t._uU(27,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(28,ea,10,5,"nz-form-item",18),t.YNc(29,oa,9,5,"nz-form-item",18),t.TgZ(30,"nz-form-item",13)(31,"nz-form-label",19),t._uU(32,"\u753b\u8d28"),t.qZA(),t.TgZ(33,"nz-form-control",16)(34,"nz-select",20),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.recorder.qualityNumber=a)}),t.qZA()(),t.TgZ(35,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.recorder.qualityNumber=a?r.globalSettings.recorder.qualityNumber:null)}),t._uU(36,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(37,"nz-form-item",13)(38,"nz-form-label",21),t._uU(39,"\u4fdd\u5b58\u5c01\u9762"),t.qZA(),t.TgZ(40,"nz-form-control",22)(41,"nz-switch",23),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.recorder.saveCover=a)}),t.qZA()(),t.TgZ(42,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.recorder.saveCover=a?r.globalSettings.recorder.saveCover:null)}),t._uU(43,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(44,"nz-form-item",13)(45,"nz-form-label",14),t._uU(46,"\u5c01\u9762\u4fdd\u5b58\u7b56\u7565"),t.qZA(),t.YNc(47,ia,8,0,"ng-template",null,24,t.W1O),t.TgZ(49,"nz-form-control",16)(50,"nz-select",25),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.recorder.coverSaveStrategy=a)}),t.qZA()(),t.TgZ(51,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.recorder.coverSaveStrategy=a?r.globalSettings.recorder.coverSaveStrategy:null)}),t._uU(52,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(53,aa,8,5,"nz-form-item",18),t.TgZ(54,"nz-form-item",13)(55,"nz-form-label",26),t._uU(56,"\u65ad\u7f51\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.TgZ(57,"nz-form-control",16)(58,"nz-select",27),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.recorder.disconnectionTimeout=a)}),t.qZA()(),t.TgZ(59,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.recorder.bufferSize=a?r.globalSettings.recorder.bufferSize:null)}),t._uU(60,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(61,ra,7,5,"nz-form-item",18),t.qZA(),t.TgZ(62,"div",28)(63,"h2"),t._uU(64,"\u5f39\u5e55"),t.qZA(),t.TgZ(65,"nz-form-item",13)(66,"nz-form-label",29),t._uU(67,"\u8bb0\u5f55\u793c\u7269"),t.qZA(),t.TgZ(68,"nz-form-control",22)(69,"nz-switch",30),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.recordGiftSend=a)}),t.qZA()(),t.TgZ(70,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.recordGiftSend=a?r.globalSettings.danmaku.recordGiftSend:null)}),t._uU(71,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(72,"nz-form-item",13)(73,"nz-form-label",31),t._uU(74,"\u8bb0\u5f55\u514d\u8d39\u793c\u7269"),t.qZA(),t.TgZ(75,"nz-form-control",22)(76,"nz-switch",32),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.recordFreeGifts=a)}),t.qZA()(),t.TgZ(77,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.recordFreeGifts=a?r.globalSettings.danmaku.recordFreeGifts:null)}),t._uU(78,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(79,"nz-form-item",13)(80,"nz-form-label",33),t._uU(81,"\u8bb0\u5f55\u4e0a\u8230"),t.qZA(),t.TgZ(82,"nz-form-control",22)(83,"nz-switch",34),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.recordGuardBuy=a)}),t.qZA()(),t.TgZ(84,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.recordGuardBuy=a?r.globalSettings.danmaku.recordGuardBuy:null)}),t._uU(85,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(86,"nz-form-item",13)(87,"nz-form-label",35),t._uU(88,"\u8bb0\u5f55 Super Chat"),t.qZA(),t.TgZ(89,"nz-form-control",22)(90,"nz-switch",36),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.recordSuperChat=a)}),t.qZA()(),t.TgZ(91,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.recordSuperChat=a?r.globalSettings.danmaku.recordSuperChat:null)}),t._uU(92,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(93,"nz-form-item",13)(94,"nz-form-label",37),t._uU(95,"\u5f39\u5e55\u524d\u52a0\u7528\u6237\u540d"),t.qZA(),t.TgZ(96,"nz-form-control",22)(97,"nz-switch",38),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.danmuUname=a)}),t.qZA()(),t.TgZ(98,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.danmuUname=a?r.globalSettings.danmaku.danmuUname:null)}),t._uU(99,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(100,"nz-form-item",13)(101,"nz-form-label",39),t._uU(102,"\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55"),t.qZA(),t.TgZ(103,"nz-form-control",22)(104,"nz-switch",40),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.danmaku.saveRawDanmaku=a)}),t.qZA()(),t.TgZ(105,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.danmaku.saveRawDanmaku=a?r.globalSettings.danmaku.saveRawDanmaku:null)}),t._uU(106,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()(),t.TgZ(107,"div",41)(108,"h2"),t._uU(109,"\u6587\u4ef6\u5904\u7406"),t.qZA(),t.YNc(110,sa,7,3,"nz-form-item",18),t.TgZ(111,"nz-form-item",13)(112,"nz-form-label",42),t._uU(113,"\u8f6c\u5c01\u88c5\u4e3a mp4"),t.qZA(),t.TgZ(114,"nz-form-control",22)(115,"nz-switch",43),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.postprocessing.remuxToMp4=a)}),t.qZA()(),t.TgZ(116,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.postprocessing.remuxToMp4=a?r.globalSettings.postprocessing.remuxToMp4:null)}),t._uU(117,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(118,"nz-form-item",13)(119,"nz-form-label",14),t._uU(120,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),t.qZA(),t.YNc(121,la,7,0,"ng-template",null,44,t.W1O),t.TgZ(123,"nz-form-control",16)(124,"nz-select",45),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.postprocessing.deleteSource=a)}),t.qZA()(),t.TgZ(125,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.postprocessing.deleteSource=a?r.globalSettings.postprocessing.deleteSource:null)}),t._uU(126,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()(),t.TgZ(127,"div",46)(128,"h2"),t._uU(129,"\u7f51\u7edc\u8bf7\u6c42"),t.qZA(),t.TgZ(130,"nz-form-item",47)(131,"nz-form-label",48),t._uU(132,"User Agent"),t.qZA(),t.TgZ(133,"nz-form-control",49)(134,"textarea",50,51),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.header.userAgent=a)}),t.qZA()(),t.YNc(136,_a,1,1,"ng-template",null,52,t.W1O),t.TgZ(138,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.header.userAgent=a?r.globalSettings.header.userAgent:null)}),t._uU(139,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(140,"nz-form-item",47)(141,"nz-form-label",53),t._uU(142,"Cookie"),t.qZA(),t.TgZ(143,"nz-form-control",54)(144,"textarea",55,56),t.NdJ("ngModelChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.model.header.cookie=a)}),t.qZA()(),t.TgZ(146,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.options.header.cookie=a?r.globalSettings.header.cookie:null)}),t._uU(147,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()()(),t.BQk()}if(2&n){const e=t.MAs(11),i=t.MAs(23),a=t.MAs(48),r=t.MAs(122),d=t.MAs(135),C=t.MAs(137),z=t.MAs(145),l=t.oxw();t.xp6(8),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("pattern",l.pathTemplatePattern)("ngModel",l.model.output.pathTemplate)("disabled",null===l.options.output.pathTemplate),t.xp6(3),t.Q6J("nzChecked",null!==l.options.output.pathTemplate),t.xp6(2),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)||"fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)&&"standard"===(l.options.recorder.recordingMode||l.model.recorder.recordingMode)),t.xp6(1),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)||"fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)&&"standard"===(l.options.recorder.recordingMode||l.model.recorder.recordingMode)),t.xp6(5),t.Q6J("nzTooltipTitle",i),t.xp6(5),t.Q6J("ngModel",l.model.recorder.streamFormat)("disabled",null===l.options.recorder.streamFormat)("nzOptions",l.streamFormatOptions),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.streamFormat),t.xp6(2),t.Q6J("ngIf","fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(1),t.Q6J("ngIf","fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(5),t.Q6J("ngModel",l.model.recorder.qualityNumber)("disabled",null===l.options.recorder.qualityNumber)("nzOptions",l.qualityOptions),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.qualityNumber),t.xp6(6),t.Q6J("ngModel",l.model.recorder.saveCover)("disabled",null===l.options.recorder.saveCover),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.saveCover),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(5),t.Q6J("ngModel",l.model.recorder.coverSaveStrategy)("disabled",null===l.options.recorder.coverSaveStrategy||!l.options.recorder.saveCover)("nzOptions",l.coverSaveStrategies),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.coverSaveStrategy),t.xp6(2),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(5),t.Q6J("ngModel",l.model.recorder.disconnectionTimeout)("disabled",null===l.options.recorder.disconnectionTimeout)("nzOptions",l.disconnectionTimeoutOptions)("nzOptionOverflowSize",6),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.bufferSize),t.xp6(2),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)||"fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)&&"standard"===(l.options.recorder.recordingMode||l.model.recorder.recordingMode)),t.xp6(8),t.Q6J("ngModel",l.model.danmaku.recordGiftSend)("disabled",null===l.options.danmaku.recordGiftSend),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordGiftSend),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordFreeGifts)("disabled",null===l.options.danmaku.recordFreeGifts),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordFreeGifts),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordGuardBuy)("disabled",null===l.options.danmaku.recordGuardBuy),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordGuardBuy),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordSuperChat)("disabled",null===l.options.danmaku.recordSuperChat),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordSuperChat),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.danmuUname)("disabled",null===l.options.danmaku.danmuUname),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.danmuUname),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.saveRawDanmaku)("disabled",null===l.options.danmaku.saveRawDanmaku),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.saveRawDanmaku),t.xp6(5),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)||"fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)&&"standard"===(l.options.recorder.recordingMode||l.model.recorder.recordingMode)),t.xp6(5),t.Q6J("ngModel",l.model.postprocessing.remuxToMp4)("disabled",null===l.options.postprocessing.remuxToMp4),t.xp6(1),t.Q6J("nzChecked",null!==l.options.postprocessing.remuxToMp4),t.xp6(3),t.Q6J("nzTooltipTitle",r),t.xp6(5),t.Q6J("ngModel",l.model.postprocessing.deleteSource)("disabled",null===l.options.postprocessing.deleteSource||!l.options.postprocessing.remuxToMp4)("nzOptions",l.deleteStrategies),t.xp6(1),t.Q6J("nzChecked",null!==l.options.postprocessing.deleteSource),t.xp6(8),t.Q6J("nzWarningTip",l.warningTip)("nzValidateStatus",d.valid&&l.options.header.userAgent!==l.taskOptions.header.userAgent&&l.options.header.userAgent!==l.globalSettings.header.userAgent?"warning":d)("nzErrorTip",C),t.xp6(1),t.Q6J("rows",3)("ngModel",l.model.header.userAgent)("disabled",null===l.options.header.userAgent),t.xp6(4),t.Q6J("nzChecked",null!==l.options.header.userAgent),t.xp6(5),t.Q6J("nzWarningTip",l.warningTip)("nzValidateStatus",z.valid&&l.options.header.cookie!==l.taskOptions.header.cookie&&l.options.header.cookie!==l.globalSettings.header.cookie?"warning":z),t.xp6(1),t.Q6J("rows",3)("ngModel",l.model.header.cookie)("disabled",null===l.options.header.cookie),t.xp6(2),t.Q6J("nzChecked",null!==l.options.header.cookie)}}class Tt{constructor(o){this.changeDetector=o,this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.afterOpen=new t.vpe,this.afterClose=new t.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.pathTemplatePattern=B._m,this.streamFormatOptions=(0,N.Z)(B.tp),this.recordingModeOptions=(0,N.Z)(B.kV),this.fmp4StreamTimeoutOptions=(0,N.Z)(B.D4),this.qualityOptions=(0,N.Z)(B.O6),this.readTimeoutOptions=(0,N.Z)(B.D4),this.disconnectionTimeoutOptions=(0,N.Z)(B.$w),this.bufferOptions=(0,N.Z)(B.Rc),this.deleteStrategies=(0,N.Z)(B.rc),this.coverSaveStrategies=(0,N.Z)(B.J_)}ngOnChanges(){this.options=(0,N.Z)(this.taskOptions),this.setupModel(),this.changeDetector.markForCheck()}close(){this.setVisible(!1)}setVisible(o){this.visible=o,this.visibleChange.emit(o),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit((0,X.e5)(this.options,this.taskOptions)),this.close()}setupModel(){const o={};for(const e of Object.keys(this.options)){const r=this.globalSettings[e];Reflect.set(o,e,new Proxy(this.options[e],{get:(d,C)=>Reflect.get(d,C)??Reflect.get(r,C),set:(d,C,z)=>Reflect.set(d,C,z)}))}this.model=o}}Tt.\u0275fac=function(o){return new(o||Tt)(t.Y36(t.sBO))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["app-task-settings-dialog"]],viewQuery:function(o,e){if(1&o&&t.Gf(p.F,5),2&o){let i;t.iGM(i=t.CRH())&&(e.ngForm=i.first)}},inputs:{taskOptions:"taskOptions",globalSettings:"globalSettings",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm",afterOpen:"afterOpen",afterClose:"afterClose"},features:[t.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"],["pathTemplateErrorTip",""],["nz-checkbox","",3,"nzChecked","nzCheckedChange"],["class","setting-item filesize-limit",4,"ngIf"],["class","setting-item duration-limit",4,"ngIf"],["ngModelGroup","recorder",1,"form-group","recorder"],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],["streamFormatTip",""],[1,"setting-control","select"],["name","streamFormat",3,"ngModel","disabled","nzOptions","ngModelChange"],["class","setting-item",4,"ngIf"],["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","","nzTooltipTitle","\u5f55\u64ad\u6587\u4ef6\u5b8c\u6210\u65f6\u4fdd\u5b58\u5f53\u524d\u76f4\u64ad\u95f4\u7684\u5c01\u9762",1,"setting-label"],[1,"setting-control","switch"],["name","saveCover",3,"ngModel","disabled","ngModelChange"],["coverSaveStrategyTip",""],["name","coverSaveStrategy",3,"ngModel","disabled","nzOptions","ngModelChange"],["nzNoColon","","nzTooltipTitle","\u65ad\u7f51\u8d85\u8fc7\u7b49\u5f85\u65f6\u95f4\u5c31\u7ed3\u675f\u5f55\u5236\uff0c\u5982\u679c\u7f51\u7edc\u6062\u590d\u540e\u4ecd\u672a\u4e0b\u64ad\u4f1a\u81ea\u52a8\u91cd\u65b0\u5f00\u59cb\u5f55\u5236\u3002",1,"setting-label"],["name","disconnectionTimeout",3,"ngModel","disabled","nzOptions","nzOptionOverflowSize","ngModelChange"],["ngModelGroup","danmaku",1,"form-group","danmaku"],["nzFor","recordGiftSend","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordGiftSend","name","recordGiftSend",3,"ngModel","disabled","ngModelChange"],["nzFor","recordFreeGifts","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u514d\u8d39\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordFreeGifts","name","recordFreeGifts",3,"ngModel","disabled","ngModelChange"],["nzFor","recordGuardBuy","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u4e0a\u8230\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordGuardBuy","name","recordGuardBuy",3,"ngModel","disabled","ngModelChange"],["nzFor","recordSuperChat","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55 Super Chat \u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordSuperChat","name","recordSuperChat",3,"ngModel","disabled","ngModelChange"],["nzFor","danmuUname","nzNoColon","","nzTooltipTitle","\u53d1\u9001\u8005: \u5f39\u5e55\u5185\u5bb9",1,"setting-label"],["id","danmuUname","name","danmuUname",3,"ngModel","disabled","ngModelChange"],["nzFor","saveRawDanmaku","nzNoColon","","nzTooltipTitle","\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55\u5230 JSON lines \u6587\u4ef6\uff0c\u4e3b\u8981\u7528\u4e8e\u5206\u6790\u8c03\u8bd5\u3002",1,"setting-label"],["id","saveRawDanmaku","name","saveRawDanmaku",3,"ngModel","disabled","ngModelChange"],["ngModelGroup","postprocessing",1,"form-group","postprocessing"],["nzNoColon","","nzTooltipTitle","\u8c03\u7528 ffmpeg \u8fdb\u884c\u8f6c\u6362\uff0c\u9700\u8981\u5b89\u88c5 ffmpeg \u3002",1,"setting-label"],["name","remuxToMp4",3,"ngModel","disabled","ngModelChange"],["deleteSourceTip",""],["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"],["userAgentErrorTip",""],["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"],[1,"setting-item","filesize-limit"],["filesizeLimitTip",""],[1,"setting-control","input"],["name","filesizeLimit",3,"ngModel","disabled","ngModelChange"],[1,"setting-item","duration-limit"],["durationLimitTip",""],["name","durationLimit",3,"ngModel","disabled","ngModelChange"],["fmp4StreamTimeoutTip",""],["name","fmp4StreamTimeout",3,"ngModel","disabled","nzOptions","ngModelChange"],["fmp4StreamTimeout","ngModel"],["recordingModeTip",""],["name","recordingMode",3,"ngModel","disabled","nzOptions","ngModelChange"],["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\u8f83\u591a\u3002",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"],["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"],["name","bufferSize",3,"ngModel","disabled","nzOptions","nzOptionOverflowSize","ngModelChange"],["nzNoColon","","nzTooltipTitle","\u6dfb\u52a0\u5173\u952e\u5e27\u7b49\u5143\u6570\u636e\u4f7f\u5b9a\u4f4d\u64ad\u653e\u548c\u62d6\u8fdb\u5ea6\u6761\u4e0d\u4f1a\u5361\u987f",1,"setting-label"],["name","injectExtraMetadata",3,"ngModel","disabled","ngModelChange"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()})("nzAfterOpen",function(){return e.afterOpen.emit()})("nzAfterClose",function(){return e.afterClose.emit()}),t.YNc(1,ua,148,73,"ng-container",1),t.qZA()),2&o&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",null==e.ngForm||null==e.ngForm.form?null:e.ngForm.form.invalid)},dependencies:[c.O5,p._Y,p.Fj,p.JJ,p.JL,p.Q7,p.c5,p.On,p.Mq,p.F,k.t3,k.SK,bt.i,K.du,K.Hf,R.Lr,R.Nx,R.iK,R.Fd,V.Zp,$t.Ie,wt.Vq,Ki.i,Gi.q],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}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;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}}.filesize-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%], .duration-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}@media screen and (max-width: 319px){.filesize-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%], .duration-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%]{margin-left:0!important}}"],changeDetection:0});const ze=function(){return{spacer:""}};function pa(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",3)(2,"span",4),t._UZ(3,"i"),t.qZA(),t.TgZ(4,"span",5),t._uU(5),t.ALo(6,"duration"),t.qZA(),t.TgZ(7,"span",6),t._uU(8),t.ALo(9,"datarate"),t.qZA(),t.TgZ(10,"span",7),t._uU(11),t.ALo(12,"filesize"),t.qZA(),t.TgZ(13,"span",8),t.ALo(14,"number"),t._uU(15),t.ALo(16,"number"),t.qZA(),t.TgZ(17,"span",9),t._uU(18),t.ALo(19,"quality"),t.qZA()()()),2&n){const e=t.oxw();t.xp6(5),t.hij(" ",t.lcZ(6,6,e.status.rec_elapsed)," "),t.xp6(3),t.hij(" ",t.xi3(9,8,e.status.rec_rate,t.DdM(22,ze))," "),t.xp6(3),t.hij(" ",t.xi3(12,11,e.status.rec_total,t.DdM(23,ze))," "),t.xp6(2),t.MGl("nzTooltipTitle","\u5f39\u5e55\u603b\u8ba1\uff1a",t.xi3(14,14,e.status.danmu_total,"1.0-0"),""),t.xp6(2),t.hij(" ",t.xi3(16,17,e.status.danmu_total,"1.0-0")," "),t.xp6(3),t.hij(" ",e.status.real_quality_number?t.lcZ(19,20,e.status.real_quality_number):""," ")}}function ga(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",10),t.ALo(2,"filename"),t._uU(3),t.ALo(4,"filename"),t.qZA(),t._UZ(5,"nz-progress",11),t.ALo(6,"progress"),t.qZA()),2&n){const e=t.oxw();let i,a;t.xp6(1),t.MGl("nzTooltipTitle","\u6b63\u5728\u6dfb\u52a0\u5143\u6570\u636e\uff1a",t.lcZ(2,7,null!==(i=e.status.postprocessing_path)&&void 0!==i?i:""),""),t.xp6(2),t.hij(" ",t.lcZ(4,9,null!==(a=e.status.postprocessing_path)&&void 0!==a?a:"")," "),t.xp6(2),t.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===e.status.postprocessing_progress?0:t.lcZ(6,11,e.status.postprocessing_progress))}}function da(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",12),t.ALo(2,"filename"),t._uU(3),t.ALo(4,"filename"),t.qZA(),t._UZ(5,"nz-progress",11),t.ALo(6,"progress"),t.qZA()),2&n){const e=t.oxw();let i,a;t.xp6(1),t.MGl("nzTooltipTitle","\u6b63\u5728\u8f6c\u5c01\u88c5\uff1a",t.lcZ(2,7,null!==(i=e.status.postprocessing_path)&&void 0!==i?i:""),""),t.xp6(2),t.hij(" ",t.lcZ(4,9,null!==(a=e.status.postprocessing_path)&&void 0!==a?a:"")," "),t.xp6(2),t.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===e.status.postprocessing_progress?0:t.lcZ(6,11,e.status.postprocessing_progress))}}class xt{constructor(){this.RunningStatus=m.cG}}xt.\u0275fac=function(o){return new(o||xt)},xt.\u0275cmp=t.Xpm({type:xt,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","nzTooltipPlacement","top",1,"status-indicator"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u7528\u65f6","nzTooltipPlacement","top",1,"time-elapsed"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u901f\u5ea6","nzTooltipPlacement","top",1,"data-rate"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u603b\u8ba1","nzTooltipPlacement","top",1,"data-count"],["nz-tooltip","","nzTooltipPlacement","top",1,"danmu-count",3,"nzTooltipTitle"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\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(o,e){1&o&&(t.ynx(0,0),t.YNc(1,pa,20,24,"div",1),t.YNc(2,ga,7,13,"div",1),t.YNc(3,da,7,13,"div",1),t.BQk()),2&o&&(t.Q6J("ngSwitch",e.status.running_status),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.RECORDING),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.INJECTING),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.REMUXING))},dependencies:[c.RF,c.n9,it.SY,ne,c.JJ,tt,Rt.f,J,fe.U,H,G],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;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:_ngcontent-%COMP%_blinker 1s cubic-bezier(1,0,0,1) infinite}@keyframes _ngcontent-%COMP%_blinker{0%{opacity:0}to{opacity:1}}.status-bar.injecting[_ngcontent-%COMP%], .status-bar.remuxing[_ngcontent-%COMP%], .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});var ma=s(5141),Qt=s(457),ha=s(4968),fa=s(1481);const Kt=new Map,Gt=new Map;class Dt{constructor(o){this.domSanitizer=o}transform(o,e="object"){return"object"===e?Gt.has(o)?(0,b.of)(Gt.get(o)):(0,Qt.D)(this.fetchImage(o)).pipe((0,W.U)(i=>URL.createObjectURL(i)),(0,W.U)(i=>this.domSanitizer.bypassSecurityTrustUrl(i)),(0,O.b)(i=>Gt.set(o,i)),(0,lt.K)(()=>(0,b.of)(this.domSanitizer.bypassSecurityTrustUrl("")))):Kt.has(o)?(0,b.of)(Kt.get(o)):(0,Qt.D)(this.fetchImage(o)).pipe((0,rt.w)(i=>this.createDataURL(i)),(0,O.b)(i=>Kt.set(o,i)),(0,lt.K)(()=>(0,b.of)(this.domSanitizer.bypassSecurityTrustUrl(""))))}fetchImage(o){return(0,St.Z)(function*(){return yield(yield fetch(o,{referrer:""})).blob()})()}createDataURL(o){const e=new FileReader,i=(0,ha.R)(e,"load").pipe((0,W.U)(()=>this.domSanitizer.bypassSecurityTrustUrl(e.result)));return e.readAsDataURL(o),i}}function Ca(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"app-info-panel",21),t.NdJ("close",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.showInfoPanel=!1)}),t.qZA()}if(2&n){const e=t.oxw(2);t.Q6J("data",e.data)}}Dt.\u0275fac=function(o){return new(o||Dt)(t.Y36(fa.H7,16))},Dt.\u0275pipe=t.Yjl({name:"dataurl",type:Dt,pure:!0});const za=function(n){return[n,"detail"]};function Ta(n,o){if(1&n&&(t.TgZ(0,"a",15)(1,"div",16),t._UZ(2,"img",17),t.ALo(3,"async"),t.ALo(4,"dataurl"),t.TgZ(5,"h2",18),t._uU(6),t.qZA(),t.YNc(7,Ca,1,1,"app-info-panel",19),t._UZ(8,"app-status-display",20),t.qZA()()),2&n){const e=t.oxw();t.Q6J("routerLink",t.VKq(10,za,e.data.room_info.room_id)),t.xp6(2),t.Q6J("src",t.lcZ(3,6,t.lcZ(4,8,e.data.room_info.cover)),t.LSH),t.xp6(3),t.Q6J("nzTooltipTitle","\u76f4\u64ad\u95f4\u6807\u9898\uff1a"+e.data.room_info.title),t.xp6(1),t.hij(" ",e.data.room_info.title," "),t.xp6(1),t.Q6J("ngIf",e.showInfoPanel),t.xp6(1),t.Q6J("status",e.data.task_status)}}function xa(n,o){if(1&n&&(t._UZ(0,"nz-avatar",22),t.ALo(1,"async"),t.ALo(2,"dataurl")),2&n){const e=t.oxw();t.Q6J("nzShape","square")("nzSize",54)("nzSrc",t.lcZ(1,3,t.lcZ(2,5,e.data.user_info.face)))}}function Da(n,o){1&n&&(t.TgZ(0,"nz-tag",31),t._UZ(1,"i",32),t.TgZ(2,"span"),t._uU(3,"\u672a\u5f00\u64ad"),t.qZA()())}function Ma(n,o){1&n&&(t.TgZ(0,"nz-tag",33),t._UZ(1,"i",34),t.TgZ(2,"span"),t._uU(3,"\u76f4\u64ad\u4e2d"),t.qZA()())}function ka(n,o){1&n&&(t.TgZ(0,"nz-tag",35),t._UZ(1,"i",36),t.TgZ(2,"span"),t._uU(3,"\u8f6e\u64ad\u4e2d"),t.qZA()())}function Oa(n,o){if(1&n&&(t.TgZ(0,"p",23)(1,"span",24)(2,"a",25),t._uU(3),t.qZA()(),t.TgZ(4,"span",26),t.ynx(5,27),t.YNc(6,Da,4,0,"nz-tag",28),t.YNc(7,Ma,4,0,"nz-tag",29),t.YNc(8,ka,4,0,"nz-tag",30),t.BQk(),t.qZA()()),2&n){const e=t.oxw();t.xp6(2),t.MGl("href","https://space.bilibili.com/",e.data.user_info.uid,"",t.LSH),t.xp6(1),t.hij(" ",e.data.user_info.name," "),t.xp6(2),t.Q6J("ngSwitch",e.data.room_info.live_status),t.xp6(1),t.Q6J("ngSwitchCase",0),t.xp6(1),t.Q6J("ngSwitchCase",1),t.xp6(1),t.Q6J("ngSwitchCase",2)}}function va(n,o){if(1&n&&(t.TgZ(0,"span",44)(1,"a",25),t._uU(2),t.qZA()()),2&n){const e=t.oxw(2);t.xp6(1),t.MGl("href","https://live.bilibili.com/",e.data.room_info.short_room_id,"",t.LSH),t.xp6(1),t.hij(" ",e.data.room_info.short_room_id,"")}}function Ea(n,o){if(1&n&&(t.TgZ(0,"p",37)(1,"span",38)(2,"span",39),t._uU(3,"\u623f\u95f4\u53f7\uff1a"),t.qZA(),t.YNc(4,va,3,2,"span",40),t.TgZ(5,"span",41)(6,"a",25),t._uU(7),t.qZA()()(),t.TgZ(8,"span",42)(9,"a",25)(10,"nz-tag",43),t._uU(11),t.qZA()()()()),2&n){const e=t.oxw();t.xp6(4),t.Q6J("ngIf",e.data.room_info.short_room_id),t.xp6(2),t.MGl("href","https://live.bilibili.com/",e.data.room_info.room_id,"",t.LSH),t.xp6(1),t.Oqu(e.data.room_info.room_id),t.xp6(2),t.hYB("href","https://live.bilibili.com/p/eden/area-tags?parentAreaId=",e.data.room_info.parent_area_id,"&areaId=",e.data.room_info.area_id,"",t.LSH),t.xp6(1),t.Q6J("nzColor","#23ade5"),t.xp6(1),t.hij(" ",e.data.room_info.area_name," ")}}function Aa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-switch",45),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.toggleRecorder())}),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzDisabled",e.toggleRecorderForbidden)("ngModel",e.data.task_status.recorder_enabled)("nzControl",!0)("nzLoading",e.switchPending)}}function Pa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",46),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cutStream())}),t._UZ(1,"i",47),t.qZA()}if(2&n){const e=t.oxw();t.ekj("not-allowed",e.data.task_status.running_status!==e.RunningStatus.RECORDING)}}function Sa(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"app-task-settings-dialog",51),t.NdJ("visibleChange",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.settingsDialogVisible=a)})("confirm",function(a){t.CHM(e);const r=t.oxw(2);return t.KtG(r.changeTaskOptions(a))})("afterClose",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.cleanSettingsData())}),t.qZA(),t.BQk()}if(2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("taskOptions",e.taskOptions)("globalSettings",e.globalSettings)("visible",e.settingsDialogVisible)}}function ya(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",48),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.openSettingsDialog())}),t._UZ(1,"i",49),t.qZA(),t.YNc(2,Sa,2,3,"ng-container",50)}if(2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngIf",e.taskOptions&&e.globalSettings)}}function Fa(n,o){if(1&n&&(t.TgZ(0,"div",54),t._UZ(1,"i",55),t.qZA()),2&n){t.oxw(2);const e=t.MAs(20);t.Q6J("nzDropdownMenu",e)}}function ba(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",56),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!0)}),t._UZ(1,"i",55),t.qZA()}}function wa(n,o){if(1&n&&(t.YNc(0,Fa,2,1,"div",52),t.YNc(1,ba,2,0,"div",53)),2&n){const e=t.oxw();t.Q6J("ngIf",!e.useDrawer),t.xp6(1),t.Q6J("ngIf",e.useDrawer)}}function Ia(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"ul",57)(1,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.startTask())}),t._uU(2,"\u8fd0\u884c\u4efb\u52a1"),t.qZA(),t.TgZ(3,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopTask())}),t._uU(4,"\u505c\u6b62\u4efb\u52a1"),t.qZA(),t.TgZ(5,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.removeTask())}),t._uU(6,"\u5220\u9664\u4efb\u52a1"),t.qZA(),t.TgZ(7,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopTask(!0))}),t._uU(8,"\u5f3a\u5236\u505c\u6b62\u4efb\u52a1"),t.qZA(),t.TgZ(9,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableRecorder(!0))}),t._uU(10,"\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),t.qZA(),t.TgZ(11,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.updateTaskInfo())}),t._uU(12,"\u5237\u65b0\u6570\u636e"),t.qZA(),t.TgZ(13,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.showInfoPanel=!0)}),t._uU(14,"\u663e\u793a\u5f55\u5236\u4fe1\u606f"),t.qZA()()}}function Na(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"div",61),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!1)}),t.GkF(2,12),t.qZA(),t.BQk()}if(2&n){t.oxw(2);const e=t.MAs(23);t.xp6(2),t.Q6J("ngTemplateOutlet",e)}}const Ba=function(){return{padding:"0"}};function Za(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-drawer",59),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const r=t.oxw();return t.KtG(r.menuDrawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!1)}),t.YNc(1,Na,3,1,"ng-container",60),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzClosable",!1)("nzBodyStyle",t.DdM(3,Ba))("nzVisible",e.menuDrawerVisible)}}const Ua=function(n,o,e,i){return[n,o,e,i]},Ra=function(){return{padding:"0.5rem"}},La=function(){return{size:"large"}};class Mt{constructor(o,e,i,a,r,d,C){this.changeDetector=e,this.message=i,this.modal=a,this.settingService=r,this.taskManager=d,this.appTaskSettings=C,this.stopped=!1,this.destroyed=new F.x,this.useDrawer=!1,this.menuDrawerVisible=!1,this.switchPending=!1,this.settingsDialogVisible=!1,this.RunningStatus=m.cG,o.observe(ft[0]).pipe((0,A.R)(this.destroyed)).subscribe(z=>{this.useDrawer=z.matches,e.markForCheck()})}get roomId(){return this.data.room_info.room_id}get toggleRecorderForbidden(){return!this.data.task_status.monitor_enabled}get showInfoPanel(){return Boolean(this.appTaskSettings.getSettings(this.roomId).showInfoPanel)}set showInfoPanel(o){this.appTaskSettings.updateSettings(this.roomId,{showInfoPanel:o})}ngOnChanges(o){console.debug("[ngOnChanges]",this.roomId,o),this.stopped=this.data.task_status.running_status===m.cG.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===m.cG.STOPPED?this.taskManager.startTask(this.roomId).subscribe():this.message.warning("\u4efb\u52a1\u8fd0\u884c\u4e2d\uff0c\u5ffd\u7565\u64cd\u4f5c\u3002")}stopTask(o=!1){this.data.task_status.running_status!==m.cG.STOPPED?o&&this.data.task_status.running_status==m.cG.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((e,i)=>{this.taskManager.stopTask(this.roomId,o).subscribe(e,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(o=!1){this.data.task_status.recorder_enabled?o&&this.data.task_status.running_status==m.cG.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((e,i)=>{this.taskManager.disableRecorder(this.roomId,o).subscribe(e,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(){(0,ge.$)(this.settingService.getTaskOptions(this.roomId),this.settingService.getSettings(["output","header","danmaku","recorder","postprocessing"])).subscribe(([o,e])=>{this.taskOptions=o,this.globalSettings=e,this.settingsDialogVisible=!0,this.changeDetector.markForCheck()},o=>{this.message.error(`\u83b7\u53d6\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${o.message}`)})}cleanSettingsData(){delete this.taskOptions,delete this.globalSettings,this.changeDetector.markForCheck()}changeTaskOptions(o){this.settingService.changeTaskOptions(this.roomId,o).pipe((0,Zt.X)(3,300)).subscribe(e=>{this.message.success("\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u6210\u529f")},e=>{this.message.error(`\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${e.message}`)})}cutStream(){this.data.task_status.running_status===m.cG.RECORDING&&this.taskManager.canCutStream(this.roomId).subscribe(o=>{o&&this.taskManager.cutStream(this.roomId).subscribe()})}}function Ja(n,o){1&n&&(t.TgZ(0,"div",2),t._UZ(1,"nz-empty"),t.qZA())}function Qa(n,o){1&n&&t._UZ(0,"app-task-item",6),2&n&&t.Q6J("data",o.$implicit)}function Ka(n,o){if(1&n&&(t.TgZ(0,"div",3,4),t.YNc(2,Qa,1,1,"app-task-item",5),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngForOf",e.dataList)("ngForTrackBy",e.trackByRoomId)}}Mt.\u0275fac=function(o){return new(o||Mt)(t.Y36(h.Yg),t.Y36(t.sBO),t.Y36(Jt.dD),t.Y36(K.Sf),t.Y36(Qi.R),t.Y36(Q),t.Y36(et))},Mt.\u0275cmp=t.Xpm({type:Mt,selectors:[["app-task-item"]],hostVars:2,hostBindings:function(o,e){2&o&&t.ekj("stopped",e.stopped)},inputs:{data:"data"},features:[t.TTD],decls:25,vars:19,consts:[[3,"nzCover","nzHoverable","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"],[3,"routerLink"],[1,"cover-wrapper"],["alt","\u76f4\u64ad\u95f4\u5c01\u9762",1,"cover",3,"src"],["nz-tooltip","","nzTooltipPlacement","bottomLeft",1,"title",3,"nzTooltipTitle"],[3,"data","close",4,"ngIf"],[3,"status"],[3,"data","close"],[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","\u5207\u5272\u6587\u4ef6",3,"click"],["nz-icon","","nzType","scissor",1,"action-icon"],["nz-tooltip","","nzTooltipTitle","\u4efb\u52a1\u8bbe\u7f6e",3,"click"],["nz-icon","","nzType","setting",1,"action-icon"],[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",1,"action-icon"],[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(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-skeleton",1),t._UZ(2,"nz-card-meta",2),t.qZA()(),t.YNc(3,Ta,9,12,"ng-template",null,3,t.W1O),t.YNc(5,xa,3,7,"ng-template",null,4,t.W1O),t.YNc(7,Oa,9,6,"ng-template",null,5,t.W1O),t.YNc(9,Ea,12,7,"ng-template",null,6,t.W1O),t.YNc(11,Aa,1,4,"ng-template",null,7,t.W1O),t.YNc(13,Pa,2,2,"ng-template",null,8,t.W1O),t.YNc(15,ya,3,1,"ng-template",null,9,t.W1O),t.YNc(17,wa,2,2,"ng-template",null,10,t.W1O),t.TgZ(19,"nz-dropdown-menu",null,11),t.GkF(21,12),t.YNc(22,Ia,15,0,"ng-template",null,13,t.W1O),t.qZA(),t.YNc(24,Za,2,4,"nz-drawer",14)),2&o){const i=t.MAs(4),a=t.MAs(6),r=t.MAs(8),d=t.MAs(10),C=t.MAs(12),z=t.MAs(14),l=t.MAs(16),y=t.MAs(18),w=t.MAs(23);t.Q6J("nzCover",i)("nzHoverable",!0)("nzActions",t.l5B(12,Ua,z,l,C,y))("nzBodyStyle",t.DdM(17,Ra)),t.xp6(1),t.Q6J("nzActive",!0)("nzLoading",!e.data)("nzAvatar",t.DdM(18,La)),t.xp6(1),t.Q6J("nzAvatar",a)("nzTitle",r)("nzDescription",d),t.xp6(19),t.Q6J("ngTemplateOutlet",w),t.xp6(3),t.Q6J("ngIf",e.useDrawer)}},dependencies:[c.O5,c.tP,c.RF,c.n9,p.JJ,p.On,v.bd,v.l7,we,Yt.Dz,E.Ls,it.SY,Wt,bt.i,Ct.wO,Ct.r9,j.cm,j.RR,Lt.w,at.Vz,at.SQ,st.rH,Tt,xt,ma.i,c.Ov,Dt],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:-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;column-gap:1em}.meta-title[_ngcontent-%COMP%]   .user-name[_ngcontent-%COMP%]{color:#fb7299;font-size:1rem;font-weight:700;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}.action-icon[_ngcontent-%COMP%]{font-size:16px}.not-allowed[_ngcontent-%COMP%]{cursor:not-allowed}'],changeDetection:0});class kt{constructor(){this.dataList=[]}trackByRoomId(o,e){return e.room_info.room_id}}kt.\u0275fac=function(o){return new(o||kt)},kt.\u0275cmp=t.Xpm({type:kt,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(o,e){if(1&o&&(t.YNc(0,Ja,2,0,"div",0),t.YNc(1,Ka,3,2,"ng-template",null,1,t.W1O)),2&o){const i=t.MAs(2);t.Q6J("ngIf",0===e.dataList.length)("ngIfElse",i)}},dependencies:[c.sg,c.O5,Vt.p9,Mt],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;overflow:auto}[_nghost-%COMP%]{--card-width: 400px;--grid-gutter: 12px;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));gap:var(--grid-gutter);justify-content:center;max-width:100%;margin:0 auto}.empty-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}"],changeDetection:0});var Ga=s(4351);function Wa(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u76f4\u64ad\u95f4\u53f7\u6216 URL "),t.BQk())}function Ya(n,o){1&n&&(t.ynx(0),t._uU(1," \u8f93\u5165\u6709\u9519\u8bef "),t.BQk())}function qa(n,o){if(1&n&&(t.YNc(0,Wa,2,0,"ng-container",8),t.YNc(1,Ya,2,0,"ng-container",8)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function $a(n,o){if(1&n&&(t.ynx(0),t._UZ(1,"nz-alert",9),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("nzType",e.type)("nzMessage",e.message)}}function ja(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,qa,2,2,"ng-template",null,5,t.W1O),t.qZA()()(),t.TgZ(7,"div",6),t.YNc(8,$a,2,2,"ng-container",7),t.qZA(),t.BQk()),2&n){const e=t.MAs(6),i=t.oxw();t.xp6(1),t.Q6J("formGroup",i.formGroup),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("pattern",i.pattern),t.xp6(4),t.Q6J("ngForOf",i.resultMessages)}}const Va=/^https?:\/\/live\.bilibili\.com\/(\d+).*$/,Ha=/^\s*(?:\d+(?:[ ]+\d+)*|https?:\/\/live\.bilibili\.com\/\d+.*)\s*$/;class Ot{constructor(o,e,i){this.changeDetector=e,this.taskManager=i,this.visible=!1,this.visibleChange=new t.vpe,this.pending=!1,this.resultMessages=[],this.pattern=Ha,this.formGroup=o.group({input:["",[p.kI.required,p.kI.pattern(this.pattern)]]})}get inputControl(){return this.formGroup.get("input")}open(){this.setVisible(!0)}close(){this.resultMessages=[],this.reset(),this.setVisible(!1)}setVisible(o){this.visible=o,this.visibleChange.emit(o),this.changeDetector.markForCheck()}reset(){this.pending=!1,this.formGroup.reset(),this.changeDetector.markForCheck()}handleCancel(){this.close()}handleConfirm(){this.pending=!0;const o=this.inputControl.value.trim();let e;e=o.startsWith("http")?[parseInt(Va.exec(o)[1])]:new Set(o.split(/\s+/).map(i=>parseInt(i))),(0,Qt.D)(e).pipe((0,Ga.b)(i=>this.taskManager.addTask(i)),(0,O.b)(i=>{this.resultMessages.push(i),this.changeDetector.markForCheck()})).subscribe({complete:()=>{this.resultMessages.every(i=>"success"===i.type)?this.close():this.reset()}})}}Ot.\u0275fac=function(o){return new(o||Ot)(t.Y36(p.qu),t.Y36(t.sBO),t.Y36(Q))},Ot.\u0275cmp=t.Xpm({type:Ot,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(o,e){1&o&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,ja,9,4,"ng-container",1),t.qZA()),2&o&&t.Q6J("nzVisible",e.visible)("nzOkLoading",e.pending)("nzOkDisabled",e.formGroup.invalid)("nzCancelDisabled",e.pending)("nzClosable",!e.pending)("nzMaskClosable",!e.pending)},dependencies:[c.sg,c.O5,p._Y,p.Fj,p.JJ,p.JL,p.Q7,p.c5,p.sg,p.u,k.t3,k.SK,K.du,K.Hf,R.Lr,R.Nx,R.Fd,V.Zp,pn],styles:[".result-messages-container[_ngcontent-%COMP%]{width:100%;max-height:200px;overflow-y:auto}"],changeDetection:0});class vt{transform(o,e=""){return console.debug("filter tasks by '%s'",e),[...this.filterByTerm(o,e)]}filterByTerm(o,e){return function*Xa(n,o){for(const e of n)o(e)&&(yield e)}(o,i=>""===(e=e.trim())||i.user_info.name.includes(e)||i.room_info.title.toString().includes(e)||i.room_info.area_name.toString().includes(e)||i.room_info.room_id.toString().includes(e)||i.room_info.short_room_id.toString().includes(e))}}function tr(n,o){if(1&n&&t._UZ(0,"nz-spin",6),2&n){const e=t.oxw();t.Q6J("nzSize","large")("nzSpinning",e.loading)}}function er(n,o){if(1&n&&(t._UZ(0,"app-task-list",7),t.ALo(1,"filterTasks")),2&n){const e=t.oxw();t.Q6J("dataList",t.xi3(1,1,e.dataList,e.filterTerm))}}vt.\u0275fac=function(o){return new(o||vt)},vt.\u0275pipe=t.Yjl({name:"filterTasks",type:vt,pure:!0});const Te="app-tasks-selection",xe="app-tasks-reverse";class Et{constructor(o,e,i,a){this.changeDetector=o,this.notification=e,this.storage=i,this.taskService=a,this.loading=!0,this.dataList=[],this.filterTerm="",this.selection=this.retrieveSelection(),this.reverse=this.retrieveReverse()}ngOnInit(){this.syncTaskData()}ngOnDestroy(){this.desyncTaskData()}onSelectionChanged(o){this.selection=o,this.storeSelection(o),this.desyncTaskData(),this.syncTaskData()}onReverseChanged(o){this.reverse=o,this.storeReverse(o),o&&(this.dataList=[...this.dataList.reverse()],this.changeDetector.markForCheck())}retrieveSelection(){const o=this.storage.getData(Te);return null!==o?o:m.jf.ALL}retrieveReverse(){return"true"===this.storage.getData(xe)}storeSelection(o){this.storage.setData(Te,o)}storeReverse(o){this.storage.setData(xe,o.toString())}syncTaskData(){this.dataSubscription=(0,b.of)((0,b.of)(0),(0,pe.F)(1e3)).pipe((0,de.u)(),(0,rt.w)(()=>this.taskService.getAllTaskData(this.selection)),(0,lt.K)(o=>{throw this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519",o.message),o}),(0,Zt.X)(10,3e3)).subscribe(o=>{this.loading=!1,this.dataList=this.reverse?o.reverse():o,this.changeDetector.markForCheck()},o=>{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(){this.dataSubscription?.unsubscribe()}}Et.\u0275fac=function(o){return new(o||Et)(t.Y36(t.sBO),t.Y36(me.zb),t.Y36(Ce.V),t.Y36(Ut.M))},Et.\u0275cmp=t.Xpm({type:Et,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(o,e){if(1&o){const i=t.EpF();t.TgZ(0,"app-toolbar",0),t.NdJ("selectionChange",function(r){return e.onSelectionChanged(r)})("reverseChange",function(r){return e.onReverseChanged(r)})("filterChange",function(r){return e.filterTerm=r}),t.qZA(),t.YNc(1,tr,1,2,"nz-spin",1),t.YNc(2,er,2,4,"ng-template",null,2,t.W1O),t.TgZ(4,"button",3),t.NdJ("click",function(){t.CHM(i);const r=t.MAs(7);return t.KtG(r.open())}),t._UZ(5,"i",4),t.qZA(),t._UZ(6,"app-add-task-dialog",null,5)}if(2&o){const i=t.MAs(3);t.Q6J("selection",e.selection)("reverse",e.reverse),t.xp6(1),t.Q6J("ngIf",e.loading)("ngIfElse",i)}},dependencies:[c.O5,E.Ls,it.SY,At.ix,Lt.w,Di.dQ,Ht.W,zt,kt,Ot,vt],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;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});const nr=[{path:":id/detail",component:ht},{path:"",component:Et}];class nt{}nt.\u0275fac=function(o){return new(o||nt)},nt.\u0275mod=t.oAB({type:nt}),nt.\u0275inj=t.cJS({imports:[st.Bz.forChild(nr),st.Bz]});class ot{}ot.\u0275fac=function(o){return new(o||ot)},ot.\u0275mod=t.oAB({type:ot}),ot.\u0275inj=t.cJS({imports:[c.ez,p.u5,p.UX,h.xu,g,k.Jb,v.vh,qt,Yt.Rt,E.PV,qt,it.cg,Me,bt.m,j.b1,At.sL,K.Qp,R.U5,V.o7,$t.Wr,Ye,Pt.aF,jt.S,Vt.Xo,Ht.j,gn,at.BL,wt.LV,Rn,L.HQ,Xn,Io,Jo.forRoot({echarts:()=>s.e(386).then(s.bind(s,7386))}),nt,Qo.m]})},7445:(x,D,s)=>{s.d(D,{F:()=>h});var c=s(4986),p=s(5963);function h(t=0,f=c.z){return t<0&&(t=0),(0,p.H)(t,t,f)}},7188:(x,D,s)=>{s.d(D,{$:()=>u});var c=s(9751),p=s(8421);const{isArray:h}=Array;var f=s(515),_=s(5403),q=s(3269);function u(...g){const k=(0,q.jO)(g),v=function t(g){return 1===g.length&&h(g[0])?g[0]:g}(g);return v.length?new c.y(E=>{let T=v.map(()=>[]),F=v.map(()=>!1);E.add(()=>{T=F=null});for(let A=0;!E.closed&&A<v.length;A++)(0,p.Xf)(v[A]).subscribe((0,_.x)(E,$=>{if(T[A].push($),T.every(M=>M.length)){const M=T.map(P=>P.shift());E.next(k?k(...M):M),T.some((P,Ft)=>!P.length&&F[Ft])&&E.complete()}},()=>{F[A]=!0,!T[A].length&&E.complete()}));return()=>{T=F=null}}):f.E}}}]);
\ No newline at end of file
diff --git a/src/blrec/data/webapp/287.63ace7ac80c3d9f2.js b/src/blrec/data/webapp/287.63ace7ac80c3d9f2.js
new file mode 100644
index 0000000..7051ccd
--- /dev/null
+++ b/src/blrec/data/webapp/287.63ace7ac80c3d9f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[287],{3692:(x,D,r)=>{r.d(D,{f:()=>h});var c=r(2134),p=r(4650);class h{transform(f,_){if("string"==typeof f)f=parseFloat(f);else if("number"!=typeof f||isNaN(f))return"N/A";return(_=Object.assign({bitrate:!1,precision:3,spacer:" "},_)).bitrate?(0,c.AX)(f,_.spacer,_.precision):(0,c.N4)(f,_.spacer,_.precision)}}h.\u0275fac=function(f){return new(f||h)},h.\u0275pipe=p.Yjl({name:"datarate",type:h,pure:!0})},3520:(x,D,r)=>{r.d(D,{U:()=>h});const c={2e4:"4K",1e4:"\u539f\u753b",401:"\u84dd\u5149(\u675c\u6bd4)",400:"\u84dd\u5149",250:"\u8d85\u6e05",150:"\u9ad8\u6e05",80:"\u6d41\u7545"};var p=r(4650);class h{transform(f){return c[f]}}h.\u0275fac=function(f){return new(f||h)},h.\u0275pipe=p.Yjl({name:"quality",type:h,pure:!0})},5141:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{i:()=>InfoPanelComponent});var _angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4650),rxjs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(9646),rxjs__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(7445),rxjs__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(7188),rxjs_operators__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(7886),rxjs_operators__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(3900),rxjs_operators__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(262),src_app_shared_rx_operators__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(4007),_shared_task_model__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(2948),ng_zorro_antd_notification__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(387),_shared_services_task_service__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(844),_angular_common__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(6895),_wave_graph_wave_graph_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(1755),_shared_pipes_datarate_pipe__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3692),_shared_pipes_quality_pipe__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(3520);function InfoPanelComponent_ul_3_ng_container_36_Template(x,D){1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.ynx(0),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(1,", bluray"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.BQk())}function InfoPanelComponent_ul_3_li_38_Template(x,D){if(1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"li",4)(1,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(2,"\u6d41\u7f16\u7801\u5668"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(3,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()),2&x){const r=_angular_core__WEBPACK_IMPORTED_MODULE_4__.oxw(2);_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Oqu(null==r.profile.streams[0].tags?null:r.profile.streams[0].tags.encoder)}}const _c0=function(){return{bitrate:!0}};function InfoPanelComponent_ul_3_Template(x,D){if(1&x&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"ul",3)(1,"li",4)(2,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(3,"\u89c6\u9891\u4fe1\u606f"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(4,"span",6)(5,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(6),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(7,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(8),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(9,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(10),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(11,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(12),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(13,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(14,"li",4)(15,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(16,"\u97f3\u9891\u4fe1\u606f"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(17,"span",6)(18,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(19),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(20,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(21),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(22,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(23),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(24,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(25),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(26,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(27,"li",4)(28,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(29,"\u683c\u5f0f\u753b\u8d28"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(30,"span",6)(31,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(32),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(33,"span"),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(34),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(35,"quality"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(36,InfoPanelComponent_ul_3_ng_container_36_Template,2,0,"ng-container",7),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(37,") "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(38,InfoPanelComponent_ul_3_li_38_Template,5,1,"li",8),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(39,"li",4)(40,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(41,"\u6d41\u4e3b\u673a\u540d"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(42,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(43),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(44,"li",4)(45,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(46,"\u4e0b\u8f7d\u901f\u5ea6"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__._UZ(47,"app-wave-graph",9),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(48,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(49),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(50,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(51,"li",4)(52,"span",5),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(53,"\u5f55\u5236\u901f\u5ea6"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__._UZ(54,"app-wave-graph",9),_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(55,"span",6),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(56),_angular_core__WEBPACK_IMPORTED_MODULE_4__.ALo(57,"datarate"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()()()),2&x){const r=_angular_core__WEBPACK_IMPORTED_MODULE_4__.oxw();let c;_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(6),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.profile.streams[0].codec_name," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.AsE(" ",r.profile.streams[0].width,"x",r.profile.streams[0].height," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.fps," fps"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(13,19,1e3*r.metadata.videodatarate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(32,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(7),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.profile.streams[1].codec_name," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.profile.streams[1].sample_rate," HZ"),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.profile.streams[1].channel_layout," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(26,22,1e3*r.metadata.audiodatarate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(33,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(7),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.data.task_status.real_stream_format?r.data.task_status.real_stream_format:"N/A"," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.AsE(" ",r.data.task_status.real_quality_number?_angular_core__WEBPACK_IMPORTED_MODULE_4__.lcZ(35,25,r.data.task_status.real_quality_number):"N/A"," (",null!==(c=r.data.task_status.real_quality_number)&&void 0!==c?c:"N/A",""),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",r.isBlurayStreamQuality()),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",null==r.profile.streams[0]||null==r.profile.streams[0].tags?null:r.profile.streams[0].tags.encoder),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(5),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",r.data.task_status.stream_host," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(4),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("value",r.data.task_status.dl_rate),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.xi3(50,27,8*r.data.task_status.dl_rate,_angular_core__WEBPACK_IMPORTED_MODULE_4__.DdM(34,_c0))," "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(5),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("value",r.data.task_status.rec_rate),_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.hij(" ",_angular_core__WEBPACK_IMPORTED_MODULE_4__.lcZ(57,30,r.data.task_status.rec_rate)," ")}}class InfoPanelComponent{constructor(x,D,r){this.changeDetector=x,this.notification=D,this.taskService=r,this.metadata=null,this.close=new _angular_core__WEBPACK_IMPORTED_MODULE_4__.vpe,this.RunningStatus=_shared_task_model__WEBPACK_IMPORTED_MODULE_5__.cG}get fps(){const avgFrameRate=this.profile?.streams[0]?.avg_frame_rate;return avgFrameRate?eval(avgFrameRate).toFixed():"N/A"}ngOnInit(){this.syncData()}ngOnDestroy(){this.desyncData()}isBlurayStreamQuality(){return/_bluray/.test(this.data.task_status.stream_url)}closePanel(x){x.preventDefault(),x.stopPropagation(),this.close.emit()}syncData(){this.dataSubscription=(0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)((0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)(0),(0,rxjs__WEBPACK_IMPORTED_MODULE_7__.F)(1e3)).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_8__.u)(),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_9__.w)(()=>(0,rxjs__WEBPACK_IMPORTED_MODULE_10__.$)(this.taskService.getStreamProfile(this.data.room_info.room_id),this.taskService.getMetadata(this.data.room_info.room_id))),(0,rxjs_operators__WEBPACK_IMPORTED_MODULE_11__.K)(x=>{throw this.notification.error("\u83b7\u53d6\u6570\u636e\u51fa\u9519",x.message),x}),(0,src_app_shared_rx_operators__WEBPACK_IMPORTED_MODULE_12__.X)(3,1e3)).subscribe(([x,D])=>{this.profile=x,this.metadata=D,this.changeDetector.markForCheck()},x=>{this.notification.error("\u83b7\u53d6\u6570\u636e\u51fa\u9519","\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38, \u8bf7\u5f85\u7f51\u7edc\u6b63\u5e38\u540e\u5237\u65b0\u3002",{nzDuration:0})})}desyncData(){this.dataSubscription?.unsubscribe()}}InfoPanelComponent.\u0275fac=function x(D){return new(D||InfoPanelComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(_angular_core__WEBPACK_IMPORTED_MODULE_4__.sBO),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(ng_zorro_antd_notification__WEBPACK_IMPORTED_MODULE_13__.zb),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Y36(_shared_services_task_service__WEBPACK_IMPORTED_MODULE_0__.M))},InfoPanelComponent.\u0275cmp=_angular_core__WEBPACK_IMPORTED_MODULE_4__.Xpm({type:InfoPanelComponent,selectors:[["app-info-panel"]],inputs:{data:"data",profile:"profile",metadata:"metadata"},outputs:{close:"close"},decls:4,vars:1,consts:[[1,"info-panel"],["title","\u5173\u95ed",1,"close-panel",3,"click"],["class","info-list",4,"ngIf"],[1,"info-list"],[1,"info-item"],[1,"label"],[1,"value"],[4,"ngIf"],["class","info-item",4,"ngIf"],[3,"value"]],template:function x(D,r){1&D&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.TgZ(0,"div",0)(1,"button",1),_angular_core__WEBPACK_IMPORTED_MODULE_4__.NdJ("click",function(p){return r.closePanel(p)}),_angular_core__WEBPACK_IMPORTED_MODULE_4__._uU(2," [x] "),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA(),_angular_core__WEBPACK_IMPORTED_MODULE_4__.YNc(3,InfoPanelComponent_ul_3_Template,58,35,"ul",2),_angular_core__WEBPACK_IMPORTED_MODULE_4__.qZA()),2&D&&(_angular_core__WEBPACK_IMPORTED_MODULE_4__.xp6(3),_angular_core__WEBPACK_IMPORTED_MODULE_4__.Q6J("ngIf",r.data.task_status.running_status===r.RunningStatus.RECORDING&&r.profile&&r.profile.streams&&r.profile.format&&r.metadata))},dependencies:[_angular_common__WEBPACK_IMPORTED_MODULE_14__.O5,_wave_graph_wave_graph_component__WEBPACK_IMPORTED_MODULE_1__.w,_shared_pipes_datarate_pipe__WEBPACK_IMPORTED_MODULE_2__.f,_shared_pipes_quality_pipe__WEBPACK_IMPORTED_MODULE_3__.U],styles:['@charset "UTF-8";.info-panel[_ngcontent-%COMP%]{color:#fff;text-shadow:1px 1px 2px black;margin:0;padding:0 .5rem;background:rgba(0,0,0,.32)}.info-panel[_ngcontent-%COMP%]{position:absolute;inset:2.55rem 0rem 2rem;width:100%;font-size:1rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;overflow:auto}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar{background-color:transparent;width:4px;height:4px}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#eee;border-radius:2px}.info-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#fff}.info-panel[_ngcontent-%COMP%]   .close-panel[_ngcontent-%COMP%]{position:absolute;top:0rem;right:0rem;width:2rem;height:2rem;padding:0;color:#fff;background:transparent;border:none;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]{margin:0;padding:0;list-style:none;width:100%;height:100%}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]{display:inline-block;margin:0;width:5rem;text-align:right}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]:after{content:"\\ff1a"}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{display:inline-block;margin:0;text-align:left}.info-panel[_ngcontent-%COMP%]   .info-list[_ngcontent-%COMP%]   .info-item[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]:not(:first-child):before{content:", "}app-wave-graph[_ngcontent-%COMP%]{margin-right:1rem}'],changeDetection:0})},1755:(x,D,r)=>{r.d(D,{w:()=>h});var c=r(7445),p=r(4650);class h{constructor(f){this.changeDetector=f,this.value=0,this.width=200,this.height=16,this.stroke="white",this.data=[],this.points=[];for(let _=0;_<=this.width;_+=2)this.data.push(0),this.points.push({x:_,y:this.height})}get polylinePoints(){return this.points.map(f=>`${f.x},${f.y}`).join(" ")}ngOnInit(){this.subscription=(0,c.F)(1e3).subscribe(()=>{this.data.push(this.value||0),this.data.shift();let f=Math.max(...this.data);this.points=this.data.map((_,q)=>({x:Math.min(2*q,this.width),y:(1-_/(f||1))*this.height})),this.changeDetector.markForCheck()})}ngOnDestroy(){this.subscription?.unsubscribe()}}h.\u0275fac=function(f){return new(f||h)(p.Y36(p.sBO))},h.\u0275cmp=p.Xpm({type:h,selectors:[["app-wave-graph"]],inputs:{value:"value",width:"width",height:"height",stroke:"stroke"},decls:2,vars:4,consts:[["fill","none"]],template:function(f,_){1&f&&(p.O4$(),p.TgZ(0,"svg"),p._UZ(1,"polyline",0),p.qZA()),2&f&&(p.uIk("width",_.width)("height",_.height),p.xp6(1),p.uIk("stroke",_.stroke)("points",_.polylinePoints))},styles:["[_nghost-%COMP%]{position:relative;top:2px}"],changeDetection:0})},844:(x,D,r)=>{r.d(D,{M:()=>_});var c=r(4004),p=r(2948),h=r(4650),t=r(529),f=r(7930);class _{constructor(u,g){this.http=u,this.url=g}getAllTaskData(u=p.jf.ALL){const g=this.url.makeApiUrl("/api/v1/tasks/data");return this.http.get(g,{params:{select:u}})}getTaskData(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/data`);return this.http.get(g)}getVideoFileDetails(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/videos`);return this.http.get(g)}getDanmakuFileDetails(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/danmakus`);return this.http.get(g)}getTaskParam(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/param`);return this.http.get(g)}getMetadata(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/metadata`);return this.http.get(g)}getStreamProfile(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/profile`);return this.http.get(g)}updateAllTaskInfos(){const u=this.url.makeApiUrl("/api/v1/tasks/info");return this.http.post(u,null)}updateTaskInfo(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/info`);return this.http.post(g,null)}addTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}`);return this.http.post(g,null)}removeTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}`);return this.http.delete(g)}removeAllTasks(){const u=this.url.makeApiUrl("/api/v1/tasks");return this.http.delete(u)}startTask(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/start`);return this.http.post(g,null)}startAllTasks(){const u=this.url.makeApiUrl("/api/v1/tasks/start");return this.http.post(u,null)}stopTask(u,g=!1,O=!1){const E=this.url.makeApiUrl(`/api/v1/tasks/${u}/stop`);return this.http.post(E,{force:g,background:O})}stopAllTasks(u=!1,g=!1){const O=this.url.makeApiUrl("/api/v1/tasks/stop");return this.http.post(O,{force:u,background:g})}enableTaskMonitor(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/monitor/enable`);return this.http.post(g,null)}enableAllMonitors(){const u=this.url.makeApiUrl("/api/v1/tasks/monitor/enable");return this.http.post(u,null)}disableTaskMonitor(u,g=!1){const O=this.url.makeApiUrl(`/api/v1/tasks/${u}/monitor/disable`);return this.http.post(O,{background:g})}disableAllMonitors(u=!1){const g=this.url.makeApiUrl("/api/v1/tasks/monitor/disable");return this.http.post(g,{background:u})}enableTaskRecorder(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/recorder/enable`);return this.http.post(g,null)}enableAllRecorders(){const u=this.url.makeApiUrl("/api/v1/tasks/recorder/enable");return this.http.post(u,null)}disableTaskRecorder(u,g=!1,O=!1){const E=this.url.makeApiUrl(`/api/v1/tasks/${u}/recorder/disable`);return this.http.post(E,{force:g,background:O})}disableAllRecorders(u=!1,g=!1){const O=this.url.makeApiUrl("/api/v1/tasks/recorder/disable");return this.http.post(O,{force:u,background:g})}canCutStream(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/cut`);return this.http.get(g).pipe((0,c.U)(O=>O.data.result))}cutStream(u){const g=this.url.makeApiUrl(`/api/v1/tasks/${u}/cut`);return this.http.post(g,null)}}_.\u0275fac=function(u){return new(u||_)(h.LFG(t.eN),h.LFG(f.i))},_.\u0275prov=h.Yz7({token:_,factory:_.\u0275fac,providedIn:"root"})},2948:(x,D,r)=>{r.d(D,{cG:()=>p,cS:()=>t,ii:()=>h,jf:()=>c});var c=(()=>{return(_=c||(c={})).ALL="all",_.PREPARING="preparing",_.LIVING="living",_.ROUNDING="rounding",_.MONITOR_ENABLED="monitor_enabled",_.MONITOR_DISABLED="monitor_disabled",_.RECORDER_ENABLED="recorder_enabled",_.RECORDER_DISABLED="recorder_disabled",_.STOPPED="stopped",_.WAITTING="waitting",_.RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",c;var _})(),p=(()=>{return(_=p||(p={})).STOPPED="stopped",_.WAITING="waiting",_.RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",p;var _})(),h=(()=>{return(_=h||(h={})).WAITING="waiting",_.REMUXING="remuxing",_.INJECTING="injecting",h;var _})(),t=(()=>{return(_=t||(t={})).RECORDING="recording",_.REMUXING="remuxing",_.INJECTING="injecting",_.COMPLETED="completed",_.MISSING="missing",_.UNKNOWN="unknown",t;var _})()},2287:(x,D,r)=>{r.r(D),r.d(D,{TasksModule:()=>ot});var c=r(6895),p=r(433),h=r(2289),t=r(4650);class f{constructor(o,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),a=i.style;a.position="fixed",a.top=a.opacity="0",a.left="-999em",i.setAttribute("aria-hidden","true"),i.value=o,i.readOnly=!0,this._document.body.appendChild(i)}copy(){const o=this._textarea;let e=!1;try{if(o){const i=this._document.activeElement;o.select(),o.setSelectionRange(0,o.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const o=this._textarea;o&&(o.remove(),this._textarea=void 0)}}let _=(()=>{class n{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),a=i.copy();return i.destroy(),a}beginCopy(e){return new f(e,this._document)}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(c.K0))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),g=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({}),n})();var O=r(3679),E=r(1971),P=r(1102),T=r(655),F=r(7579),y=r(2722),$=r(3414),k=r(3187),S=r(445);function bt(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"span",1),t.NdJ("click",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.closeTag(a))}),t.qZA()}}const De=["*"];let Wt=(()=>{class n{constructor(e,i,a,s){this.cdr=e,this.renderer=i,this.elementRef=a,this.directionality=s,this.isPresetColor=!1,this.nzMode="default",this.nzChecked=!1,this.nzOnClose=new t.vpe,this.nzCheckedChange=new t.vpe,this.dir="ltr",this.destroy$=new F.x}updateCheckedStatus(){"checkable"===this.nzMode&&(this.nzChecked=!this.nzChecked,this.nzCheckedChange.emit(this.nzChecked))}closeTag(e){this.nzOnClose.emit(e),e.defaultPrevented||this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}clearPresetColor(){const e=this.elementRef.nativeElement,i=new RegExp(`(ant-tag-(?:${[...$.uf,...$.Bh].join("|")}))`,"g"),a=e.classList.toString(),s=[];let d=i.exec(a);for(;null!==d;)s.push(d[1]),d=i.exec(a);e.classList.remove(...s)}setPresetColor(){const e=this.elementRef.nativeElement;this.clearPresetColor(),this.isPresetColor=!!this.nzColor&&((0,$.o2)(this.nzColor)||(0,$.M8)(this.nzColor)),this.isPresetColor&&e.classList.add(`ant-tag-${this.nzColor}`)}ngOnInit(){this.directionality.change?.pipe((0,y.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzColor:i}=e;i&&this.setPresetColor()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq),t.Y36(S.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-tag"]],hostAttrs:[1,"ant-tag"],hostVars:10,hostBindings:function(e,i){1&e&&t.NdJ("click",function(){return i.updateCheckedStatus()}),2&e&&(t.Udp("background-color",i.isPresetColor?"":i.nzColor),t.ekj("ant-tag-has-color",i.nzColor&&!i.isPresetColor)("ant-tag-checkable","checkable"===i.nzMode)("ant-tag-checkable-checked",i.nzChecked)("ant-tag-rtl","rtl"===i.dir))},inputs:{nzMode:"nzMode",nzColor:"nzColor",nzChecked:"nzChecked"},outputs:{nzOnClose:"nzOnClose",nzCheckedChange:"nzCheckedChange"},exportAs:["nzTag"],features:[t.TTD],ngContentSelectors:De,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(e,i){1&e&&(t.F$t(),t.Hsn(0),t.YNc(1,bt,1,0,"span",0)),2&e&&(t.xp6(1),t.Q6J("ngIf","closeable"===i.nzMode))},dependencies:[c.O5,P.Ls],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,k.yF)()],n.prototype,"nzChecked",void 0),n})(),ke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,p.u5,P.PV]}),n})();var Yt=r(4383);const Me=["nzType","avatar"];function Oe(n,o){if(1&n&&(t.TgZ(0,"div",5),t._UZ(1,"nz-skeleton-element",6),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzSize",e.avatar.size||"default")("nzShape",e.avatar.shape||"circle")}}function ve(n,o){if(1&n&&t._UZ(0,"h3",7),2&n){const e=t.oxw(2);t.Udp("width",e.toCSSUnit(e.title.width))}}function Ee(n,o){if(1&n&&t._UZ(0,"li"),2&n){const e=o.index,i=t.oxw(3);t.Udp("width",i.toCSSUnit(i.widthList[e]))}}function Ae(n,o){if(1&n&&(t.TgZ(0,"ul",8),t.YNc(1,Ee,1,2,"li",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.rowsList)}}function Pe(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Oe,2,2,"div",1),t.TgZ(2,"div",2),t.YNc(3,ve,1,2,"h3",3),t.YNc(4,Ae,2,1,"ul",4),t.qZA(),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!!e.nzAvatar),t.xp6(2),t.Q6J("ngIf",!!e.nzTitle),t.xp6(1),t.Q6J("ngIf",!!e.nzParagraph)}}function ye(n,o){1&n&&(t.ynx(0),t.Hsn(1),t.BQk())}const Se=["*"];let be=(()=>{class n{constructor(){this.nzActive=!1,this.nzBlock=!1}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=t.lG2({type:n,selectors:[["nz-skeleton-element"]],hostAttrs:[1,"ant-skeleton","ant-skeleton-element"],hostVars:4,hostBindings:function(e,i){2&e&&t.ekj("ant-skeleton-active",i.nzActive)("ant-skeleton-block",i.nzBlock)},inputs:{nzActive:"nzActive",nzType:"nzType",nzBlock:"nzBlock"}}),(0,T.gn)([(0,k.yF)()],n.prototype,"nzBlock",void 0),n})(),Fe=(()=>{class n{constructor(){this.nzShape="circle",this.nzSize="default",this.styleMap={}}ngOnChanges(e){if(e.nzSize&&"number"==typeof this.nzSize){const i=`${this.nzSize}px`;this.styleMap={width:i,height:i,"line-height":i}}else this.styleMap={}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-skeleton-element","nzType","avatar"]],inputs:{nzShape:"nzShape",nzSize:"nzSize"},features:[t.TTD],attrs:Me,decls:1,vars:9,consts:[[1,"ant-skeleton-avatar",3,"ngStyle"]],template:function(e,i){1&e&&t._UZ(0,"span",0),2&e&&(t.ekj("ant-skeleton-avatar-square","square"===i.nzShape)("ant-skeleton-avatar-circle","circle"===i.nzShape)("ant-skeleton-avatar-lg","large"===i.nzSize)("ant-skeleton-avatar-sm","small"===i.nzSize),t.Q6J("ngStyle",i.styleMap))},dependencies:[c.PC],encapsulation:2,changeDetection:0}),n})(),we=(()=>{class n{constructor(e,i,a){this.cdr=e,this.nzActive=!1,this.nzLoading=!0,this.nzRound=!1,this.nzTitle=!0,this.nzAvatar=!1,this.nzParagraph=!0,this.rowsList=[],this.widthList=[],i.addClass(a.nativeElement,"ant-skeleton")}toCSSUnit(e=""){return(0,k.WX)(e)}getTitleProps(){const e=!!this.nzAvatar,i=!!this.nzParagraph;let a="";return!e&&i?a="38%":e&&i&&(a="50%"),{width:a,...this.getProps(this.nzTitle)}}getAvatarProps(){return{shape:this.nzTitle&&!this.nzParagraph?"square":"circle",size:"large",...this.getProps(this.nzAvatar)}}getParagraphProps(){const e=!!this.nzAvatar,i=!!this.nzTitle,a={};return(!e||!i)&&(a.width="61%"),a.rows=!e&&i?3:2,{...a,...this.getProps(this.nzParagraph)}}getProps(e){return e&&"object"==typeof e?e:{}}getWidthList(){const{width:e,rows:i}=this.paragraph;let a=[];return e&&Array.isArray(e)?a=e:e&&!Array.isArray(e)&&(a=[],a[i-1]=e),a}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(e){(e.nzTitle||e.nzAvatar||e.nzParagraph)&&this.updateProps()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-skeleton"]],hostVars:6,hostBindings:function(e,i){2&e&&t.ekj("ant-skeleton-with-avatar",!!i.nzAvatar)("ant-skeleton-active",i.nzActive)("ant-skeleton-round",!!i.nzRound)},inputs:{nzActive:"nzActive",nzLoading:"nzLoading",nzRound:"nzRound",nzTitle:"nzTitle",nzAvatar:"nzAvatar",nzParagraph:"nzParagraph"},exportAs:["nzSkeleton"],features:[t.TTD],ngContentSelectors:Se,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(e,i){1&e&&(t.F$t(),t.YNc(0,Pe,5,3,"ng-container",0),t.YNc(1,ye,2,0,"ng-container",0)),2&e&&(t.Q6J("ngIf",i.nzLoading),t.xp6(1),t.Q6J("ngIf",!i.nzLoading))},dependencies:[c.sg,c.O5,be,Fe],encapsulation:2,changeDetection:0}),n})(),qt=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez]}),n})();var it=r(7570),Ft=r(1243),j=r(9562),At=r(6616),K=r(5156),R=r(6704),V=r(5635),$t=r(8213),Ie=r(4903),Ne=r(8184),U=r(6287),Ze=r(1691),Be=r(2687),Ue=r(1811);let Ye=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,At.sL,Ne.U8,Ue.YI,P.PV,U.T,Ze.e4,Ie.g,it.cg,Be.rt]}),n})();var Pt=r(8521),jt=r(2577),Vt=r(4788),Ht=r(5681),qe=r(2539),b=r(2536);function $e(n,o){1&n&&t.GkF(0)}function je(n,o){if(1&n&&(t.ynx(0),t.YNc(1,$e,1,0,"ng-container",9),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzIcon)}}function Ve(n,o){if(1&n&&t._UZ(0,"span",10),2&n){const e=t.oxw(3);t.Q6J("nzType",e.nzIconType||e.inferredIconType)("nzTheme",e.iconTheme)}}function He(n,o){if(1&n&&(t.TgZ(0,"div",6),t.YNc(1,je,2,1,"ng-container",7),t.YNc(2,Ve,1,2,"ng-template",null,8,t.W1O),t.qZA()),2&n){const e=t.MAs(3),i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",i.nzIcon)("ngIfElse",e)}}function Xe(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(4);t.xp6(1),t.Oqu(e.nzMessage)}}function tn(n,o){if(1&n&&(t.TgZ(0,"span",14),t.YNc(1,Xe,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzMessage)}}function en(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(4);t.xp6(1),t.Oqu(e.nzDescription)}}function nn(n,o){if(1&n&&(t.TgZ(0,"span",15),t.YNc(1,en,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzDescription)}}function on(n,o){if(1&n&&(t.TgZ(0,"div",11),t.YNc(1,tn,2,1,"span",12),t.YNc(2,nn,2,1,"span",13),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",e.nzMessage),t.xp6(1),t.Q6J("ngIf",e.nzDescription)}}function an(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.nzAction)}}function sn(n,o){if(1&n&&(t.TgZ(0,"div",16),t.YNc(1,an,2,1,"ng-container",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzAction)}}function rn(n,o){1&n&&t._UZ(0,"span",19)}function ln(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"span",20),t._uU(2),t.qZA(),t.BQk()),2&n){const e=t.oxw(4);t.xp6(2),t.Oqu(e.nzCloseText)}}function cn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,ln,3,1,"ng-container",9),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzCloseText)}}function _n(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.closeAlert())}),t.YNc(1,rn,1,0,"ng-template",null,18,t.W1O),t.YNc(3,cn,2,1,"ng-container",7),t.qZA()}if(2&n){const e=t.MAs(2),i=t.oxw(2);t.xp6(3),t.Q6J("ngIf",i.nzCloseText)("ngIfElse",e)}}function un(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",1),t.NdJ("@slideAlertMotion.done",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.onFadeAnimationDone())}),t.YNc(1,He,4,2,"div",2),t.YNc(2,on,3,2,"div",3),t.YNc(3,sn,2,1,"div",4),t.YNc(4,_n,4,2,"button",5),t.qZA()}if(2&n){const e=t.oxw();t.ekj("ant-alert-rtl","rtl"===e.dir)("ant-alert-success","success"===e.nzType)("ant-alert-info","info"===e.nzType)("ant-alert-warning","warning"===e.nzType)("ant-alert-error","error"===e.nzType)("ant-alert-no-icon",!e.nzShowIcon)("ant-alert-banner",e.nzBanner)("ant-alert-closable",e.nzCloseable)("ant-alert-with-description",!!e.nzDescription),t.Q6J("@.disabled",e.nzNoAnimation)("@slideAlertMotion",void 0),t.xp6(1),t.Q6J("ngIf",e.nzShowIcon),t.xp6(1),t.Q6J("ngIf",e.nzMessage||e.nzDescription),t.xp6(1),t.Q6J("ngIf",e.nzAction),t.xp6(1),t.Q6J("ngIf",e.nzCloseable||e.nzCloseText)}}let pn=(()=>{class n{constructor(e,i,a){this.nzConfigService=e,this.cdr=i,this.directionality=a,this._nzModuleName="alert",this.nzAction=null,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.nzIcon=null,this.nzOnClose=new t.vpe,this.closed=!1,this.iconTheme="fill",this.inferredIconType="info-circle",this.dir="ltr",this.isTypeSet=!1,this.isShowIconSet=!1,this.destroy$=new F.x,this.nzConfigService.getConfigChangeEventForComponent("alert").pipe((0,y.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe((0,y.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}closeAlert(){this.closed=!0}onFadeAnimationDone(){this.closed&&this.nzOnClose.emit(!0)}ngOnChanges(e){const{nzShowIcon:i,nzDescription:a,nzType:s,nzBanner:d}=e;if(i&&(this.isShowIconSet=!0),s)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"}a&&(this.iconTheme=this.nzDescription?"outline":"fill"),d&&(this.isTypeSet||(this.nzType="warning"),this.isShowIconSet||(this.nzShowIcon=!0))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.jY),t.Y36(t.sBO),t.Y36(S.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-alert"]],inputs:{nzAction:"nzAction",nzCloseText:"nzCloseText",nzIconType:"nzIconType",nzMessage:"nzMessage",nzDescription:"nzDescription",nzType:"nzType",nzCloseable:"nzCloseable",nzShowIcon:"nzShowIcon",nzBanner:"nzBanner",nzNoAnimation:"nzNoAnimation",nzIcon:"nzIcon"},outputs:{nzOnClose:"nzOnClose"},exportAs:["nzAlert"],features:[t.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"],["class","ant-alert-icon",4,"ngIf"],["class","ant-alert-content",4,"ngIf"],["class","ant-alert-action",4,"ngIf"],["type","button","tabindex","0","class","ant-alert-close-icon",3,"click",4,"ngIf"],[1,"ant-alert-icon"],[4,"ngIf","ngIfElse"],["iconDefaultTemplate",""],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType","nzTheme"],[1,"ant-alert-content"],["class","ant-alert-message",4,"ngIf"],["class","ant-alert-description",4,"ngIf"],[1,"ant-alert-message"],[1,"ant-alert-description"],[1,"ant-alert-action"],["type","button","tabindex","0",1,"ant-alert-close-icon",3,"click"],["closeDefaultTemplate",""],["nz-icon","","nzType","close"],[1,"ant-alert-close-text"]],template:function(e,i){1&e&&t.YNc(0,un,5,24,"div",0),2&e&&t.Q6J("ngIf",!i.closed)},dependencies:[c.O5,P.Ls,U.f],encapsulation:2,data:{animation:[qe.Rq]},changeDetection:0}),(0,T.gn)([(0,b.oS)(),(0,k.yF)()],n.prototype,"nzCloseable",void 0),(0,T.gn)([(0,b.oS)(),(0,k.yF)()],n.prototype,"nzShowIcon",void 0),(0,T.gn)([(0,k.yF)()],n.prototype,"nzBanner",void 0),(0,T.gn)([(0,k.yF)()],n.prototype,"nzNoAnimation",void 0),n})(),gn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,P.PV,U.T]}),n})();var at=r(7131),wt=r(8e3);function dn(n,o){if(1&n&&(t.ynx(0),t._UZ(1,"span",8),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("nzType",e.icon)}}function mn(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(4);t.xp6(1),t.hij(" ",e(i.nzPercent)," ")}}const hn=function(n){return{$implicit:n}};function fn(n,o){if(1&n&&t.YNc(0,mn,2,1,"ng-container",9),2&n){const e=t.oxw(3);t.Q6J("nzStringTemplateOutlet",e.formatter)("nzStringTemplateOutletContext",t.VKq(2,hn,e.nzPercent))}}function Cn(n,o){if(1&n&&(t.TgZ(0,"span",5),t.YNc(1,dn,2,1,"ng-container",6),t.YNc(2,fn,1,4,"ng-template",null,7,t.W1O),t.qZA()),2&n){const e=t.MAs(3),i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",("exception"===i.status||"success"===i.status)&&!i.nzFormat)("ngIfElse",e)}}function zn(n,o){if(1&n&&t.YNc(0,Cn,4,2,"span",4),2&n){const e=t.oxw();t.Q6J("ngIf",e.nzShowInfo)}}function Tn(n,o){if(1&n&&t._UZ(0,"div",17),2&n){const e=t.oxw(4);t.Udp("width",e.nzSuccessPercent,"%")("border-radius","round"===e.nzStrokeLinecap?"100px":"0")("height",e.strokeWidth,"px")}}function xn(n,o){if(1&n&&(t.TgZ(0,"div",13)(1,"div",14),t._UZ(2,"div",15),t.YNc(3,Tn,1,6,"div",16),t.qZA()()),2&n){const e=t.oxw(3);t.xp6(2),t.Udp("width",e.nzPercent,"%")("border-radius","round"===e.nzStrokeLinecap?"100px":"0")("background",e.isGradient?null:e.nzStrokeColor)("background-image",e.isGradient?e.lineGradient:null)("height",e.strokeWidth,"px"),t.xp6(1),t.Q6J("ngIf",e.nzSuccessPercent||0===e.nzSuccessPercent)}}function Dn(n,o){}function kn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,xn,4,11,"div",11),t.YNc(2,Dn,0,0,"ng-template",12),t.BQk()),2&n){const e=t.oxw(2),i=t.MAs(1);t.xp6(1),t.Q6J("ngIf",!e.isSteps),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function Mn(n,o){1&n&&t._UZ(0,"div",20),2&n&&t.Q6J("ngStyle",o.$implicit)}function On(n,o){}function vn(n,o){if(1&n&&(t.TgZ(0,"div",18),t.YNc(1,Mn,1,1,"div",19),t.YNc(2,On,0,0,"ng-template",12),t.qZA()),2&n){const e=t.oxw(2),i=t.MAs(1);t.xp6(1),t.Q6J("ngForOf",e.steps),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function En(n,o){if(1&n&&(t.TgZ(0,"div"),t.YNc(1,kn,3,2,"ng-container",2),t.YNc(2,vn,3,2,"div",10),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!e.isSteps),t.xp6(1),t.Q6J("ngIf",e.isSteps)}}function An(n,o){if(1&n&&(t.O4$(),t._UZ(0,"stop")),2&n){const e=o.$implicit;t.uIk("offset",e.offset)("stop-color",e.color)}}function Pn(n,o){if(1&n&&(t.O4$(),t.TgZ(0,"defs")(1,"linearGradient",24),t.YNc(2,An,1,2,"stop",25),t.qZA()()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("id","gradient-"+e.gradientId),t.xp6(1),t.Q6J("ngForOf",e.circleGradient)}}function yn(n,o){if(1&n&&(t.O4$(),t._UZ(0,"path",26)),2&n){const e=o.$implicit,i=t.oxw(2);t.Q6J("ngStyle",e.strokePathStyle),t.uIk("d",i.pathString)("stroke-linecap",i.nzStrokeLinecap)("stroke",e.stroke)("stroke-width",i.nzPercent?i.strokeWidth:0)}}function Sn(n,o){1&n&&t.O4$()}function bn(n,o){if(1&n&&(t.TgZ(0,"div",14),t.O4$(),t.TgZ(1,"svg",21),t.YNc(2,Pn,3,2,"defs",2),t._UZ(3,"path",22),t.YNc(4,yn,1,5,"path",23),t.qZA(),t.YNc(5,Sn,0,0,"ng-template",12),t.qZA()),2&n){const e=t.oxw(),i=t.MAs(1);t.Udp("width",e.nzWidth,"px")("height",e.nzWidth,"px")("font-size",.15*e.nzWidth+6,"px"),t.ekj("ant-progress-circle-gradient",e.isGradient),t.xp6(2),t.Q6J("ngIf",e.isGradient),t.xp6(1),t.Q6J("ngStyle",e.trailPathStyle),t.uIk("stroke-width",e.strokeWidth)("d",e.pathString),t.xp6(1),t.Q6J("ngForOf",e.progressCirclePath)("ngForTrackBy",e.trackByFn),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}const te=n=>{let o=[];return Object.keys(n).forEach(e=>{const i=n[e],a=function Fn(n){return+n.replace("%","")}(e);isNaN(a)||o.push({key:a,value:i})}),o=o.sort((e,i)=>e.key-i.key),o};let Nn=0;const ee="progress",Zn=new Map([["success","check"],["exception","close"]]),Bn=new Map([["normal","#108ee9"],["exception","#ff5500"],["success","#87d068"]]),Un=n=>`${n}%`;let ne=(()=>{class n{constructor(e,i,a){this.cdr=e,this.nzConfigService=i,this.directionality=a,this._nzModuleName=ee,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=Nn++,this.progressCirclePath=[],this.trailPathStyle=null,this.dir="ltr",this.trackByFn=s=>`${s}`,this.cachedStatus="normal",this.inferredStatus="normal",this.destroy$=new F.x}get formatter(){return this.nzFormat||Un}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(e){const{nzSteps:i,nzGapPosition:a,nzStrokeLinecap:s,nzStrokeColor:d,nzGapDegree:C,nzType:z,nzStatus:M,nzPercent:A,nzSuccessPercent:l,nzStrokeWidth:B}=e;M&&(this.cachedStatus=this.nzStatus||this.cachedStatus),(A||l)&&(parseInt(this.nzPercent.toString(),10)>=100?((0,k.DX)(this.nzSuccessPercent)&&this.nzSuccessPercent>=100||void 0===this.nzSuccessPercent)&&(this.inferredStatus="success"):this.inferredStatus=this.cachedStatus),(M||A||l||d)&&this.updateIcon(),d&&this.setStrokeColor(),(a||s||C||z||A||d||d)&&this.getCirclePaths(),(A||i||B)&&(this.isSteps=this.nzSteps>0,this.isSteps&&this.getSteps())}ngOnInit(){this.nzConfigService.getConfigChangeEventForComponent(ee).pipe((0,y.R)(this.destroy$)).subscribe(()=>{this.updateIcon(),this.setStrokeColor(),this.getCirclePaths()}),this.directionality.change?.pipe((0,y.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}updateIcon(){const e=Zn.get(this.status);this.icon=e?e+(this.isCircleStyle?"-o":"-circle-fill"):""}getSteps(){const e=Math.floor(this.nzSteps*(this.nzPercent/100)),i="small"===this.nzSize?2:14,a=[];for(let s=0;s<this.nzSteps;s++){let d;s<=e-1&&(d=this.nzStrokeColor),a.push({backgroundColor:`${d}`,width:`${i}px`,height:`${this.strokeWidth}px`})}this.steps=a}getCirclePaths(){if(!this.isCircleStyle)return;const e=(0,k.DX)(this.nzSuccessPercent)?[this.nzSuccessPercent,this.nzPercent]:[this.nzPercent],i=50-this.strokeWidth/2,s=2*Math.PI*i,d=this.nzGapDegree||("circle"===this.nzType?0:75);let C=0,z=-i,M=0,A=-2*i;switch(this.nzGapPosition||("circle"===this.nzType?"top":"bottom")){case"left":C=-i,z=0,M=2*i,A=0;break;case"right":C=i,z=0,M=-2*i,A=0;break;case"bottom":z=i,A=2*i}this.pathString=`M 50,50 m ${C},${z}\n       a ${i},${i} 0 1 1 ${M},${-A}\n       a ${i},${i} 0 1 1 ${-M},${A}`,this.trailPathStyle={strokeDasharray:`${s-d}px ${s}px`,strokeDashoffset:`-${d/2}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s"},this.progressCirclePath=e.map((l,B)=>{const I=2===e.length&&0===B;return{stroke:this.isGradient&&!I?`url(#gradient-${this.gradientId})`:null,strokePathStyle:{stroke:this.isGradient?null:I?Bn.get("success"):this.nzStrokeColor,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s",strokeDasharray:`${(l||0)/100*(s-d)}px ${s}px`,strokeDashoffset:`-${d/2}px`}}}).reverse()}setStrokeColor(){const e=this.nzStrokeColor,i=this.isGradient=!!e&&"string"!=typeof e;i&&!this.isCircleStyle?this.lineGradient=(n=>{const{from:o="#1890ff",to:e="#1890ff",direction:i="to right",...a}=n;return 0!==Object.keys(a).length?`linear-gradient(${i}, ${te(a).map(({key:d,value:C})=>`${C} ${d}%`).join(", ")})`:`linear-gradient(${i}, ${o}, ${e})`})(e):i&&this.isCircleStyle?this.circleGradient=(n=>te(this.nzStrokeColor).map(({key:o,value:e})=>({offset:`${o}%`,color:e})))():(this.lineGradient=null,this.circleGradient=[])}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(b.jY),t.Y36(S.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-progress"]],inputs:{nzShowInfo:"nzShowInfo",nzWidth:"nzWidth",nzStrokeColor:"nzStrokeColor",nzSize:"nzSize",nzFormat:"nzFormat",nzSuccessPercent:"nzSuccessPercent",nzPercent:"nzPercent",nzStrokeWidth:"nzStrokeWidth",nzGapDegree:"nzGapDegree",nzStatus:"nzStatus",nzType:"nzType",nzGapPosition:"nzGapPosition",nzStrokeLinecap:"nzStrokeLinecap",nzSteps:"nzSteps"},exportAs:["nzProgress"],features:[t.TTD],decls:5,vars:17,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(e,i){1&e&&(t.YNc(0,zn,1,1,"ng-template",null,0,t.W1O),t.TgZ(2,"div",1),t.YNc(3,En,3,2,"div",2),t.YNc(4,bn,6,15,"div",3),t.qZA()),2&e&&(t.xp6(2),t.ekj("ant-progress-line","line"===i.nzType)("ant-progress-small","small"===i.nzSize)("ant-progress-default","default"===i.nzSize)("ant-progress-show-info",i.nzShowInfo)("ant-progress-circle",i.isCircleStyle)("ant-progress-steps",i.isSteps)("ant-progress-rtl","rtl"===i.dir),t.Q6J("ngClass","ant-progress ant-progress-status-"+i.status),t.xp6(1),t.Q6J("ngIf","line"===i.nzType),t.xp6(1),t.Q6J("ngIf",i.isCircleStyle))},dependencies:[c.mk,c.sg,c.O5,c.tP,c.PC,P.Ls,U.f],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,b.oS)()],n.prototype,"nzShowInfo",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzStrokeColor",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzSize",void 0),(0,T.gn)([(0,k.Rn)()],n.prototype,"nzSuccessPercent",void 0),(0,T.gn)([(0,k.Rn)()],n.prototype,"nzPercent",void 0),(0,T.gn)([(0,b.oS)(),(0,k.Rn)()],n.prototype,"nzStrokeWidth",void 0),(0,T.gn)([(0,b.oS)(),(0,k.Rn)()],n.prototype,"nzGapDegree",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzGapPosition",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzStrokeLinecap",void 0),(0,T.gn)([(0,k.Rn)()],n.prototype,"nzSteps",void 0),n})(),Rn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,P.PV,U.T]}),n})();var L=r(6675),oe=r(3353);let Ln=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[c.ez]}),n})();const Jn=function(n){return{$implicit:n}};function Qn(n,o){if(1&n&&t.GkF(0,3),2&n){const e=t.oxw();t.Q6J("ngTemplateOutlet",e.nzValueTemplate)("ngTemplateOutletContext",t.VKq(2,Jn,e.nzValue))}}function Kn(n,o){if(1&n&&(t.TgZ(0,"span",6),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.displayInt)}}function Gn(n,o){if(1&n&&(t.TgZ(0,"span",7),t._uU(1),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.displayDecimal)}}function Wn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Kn,2,1,"span",4),t.YNc(2,Gn,2,1,"span",5),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.displayInt),t.xp6(1),t.Q6J("ngIf",e.displayDecimal)}}function Yn(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.nzTitle)}}function qn(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.nzPrefix)}}function $n(n,o){if(1&n&&(t.TgZ(0,"span",6),t.YNc(1,qn,2,1,"ng-container",1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzPrefix)}}function jn(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.nzSuffix)}}function Vn(n,o){if(1&n&&(t.TgZ(0,"span",7),t.YNc(1,jn,2,1,"ng-container",1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzSuffix)}}let Hn=(()=>{class n{constructor(e){this.locale_id=e,this.displayInt="",this.displayDecimal=""}ngOnChanges(){this.formatNumber()}formatNumber(){const e="number"==typeof this.nzValue?".":(0,c.dv)(this.locale_id,c.wE.Decimal),i=String(this.nzValue),[a,s]=i.split(e);this.displayInt=a,this.displayDecimal=s?`${e}${s}`:""}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.soG))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-statistic-number"]],inputs:{nzValue:"nzValue",nzValueTemplate:"nzValueTemplate"},exportAs:["nzStatisticNumber"],features:[t.TTD],decls:3,vars:2,consts:[[1,"ant-statistic-content-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["class","ant-statistic-content-value-int",4,"ngIf"],["class","ant-statistic-content-value-decimal",4,"ngIf"],[1,"ant-statistic-content-value-int"],[1,"ant-statistic-content-value-decimal"]],template:function(e,i){1&e&&(t.TgZ(0,"span",0),t.YNc(1,Qn,1,4,"ng-container",1),t.YNc(2,Wn,3,2,"ng-container",2),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngIf",i.nzValueTemplate),t.xp6(1),t.Q6J("ngIf",!i.nzValueTemplate))},dependencies:[c.O5,c.tP],encapsulation:2,changeDetection:0}),n})(),ie=(()=>{class n{constructor(e,i){this.cdr=e,this.directionality=i,this.nzValueStyle={},this.dir="ltr",this.destroy$=new F.x}ngOnInit(){this.directionality.change?.pipe((0,y.R)(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(S.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-statistic"]],hostAttrs:[1,"ant-statistic"],hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-statistic-rtl","rtl"===i.dir)},inputs:{nzPrefix:"nzPrefix",nzSuffix:"nzSuffix",nzTitle:"nzTitle",nzValue:"nzValue",nzValueStyle:"nzValueStyle",nzValueTemplate:"nzValueTemplate"},exportAs:["nzStatistic"],decls:6,vars:6,consts:[[1,"ant-statistic-title"],[4,"nzStringTemplateOutlet"],[1,"ant-statistic-content",3,"ngStyle"],["class","ant-statistic-content-prefix",4,"ngIf"],[3,"nzValue","nzValueTemplate"],["class","ant-statistic-content-suffix",4,"ngIf"],[1,"ant-statistic-content-prefix"],[1,"ant-statistic-content-suffix"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t.YNc(1,Yn,2,1,"ng-container",1),t.qZA(),t.TgZ(2,"div",2),t.YNc(3,$n,2,1,"span",3),t._UZ(4,"nz-statistic-number",4),t.YNc(5,Vn,2,1,"span",5),t.qZA()),2&e&&(t.xp6(1),t.Q6J("nzStringTemplateOutlet",i.nzTitle),t.xp6(1),t.Q6J("ngStyle",i.nzValueStyle),t.xp6(1),t.Q6J("ngIf",i.nzPrefix),t.xp6(1),t.Q6J("nzValue",i.nzValue)("nzValueTemplate",i.nzValueTemplate),t.xp6(1),t.Q6J("ngIf",i.nzSuffix))},dependencies:[c.O5,c.PC,U.f,Hn],encapsulation:2,changeDetection:0}),n})(),Xn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,oe.ud,U.T,Ln]}),n})();var ae=r(6451),to=r(8675),st=r(3900),eo=r(3601),v=r(8505),no=r(8932),It=r(3303);function oo(n,o){1&n&&t.Hsn(0)}const io=["*"];function ao(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.nzTitle)}}function so(n,o){if(1&n&&(t.TgZ(0,"div",6),t.YNc(1,ao,2,1,"ng-container",7),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzTitle)}}function ro(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.nzExtra)}}function lo(n,o){if(1&n&&(t.TgZ(0,"div",8),t.YNc(1,ro,2,1,"ng-container",7),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExtra)}}function co(n,o){if(1&n&&(t.TgZ(0,"div",3),t.YNc(1,so,2,1,"div",4),t.YNc(2,lo,2,1,"div",5),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",e.nzTitle),t.xp6(1),t.Q6J("ngIf",e.nzExtra)}}function _o(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function uo(n,o){}function po(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",14),t.YNc(4,_o,2,1,"ng-container",7),t.qZA(),t.TgZ(5,"span",15),t.YNc(6,uo,0,0,"ng-template",16),t.qZA()()(),t.BQk()),2&n){const e=t.oxw().$implicit,i=t.oxw(3);t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(2),t.ekj("ant-descriptions-item-no-colon",!i.nzColon),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title),t.xp6(2),t.Q6J("ngTemplateOutlet",e.content)}}function go(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function mo(n,o){}function ho(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",14),t.YNc(2,go,2,1,"ng-container",7),t.qZA(),t.TgZ(3,"td",17),t.YNc(4,mo,0,0,"ng-template",16),t.qZA(),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(2),t.Q6J("nzStringTemplateOutlet",e.title),t.xp6(1),t.Q6J("colSpan",2*e.span-1),t.xp6(1),t.Q6J("ngTemplateOutlet",e.content)}}function fo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,po,7,5,"ng-container",2),t.YNc(2,ho,5,3,"ng-container",2),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("ngIf",!e.nzBordered),t.xp6(1),t.Q6J("ngIf",e.nzBordered)}}function Co(n,o){if(1&n&&(t.TgZ(0,"tr",10),t.YNc(1,fo,3,2,"ng-container",11),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("ngForOf",e)}}function zo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Co,2,1,"tr",9),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function To(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function xo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",14),t.YNc(4,To,2,1,"ng-container",7),t.qZA()()(),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(4);t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(2),t.ekj("ant-descriptions-item-no-colon",!i.nzColon),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title)}}function Do(n,o){}function ko(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",12)(2,"div",13)(3,"span",15),t.YNc(4,Do,0,0,"ng-template",16),t.qZA()()(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(3),t.Q6J("ngTemplateOutlet",e.content)}}function Mo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",10),t.YNc(2,xo,5,4,"ng-container",11),t.qZA(),t.TgZ(3,"tr",10),t.YNc(4,ko,5,2,"ng-container",11),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(2),t.Q6J("ngForOf",e),t.xp6(2),t.Q6J("ngForOf",e)}}function Oo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Mo,5,2,"ng-container",11),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function vo(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.hij(" ",e.title," ")}}function Eo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",18),t.YNc(2,vo,2,1,"ng-container",7),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.title)}}function Ao(n,o){}function Po(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"td",17),t.YNc(2,Ao,0,0,"ng-template",16),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("colSpan",e.span),t.xp6(1),t.Q6J("ngTemplateOutlet",e.content)}}function yo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"tr",10),t.YNc(2,Eo,3,2,"ng-container",11),t.qZA(),t.TgZ(3,"tr",10),t.YNc(4,Po,3,2,"ng-container",11),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(2),t.Q6J("ngForOf",e),t.xp6(2),t.Q6J("ngForOf",e)}}function So(n,o){if(1&n&&(t.ynx(0),t.YNc(1,yo,5,2,"ng-container",11),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",e.itemMatrix)}}function bo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Oo,2,1,"ng-container",2),t.YNc(2,So,2,1,"ng-container",2),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngIf",!e.nzBordered),t.xp6(1),t.Q6J("ngIf",e.nzBordered)}}let Nt=(()=>{class n{constructor(){this.nzSpan=1,this.nzTitle="",this.inputChange$=new F.x}ngOnChanges(){this.inputChange$.next()}ngOnDestroy(){this.inputChange$.complete()}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-descriptions-item"]],viewQuery:function(e,i){if(1&e&&t.Gf(t.Rgc,7),2&e){let a;t.iGM(a=t.CRH())&&(i.content=a.first)}},inputs:{nzSpan:"nzSpan",nzTitle:"nzTitle"},exportAs:["nzDescriptionsItem"],features:[t.TTD],ngContentSelectors:io,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.YNc(0,oo,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),(0,T.gn)([(0,k.Rn)()],n.prototype,"nzSpan",void 0),n})();const wo={xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};let se=(()=>{class n{constructor(e,i,a,s){this.nzConfigService=e,this.cdr=i,this.breakpointService=a,this.directionality=s,this._nzModuleName="descriptions",this.nzBordered=!1,this.nzLayout="horizontal",this.nzColumn=wo,this.nzSize="default",this.nzTitle="",this.nzColon=!0,this.itemMatrix=[],this.realColumn=3,this.dir="ltr",this.breakpoint=It.G_.md,this.destroy$=new F.x}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe((0,y.R)(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){e.nzColumn&&this.prepareMatrix()}ngAfterContentInit(){const e=this.items.changes.pipe((0,to.O)(this.items),(0,y.R)(this.destroy$));(0,ae.T)(e,e.pipe((0,st.w)(()=>(0,ae.T)(...this.items.map(i=>i.inputChange$)).pipe((0,eo.e)(16)))),this.breakpointService.subscribe(It.WV).pipe((0,v.b)(i=>this.breakpoint=i))).pipe((0,y.R)(this.destroy$)).subscribe(()=>{this.prepareMatrix(),this.cdr.markForCheck()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}prepareMatrix(){if(!this.items)return;let e=[],i=0;const a=this.realColumn=this.getColumn(),s=this.items.toArray(),d=s.length,C=[],z=()=>{C.push(e),e=[],i=0};for(let M=0;M<d;M++){const A=s[M],{nzTitle:l,content:B,nzSpan:I}=A;i+=I,i>=a?(i>a&&(0,no.ZK)(`"nzColumn" is ${a} but we have row length ${i}`),e.push({title:l,content:B,span:a-(i-I)}),z()):M===d-1?(e.push({title:l,content:B,span:a-(i-I)}),z()):e.push({title:l,content:B,span:I})}this.itemMatrix=C}getColumn(){return"number"!=typeof this.nzColumn?this.nzColumn[this.breakpoint]:this.nzColumn}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(b.jY),t.Y36(t.sBO),t.Y36(It.r3),t.Y36(S.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-descriptions"]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,Nt,4),2&e){let s;t.iGM(s=t.CRH())&&(i.items=s)}},hostAttrs:[1,"ant-descriptions"],hostVars:8,hostBindings:function(e,i){2&e&&t.ekj("ant-descriptions-bordered",i.nzBordered)("ant-descriptions-middle","middle"===i.nzSize)("ant-descriptions-small","small"===i.nzSize)("ant-descriptions-rtl","rtl"===i.dir)},inputs:{nzBordered:"nzBordered",nzLayout:"nzLayout",nzColumn:"nzColumn",nzSize:"nzSize",nzTitle:"nzTitle",nzExtra:"nzExtra",nzColon:"nzColon"},exportAs:["nzDescriptions"],features:[t.TTD],decls:6,vars:3,consts:[["class","ant-descriptions-header",4,"ngIf"],[1,"ant-descriptions-view"],[4,"ngIf"],[1,"ant-descriptions-header"],["class","ant-descriptions-title",4,"ngIf"],["class","ant-descriptions-extra",4,"ngIf"],[1,"ant-descriptions-title"],[4,"nzStringTemplateOutlet"],[1,"ant-descriptions-extra"],["class","ant-descriptions-row",4,"ngFor","ngForOf"],[1,"ant-descriptions-row"],[4,"ngFor","ngForOf"],[1,"ant-descriptions-item",3,"colSpan"],[1,"ant-descriptions-item-container"],[1,"ant-descriptions-item-label"],[1,"ant-descriptions-item-content"],[3,"ngTemplateOutlet"],[1,"ant-descriptions-item-content",3,"colSpan"],[1,"ant-descriptions-item-label",3,"colSpan"]],template:function(e,i){1&e&&(t.YNc(0,co,3,2,"div",0),t.TgZ(1,"div",1)(2,"table")(3,"tbody"),t.YNc(4,zo,2,1,"ng-container",2),t.YNc(5,bo,3,2,"ng-container",2),t.qZA()()()),2&e&&(t.Q6J("ngIf",i.nzTitle||i.nzExtra),t.xp6(4),t.Q6J("ngIf","horizontal"===i.nzLayout),t.xp6(1),t.Q6J("ngIf","vertical"===i.nzLayout))},dependencies:[c.sg,c.O5,c.tP,U.f],encapsulation:2,changeDetection:0}),(0,T.gn)([(0,k.yF)(),(0,b.oS)()],n.prototype,"nzBordered",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzColumn",void 0),(0,T.gn)([(0,b.oS)()],n.prototype,"nzSize",void 0),(0,T.gn)([(0,b.oS)(),(0,k.yF)()],n.prototype,"nzColon",void 0),n})(),Io=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[S.vT,c.ez,U.T,oe.ud]}),n})();var yt=r(5861),w=r(9646),St=r(515),re=r(4986),No=r(9751),Zo=r(4482),le=r(5403),Bo=r(8421);const ce={leading:!0,trailing:!1};var Ro=r(5963);class Zt{constructor(o){this.changes=o}static of(o){return new Zt(o)}notEmpty(o){if(this.changes[o]){const e=this.changes[o].currentValue;if(null!=e)return(0,w.of)(e)}return St.E}has(o){return this.changes[o]?(0,w.of)(this.changes[o].currentValue):St.E}notFirst(o){return this.changes[o]&&!this.changes[o].isFirstChange()?(0,w.of)(this.changes[o].currentValue):St.E}notFirstAndEmpty(o){if(this.changes[o]&&!this.changes[o].isFirstChange()){const e=this.changes[o].currentValue;if(null!=e)return(0,w.of)(e)}return St.E}}const _e=new t.OlP("NGX_ECHARTS_CONFIG");let ue=(()=>{class n{constructor(e,i,a){this.el=i,this.ngZone=a,this.options=null,this.theme=null,this.initOpts=null,this.merge=null,this.autoResize=!0,this.loading=!1,this.loadingType="default",this.loadingOpts=null,this.chartInit=new t.vpe,this.optionsError=new t.vpe,this.chartClick=this.createLazyEvent("click"),this.chartDblClick=this.createLazyEvent("dblclick"),this.chartMouseDown=this.createLazyEvent("mousedown"),this.chartMouseMove=this.createLazyEvent("mousemove"),this.chartMouseUp=this.createLazyEvent("mouseup"),this.chartMouseOver=this.createLazyEvent("mouseover"),this.chartMouseOut=this.createLazyEvent("mouseout"),this.chartGlobalOut=this.createLazyEvent("globalout"),this.chartContextMenu=this.createLazyEvent("contextmenu"),this.chartLegendSelectChanged=this.createLazyEvent("legendselectchanged"),this.chartLegendSelected=this.createLazyEvent("legendselected"),this.chartLegendUnselected=this.createLazyEvent("legendunselected"),this.chartLegendScroll=this.createLazyEvent("legendscroll"),this.chartDataZoom=this.createLazyEvent("datazoom"),this.chartDataRangeSelected=this.createLazyEvent("datarangeselected"),this.chartTimelineChanged=this.createLazyEvent("timelinechanged"),this.chartTimelinePlayChanged=this.createLazyEvent("timelineplaychanged"),this.chartRestore=this.createLazyEvent("restore"),this.chartDataViewChanged=this.createLazyEvent("dataviewchanged"),this.chartMagicTypeChanged=this.createLazyEvent("magictypechanged"),this.chartPieSelectChanged=this.createLazyEvent("pieselectchanged"),this.chartPieSelected=this.createLazyEvent("pieselected"),this.chartPieUnselected=this.createLazyEvent("pieunselected"),this.chartMapSelectChanged=this.createLazyEvent("mapselectchanged"),this.chartMapSelected=this.createLazyEvent("mapselected"),this.chartMapUnselected=this.createLazyEvent("mapunselected"),this.chartAxisAreaSelected=this.createLazyEvent("axisareaselected"),this.chartFocusNodeAdjacency=this.createLazyEvent("focusnodeadjacency"),this.chartUnfocusNodeAdjacency=this.createLazyEvent("unfocusnodeadjacency"),this.chartBrush=this.createLazyEvent("brush"),this.chartBrushEnd=this.createLazyEvent("brushend"),this.chartBrushSelected=this.createLazyEvent("brushselected"),this.chartRendered=this.createLazyEvent("rendered"),this.chartFinished=this.createLazyEvent("finished"),this.animationFrameID=null,this.resize$=new F.x,this.echarts=e.echarts}ngOnChanges(e){const i=Zt.of(e);i.notFirstAndEmpty("options").subscribe(a=>this.onOptionsChange(a)),i.notFirstAndEmpty("merge").subscribe(a=>this.setOption(a)),i.has("loading").subscribe(a=>this.toggleLoading(!!a)),i.notFirst("theme").subscribe(()=>this.refreshChart())}ngOnInit(){if(!window.ResizeObserver)throw new Error("please install a polyfill for ResizeObserver");this.resizeSub=this.resize$.pipe(function Lo(n,o=re.z,e=ce){const i=(0,Ro.H)(n,o);return function Uo(n,o=ce){return(0,Zo.e)((e,i)=>{const{leading:a,trailing:s}=o;let d=!1,C=null,z=null,M=!1;const A=()=>{z?.unsubscribe(),z=null,s&&(I(),M&&i.complete())},l=()=>{z=null,M&&i.complete()},B=Y=>z=(0,Bo.Xf)(n(Y)).subscribe((0,le.x)(i,A,l)),I=()=>{if(d){d=!1;const Y=C;C=null,i.next(Y),!M&&B(Y)}};e.subscribe((0,le.x)(i,Y=>{d=!0,C=Y,(!z||z.closed)&&(a?I():B(Y))},()=>{M=!0,(!(s&&d&&z)||z.closed)&&i.complete()}))})}(()=>i,e)}(100,re.z,{leading:!1,trailing:!0})).subscribe(()=>this.resize()),this.autoResize&&(this.resizeOb=this.ngZone.runOutsideAngular(()=>new window.ResizeObserver(()=>{this.animationFrameID=window.requestAnimationFrame(()=>this.resize$.next())})),this.resizeOb.observe(this.el.nativeElement))}ngOnDestroy(){window.clearTimeout(this.initChartTimer),this.resizeSub&&this.resizeSub.unsubscribe(),this.animationFrameID&&window.cancelAnimationFrame(this.animationFrameID),this.resizeOb&&this.resizeOb.unobserve(this.el.nativeElement),this.dispose()}ngAfterViewInit(){this.initChartTimer=window.setTimeout(()=>this.initChart())}dispose(){this.chart&&(this.chart.isDisposed()||this.chart.dispose(),this.chart=null)}resize(){this.chart&&this.chart.resize()}toggleLoading(e){this.chart&&(e?this.chart.showLoading(this.loadingType,this.loadingOpts):this.chart.hideLoading())}setOption(e,i){if(this.chart)try{this.chart.setOption(e,i)}catch(a){console.error(a),this.optionsError.emit(a)}}refreshChart(){var e=this;return(0,yt.Z)(function*(){e.dispose(),yield e.initChart()})()}createChart(){const e=this.el.nativeElement;if(window&&window.getComputedStyle){const i=window.getComputedStyle(e,null).getPropertyValue("height");(!i||"0px"===i)&&(!e.style.height||"0px"===e.style.height)&&(e.style.height="400px")}return this.ngZone.runOutsideAngular(()=>("function"==typeof this.echarts?this.echarts:()=>Promise.resolve(this.echarts))().then(({init:a})=>a(e,this.theme,this.initOpts)))}initChart(){var e=this;return(0,yt.Z)(function*(){yield e.onOptionsChange(e.options),e.merge&&e.chart&&e.setOption(e.merge)})()}onOptionsChange(e){var i=this;return(0,yt.Z)(function*(){e&&(i.chart||(i.chart=yield i.createChart(),i.chartInit.emit(i.chart)),i.setOption(i.options,!0))})()}createLazyEvent(e){return this.chartInit.pipe((0,st.w)(i=>new No.y(a=>(i.on(e,s=>this.ngZone.run(()=>a.next(s))),()=>{this.chart&&(this.chart.isDisposed()||i.off(e))}))))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(_e),t.Y36(t.SBq),t.Y36(t.R0b))},n.\u0275dir=t.lG2({type:n,selectors:[["echarts"],["","echarts",""]],inputs:{options:"options",theme:"theme",initOpts:"initOpts",merge:"merge",autoResize:"autoResize",loading:"loading",loadingType:"loadingType",loadingOpts:"loadingOpts"},outputs:{chartInit:"chartInit",optionsError:"optionsError",chartClick:"chartClick",chartDblClick:"chartDblClick",chartMouseDown:"chartMouseDown",chartMouseMove:"chartMouseMove",chartMouseUp:"chartMouseUp",chartMouseOver:"chartMouseOver",chartMouseOut:"chartMouseOut",chartGlobalOut:"chartGlobalOut",chartContextMenu:"chartContextMenu",chartLegendSelectChanged:"chartLegendSelectChanged",chartLegendSelected:"chartLegendSelected",chartLegendUnselected:"chartLegendUnselected",chartLegendScroll:"chartLegendScroll",chartDataZoom:"chartDataZoom",chartDataRangeSelected:"chartDataRangeSelected",chartTimelineChanged:"chartTimelineChanged",chartTimelinePlayChanged:"chartTimelinePlayChanged",chartRestore:"chartRestore",chartDataViewChanged:"chartDataViewChanged",chartMagicTypeChanged:"chartMagicTypeChanged",chartPieSelectChanged:"chartPieSelectChanged",chartPieSelected:"chartPieSelected",chartPieUnselected:"chartPieUnselected",chartMapSelectChanged:"chartMapSelectChanged",chartMapSelected:"chartMapSelected",chartMapUnselected:"chartMapUnselected",chartAxisAreaSelected:"chartAxisAreaSelected",chartFocusNodeAdjacency:"chartFocusNodeAdjacency",chartUnfocusNodeAdjacency:"chartUnfocusNodeAdjacency",chartBrush:"chartBrush",chartBrushEnd:"chartBrushEnd",chartBrushSelected:"chartBrushSelected",chartRendered:"chartRendered",chartFinished:"chartFinished"},exportAs:["echarts"],features:[t.TTD]}),n})(),Jo=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[{provide:_e,useValue:e}]}}static forChild(){return{ngModule:n}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({}),n})();var Qo=r(4466),rt=r(6582),pe=r(7445),ge=r(7188),de=r(7886),lt=r(262),Bt=r(4007),me=r(387),Ut=r(844),Ko=r(5545),Go=r(7512),m=r(2948),Wo=r(8147);class J{transform(o,e){return(0,Wo.G)(o,{base:2,standard:"jedec",...e,output:"string"})}}J.\u0275fac=function(o){return new(o||J)},J.\u0275pipe=t.Yjl({name:"filesize",type:J,pure:!0});class G{transform(o){return o?o.startsWith("/")?o.split("/").pop()??"":o.split("\\").pop()??"":""}}G.\u0275fac=function(o){return new(o||G)},G.\u0275pipe=t.Yjl({name:"filename",type:G,pure:!0});const Yo=new Map([[m.cS.RECORDING,"\u5f55\u5236\u4e2d"],[m.cS.INJECTING,"\u5904\u7406\u4e2d"],[m.cS.REMUXING,"\u5904\u7406\u4e2d"],[m.cS.COMPLETED,"\u5df2\u5b8c\u6210"],[m.cS.MISSING,"\u4e0d\u5b58\u5728"],[m.cS.UNKNOWN,"???"]]);class ct{transform(o){return Yo.get(o)??"\uff1f\uff1f\uff1f"}}function qo(n,o){if(1&n&&(t.TgZ(0,"th",5),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.Q6J("nzSortOrder",e.sortOrder)("nzSortFn",e.sortFn)("nzSortDirections",e.sortDirections)("nzFilters",e.listOfFilter)("nzFilterFn",e.filterFn)("nzFilterMultiple",e.filterMultiple)("nzShowFilter",e.listOfFilter.length>0),t.xp6(1),t.hij(" ",e.name," ")}}function $o(n,o){if(1&n&&(t.TgZ(0,"tr")(1,"td",6),t._uU(2),t.ALo(3,"filename"),t.qZA(),t.TgZ(4,"td",6),t.ALo(5,"number"),t._uU(6),t.ALo(7,"filesize"),t.qZA(),t.TgZ(8,"td",6),t._uU(9),t.ALo(10,"filestatus"),t.qZA()()),2&n){const e=o.$implicit;t.xp6(1),t.s9C("title",e.path),t.xp6(1),t.Oqu(t.lcZ(3,9,e.path)),t.xp6(2),t.s9C("title",t.lcZ(5,11,e.size)),t.xp6(2),t.Oqu(t.lcZ(7,13,e.size)),t.xp6(2),t.Gre("status ",e.status,""),t.s9C("title",e.status),t.xp6(1),t.hij(" ",t.lcZ(10,15,e.status)," ")}}ct.\u0275fac=function(o){return new(o||ct)},ct.\u0275pipe=t.Yjl({name:"filestatus",type:ct,pure:!0});const he=[m.cS.RECORDING,m.cS.INJECTING,m.cS.REMUXING,m.cS.COMPLETED,m.cS.MISSING];class _t{constructor(){this.loading=!0,this.videoFileDetails=[],this.danmakuFileDetails=[],this.VideoFileStatus=m.cS,this.fileDetails=[],this.columns=[{name:"\u6587\u4ef6",sortOrder:"ascend",sortFn:(o,e)=>o.path.localeCompare(e.path),sortDirections:["ascend","descend"],filterMultiple:!1,listOfFilter:[{text:"\u89c6\u9891",value:"video"},{text:"\u5f39\u5e55",value:"danmaku"}],filterFn:(o,e)=>{switch(o){case"video":return e.path.endsWith(".flv")||e.path.endsWith(".mp4");case"danmaku":return e.path.endsWith(".xml");default:return!1}}},{name:"\u5927\u5c0f",sortOrder:null,sortFn:(o,e)=>o.size-e.size,sortDirections:["ascend","descend",null],filterMultiple:!0,listOfFilter:[],filterFn:null},{name:"\u72b6\u6001",sortOrder:null,sortFn:(o,e)=>he.indexOf(o.status)-he.indexOf(e.status),sortDirections:["ascend","descend",null],filterMultiple:!0,listOfFilter:[{text:"\u5f55\u5236\u4e2d",value:[m.cS.RECORDING]},{text:"\u5904\u7406\u4e2d",value:[m.cS.INJECTING,m.cS.REMUXING]},{text:"\u5df2\u5b8c\u6210",value:[m.cS.COMPLETED]},{text:"\u4e0d\u5b58\u5728",value:[m.cS.MISSING]}],filterFn:(o,e)=>o.some(i=>i.some(a=>a===e.status))}]}ngOnChanges(){this.fileDetails=[...this.videoFileDetails,...this.danmakuFileDetails]}trackByPath(o,e){return e.path}}_t.\u0275fac=function(o){return new(o||_t)},_t.\u0275cmp=t.Xpm({type:_t,selectors:[["app-task-file-detail"]],inputs:{loading:"loading",videoFileDetails:"videoFileDetails",danmakuFileDetails:"danmakuFileDetails"},features:[t.TTD],decls:8,vars:8,consts:[["nzTitle","\u6587\u4ef6\u8be6\u60c5",3,"nzLoading"],[3,"nzLoading","nzData","nzPageSize","nzHideOnSinglePage"],["fileDetailsTable",""],[3,"nzSortOrder","nzSortFn","nzSortDirections","nzFilters","nzFilterFn","nzFilterMultiple","nzShowFilter",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"nzSortOrder","nzSortFn","nzSortDirections","nzFilters","nzFilterFn","nzFilterMultiple","nzShowFilter"],[3,"title"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-table",1,2)(3,"thead")(4,"tr"),t.YNc(5,qo,2,8,"th",3),t.qZA()(),t.TgZ(6,"tbody"),t.YNc(7,$o,11,17,"tr",4),t.qZA()()()),2&o){const i=t.MAs(2);t.Q6J("nzLoading",e.loading),t.xp6(1),t.Q6J("nzLoading",e.loading)("nzData",e.fileDetails)("nzPageSize",8)("nzHideOnSinglePage",!0),t.xp6(4),t.Q6J("ngForOf",e.columns),t.xp6(2),t.Q6J("ngForOf",i.data)("ngForTrackBy",e.trackByPath)}},dependencies:[c.sg,E.bd,L.N8,L.qD,L.Uo,L._C,L.Om,L.p0,L.$Z,c.JJ,J,G,ct],styles:[".status.recording[_ngcontent-%COMP%]{color:red}.status.injecting[_ngcontent-%COMP%], .status.remuxing[_ngcontent-%COMP%]{color:#00f}.status.completed[_ngcontent-%COMP%]{color:green}.status.missing[_ngcontent-%COMP%]{color:gray}.status.broken[_ngcontent-%COMP%]{color:orange}"],changeDetection:0});class ut{constructor(){this.loading=!0}ngOnInit(){}}function jo(n,o){if(1&n&&(t.TgZ(0,"span",18),t._uU(1),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.hij("",e.roomInfo.short_room_id," ")}}function Vo(n,o){1&n&&(t.ynx(0),t._uU(1,"\u95f2\u7f6e"),t.BQk())}function Ho(n,o){1&n&&(t.ynx(0),t._uU(1,"\u76f4\u64ad\u4e2d"),t.BQk())}function Xo(n,o){1&n&&(t.ynx(0),t._uU(1,"\u8f6e\u64ad\u4e2d"),t.BQk())}function ti(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.ALo(2,"date"),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.hij(" ",t.Dn7(2,1,1e3*e.roomInfo.live_start_time,"YYYY-MM-dd HH:mm:ss","+8")," ")}}function ei(n,o){if(1&n&&(t.TgZ(0,"nz-tag"),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.hij(" ",e," ")}}function ni(n,o){if(1&n&&(t.TgZ(0,"p"),t._uU(1),t.qZA()),2&n){const e=o.$implicit;t.xp6(1),t.Oqu(e)}}ut.\u0275fac=function(o){return new(o||ut)},ut.\u0275cmp=t.Xpm({type:ut,selectors:[["app-task-user-info-detail"]],inputs:{loading:"loading",userInfo:"userInfo"},decls:12,vars:6,consts:[["nzTitle","\u4e3b\u64ad\u4fe1\u606f",3,"nzLoading"],["nzTitle",""],["nzTitle","\u6635\u79f0"],["nzTitle","\u6027\u522b"],["nzTitle","UID"],["nzTitle","\u7b49\u7ea7"],["nzTitle","\u7b7e\u540d"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-descriptions",1)(2,"nz-descriptions-item",2),t._uU(3),t.qZA(),t.TgZ(4,"nz-descriptions-item",3),t._uU(5),t.qZA(),t.TgZ(6,"nz-descriptions-item",4),t._uU(7),t.qZA(),t.TgZ(8,"nz-descriptions-item",5),t._uU(9),t.qZA(),t.TgZ(10,"nz-descriptions-item",6),t._uU(11),t.qZA()()()),2&o&&(t.Q6J("nzLoading",e.loading),t.xp6(3),t.Oqu(e.userInfo.name),t.xp6(2),t.Oqu(e.userInfo.gender),t.xp6(2),t.Oqu(e.userInfo.uid),t.xp6(2),t.Oqu(e.userInfo.level),t.xp6(2),t.hij(" ",e.userInfo.sign," "))},dependencies:[E.bd,se,Nt],changeDetection:0});class pt{constructor(){this.loading=!0}ngOnInit(){}}pt.\u0275fac=function(o){return new(o||pt)},pt.\u0275cmp=t.Xpm({type:pt,selectors:[["app-task-room-info-detail"]],inputs:{loading:"loading",roomInfo:"roomInfo"},decls:24,vars:13,consts:[["nzTitle","\u76f4\u64ad\u95f4\u4fe1\u606f",3,"nzLoading"],["nzTitle",""],["nzTitle","\u6807\u9898"],["nzTitle","\u5206\u533a"],["nzTitle","\u623f\u95f4\u53f7"],[1,"room-id-wrapper"],["class","short-room-id",4,"ngIf"],[1,"real-room-id"],["nzTitle","\u72b6\u6001"],[3,"ngSwitch"],[4,"ngSwitchCase"],["nzTitle","\u5f00\u64ad\u65f6\u95f4"],[4,"ngIf"],["nzTitle","\u6807\u7b7e"],[1,"tags"],[4,"ngFor","ngForOf"],["nzTitle","\u7b80\u4ecb"],[1,"introduction"],[1,"short-room-id"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-descriptions",1)(2,"nz-descriptions-item",2),t._uU(3),t.qZA(),t.TgZ(4,"nz-descriptions-item",3),t._uU(5),t.qZA(),t.TgZ(6,"nz-descriptions-item",4)(7,"span",5),t.YNc(8,jo,2,1,"span",6),t.TgZ(9,"span",7),t._uU(10),t.qZA()()(),t.TgZ(11,"nz-descriptions-item",8),t.ynx(12,9),t.YNc(13,Vo,2,0,"ng-container",10),t.YNc(14,Ho,2,0,"ng-container",10),t.YNc(15,Xo,2,0,"ng-container",10),t.BQk(),t.qZA(),t.TgZ(16,"nz-descriptions-item",11),t.YNc(17,ti,3,5,"ng-container",12),t.qZA(),t.TgZ(18,"nz-descriptions-item",13)(19,"div",14),t.YNc(20,ei,2,1,"nz-tag",15),t.qZA()(),t.TgZ(21,"nz-descriptions-item",16)(22,"div",17),t.YNc(23,ni,2,1,"p",15),t.qZA()()()()),2&o&&(t.Q6J("nzLoading",e.loading),t.xp6(3),t.Oqu(e.roomInfo.title),t.xp6(2),t.AsE(" ",e.roomInfo.parent_area_name," - ",e.roomInfo.area_name," "),t.xp6(3),t.Q6J("ngIf",e.roomInfo.short_room_id),t.xp6(2),t.hij(" ",e.roomInfo.room_id," "),t.xp6(2),t.Q6J("ngSwitch",e.roomInfo.live_status),t.xp6(1),t.Q6J("ngSwitchCase",0),t.xp6(1),t.Q6J("ngSwitchCase",1),t.xp6(1),t.Q6J("ngSwitchCase",2),t.xp6(2),t.Q6J("ngIf",0!==e.roomInfo.live_start_time),t.xp6(3),t.Q6J("ngForOf",e.roomInfo.tags.split(",")),t.xp6(3),t.Q6J("ngForOf",e.roomInfo.description.split("\n")))},dependencies:[c.sg,c.O5,c.RF,c.n9,E.bd,Wt,se,Nt,c.uU],styles:['.room-id-wrapper[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.room-id-wrapper[_ngcontent-%COMP%]   .short-room-id[_ngcontent-%COMP%]:after{display:inline-block;width:1em;content:","}.tags[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;row-gap:.5em}.introduction[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;padding:0}'],changeDetection:0});class H{transform(o){return o&&0!==o.total?Math.round(o.count/o.total*100):0}}H.\u0275fac=function(o){return new(o||H)},H.\u0275pipe=t.Yjl({name:"progress",type:H,pure:!0});class gt{constructor(){this.loading=!0}ngOnInit(){}get title(){switch(this.taskStatus.postprocessor_status){case m.ii.INJECTING:return"\u66f4\u65b0 FLV \u5143\u6570\u636e";case m.ii.REMUXING:return"\u8f6c\u6362 FLV \u4e3a MP4";default:return"\u6587\u4ef6\u5904\u7406"}}}gt.\u0275fac=function(o){return new(o||gt)},gt.\u0275cmp=t.Xpm({type:gt,selectors:[["app-task-postprocessing-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},decls:6,vars:9,consts:[[3,"nzTitle","nzLoading"],[3,"title"],["nzStatus","active",3,"nzPercent"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"p",1),t._uU(2),t.ALo(3,"filename"),t.qZA(),t._UZ(4,"nz-progress",2),t.ALo(5,"progress"),t.qZA()),2&o){let i;t.Q6J("nzTitle",e.title)("nzLoading",e.loading),t.xp6(1),t.Q6J("title",e.taskStatus.postprocessing_path),t.xp6(1),t.hij(" ",t.lcZ(3,5,null!==(i=e.taskStatus.postprocessing_path)&&void 0!==i?i:"")," "),t.xp6(2),t.Q6J("nzPercent",null===e.taskStatus.postprocessing_progress?0:t.lcZ(5,7,e.taskStatus.postprocessing_progress))}},dependencies:[E.bd,ne,H,G],styles:["p[_ngcontent-%COMP%]{margin:0}"],changeDetection:0});var X=r(2134);class tt{transform(o){return(0,X.LU)(o,!0)}}tt.\u0275fac=function(o){return new(o||tt)},tt.\u0275pipe=t.Yjl({name:"duration",type:tt,pure:!0});var Rt=r(3692),fe=r(3520);function oi(n,o){if(1&n&&(t._uU(0),t.ALo(1,"duration")),2&n){const e=t.oxw();t.Oqu(t.lcZ(1,1,e.taskStatus.rec_elapsed))}}function ii(n,o){if(1&n&&(t._uU(0),t.ALo(1,"datarate")),2&n){const e=t.oxw();t.Oqu(t.lcZ(1,1,e.taskStatus.rec_rate))}}const ai=function(){return{spacer:" "}};function si(n,o){if(1&n&&(t._uU(0),t.ALo(1,"filesize")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,e.taskStatus.rec_total,t.DdM(4,ai)))}}function ri(n,o){if(1&n&&(t._uU(0),t.ALo(1,"quality")),2&n){const e=t.oxw();t.Oqu(e.taskStatus.real_quality_number?t.lcZ(1,1,e.taskStatus.real_quality_number)+" ("+e.taskStatus.real_quality_number+")":"")}}class dt{constructor(o){this.changeDetector=o,this.loading=!0,this.initialChartOptions={},this.updatedChartOptions={},this.chartData=[],this.initChartOptions()}ngOnChanges(){this.taskStatus.running_status===m.cG.RECORDING&&this.updateChartOptions()}initChartOptions(){const o=Date.now();for(let e=59;e>=0;e--){const i=new Date(o-1e3*e);this.chartData.push({name:i.toLocaleString("zh-CN",{hour12:!1}),value:[i.toISOString(),0]})}this.initialChartOptions={title:{},tooltip:{trigger:"axis",formatter:e=>{const i=e[0];return`\n            <div>\n              <div>\n                ${new Date(i.name).toLocaleTimeString("zh-CN",{hour12:!1})}\n              </div>\n              <div>${(0,X.N4)(i.value[1])}</div>\n            </div>\n          `},axisPointer:{animation:!1}},xAxis:{type:"time",name:"\u65f6\u95f4",min:"dataMin",max:"dataMax",splitLine:{show:!0}},yAxis:{type:"value",name:"\u5f55\u5236\u901f\u5ea6",splitLine:{show:!0},axisLabel:{formatter:e=>(0,X.N4)(e)}},series:[{name:"\u5f55\u5236\u901f\u5ea6",type:"line",showSymbol:!1,smooth:!0,lineStyle:{width:1},areaStyle:{opacity:.2},data:this.chartData}]}}updateChartOptions(){const o=new Date;this.chartData.push({name:o.toLocaleString("zh-CN",{hour12:!1}),value:[o.toISOString(),this.taskStatus.rec_rate]}),this.chartData.shift(),this.updatedChartOptions={series:[{data:this.chartData}]},this.changeDetector.markForCheck()}}function li(n,o){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.taskStatus.stream_host)}}function ci(n,o){if(1&n&&t._uU(0),2&n){const e=t.oxw();t.Oqu(e.taskStatus.real_stream_format)}}dt.\u0275fac=function(o){return new(o||dt)(t.Y36(t.sBO))},dt.\u0275cmp=t.Xpm({type:dt,selectors:[["app-task-recording-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},features:[t.TTD],decls:17,vars:17,consts:[["nzTitle","\u5f55\u5236\u8be6\u60c5",3,"nzLoading"],[1,"statistics"],[3,"nzTitle","nzValueTemplate"],["recordingElapsed",""],["recordingRate",""],["recordedTotal",""],["recordingQuality",""],[3,"nzTitle","nzValue"],["echarts","",1,"rec-rate-chart",3,"loading","options","merge"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"div",1),t._UZ(2,"nz-statistic",2),t.YNc(3,oi,2,3,"ng-template",null,3,t.W1O),t._UZ(5,"nz-statistic",2),t.YNc(6,ii,2,3,"ng-template",null,4,t.W1O),t._UZ(8,"nz-statistic",2),t.YNc(9,si,2,5,"ng-template",null,5,t.W1O),t._UZ(11,"nz-statistic",2),t.YNc(12,ri,2,3,"ng-template",null,6,t.W1O),t._UZ(14,"nz-statistic",7),t.ALo(15,"number"),t.qZA(),t._UZ(16,"div",8),t.qZA()),2&o){const i=t.MAs(4),a=t.MAs(7),s=t.MAs(10),d=t.MAs(13);t.Q6J("nzLoading",e.loading),t.xp6(2),t.Q6J("nzTitle","\u5f55\u5236\u7528\u65f6")("nzValueTemplate",i),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u901f\u5ea6")("nzValueTemplate",a),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u603b\u8ba1")("nzValueTemplate",s),t.xp6(3),t.Q6J("nzTitle","\u5f55\u5236\u753b\u8d28")("nzValueTemplate",d),t.xp6(3),t.Q6J("nzTitle","\u5f39\u5e55\u603b\u8ba1")("nzValue",t.xi3(15,14,e.taskStatus.danmu_total,"1.0-2")),t.xp6(2),t.Q6J("loading",e.loading)("options",e.initialChartOptions)("merge",e.updatedChartOptions)}},dependencies:[E.bd,ie,ue,c.JJ,tt,Rt.f,J,fe.U],styles:[".statistics[_ngcontent-%COMP%]{--grid-width: 200px;display:grid;grid-template-columns:repeat(auto-fill,var(--grid-width));gap:1em;justify-content:center;margin:0 auto}@media screen and (max-width: 1024px){.statistics[_ngcontent-%COMP%]{--grid-width: 180px}}@media screen and (max-width: 720px){.statistics[_ngcontent-%COMP%]{--grid-width: 160px}}@media screen and (max-width: 680px){.statistics[_ngcontent-%COMP%]{--grid-width: 140px}}@media screen and (max-width: 480px){.statistics[_ngcontent-%COMP%]{--grid-width: 120px}}.rec-rate-chart[_ngcontent-%COMP%]{width:100%;height:300px;margin:0}"],changeDetection:0});const _i=function(){return{bitrate:!0}};function ui(n,o){if(1&n&&(t._uU(0),t.ALo(1,"datarate")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,8*e.taskStatus.dl_rate,t.DdM(4,_i)))}}const pi=function(){return{spacer:" "}};function gi(n,o){if(1&n&&(t._uU(0),t.ALo(1,"filesize")),2&n){const e=t.oxw();t.Oqu(t.xi3(1,1,e.taskStatus.dl_total,t.DdM(4,pi)))}}class mt{constructor(o){this.changeDetector=o,this.loading=!0,this.initialChartOptions={},this.updatedChartOptions={},this.chartData=[],this.initChartOptions()}ngOnChanges(){this.taskStatus.running_status===m.cG.RECORDING&&this.updateChartOptions()}initChartOptions(){const o=Date.now();for(let e=59;e>=0;e--){const i=new Date(o-1e3*e);this.chartData.push({name:i.toLocaleString("zh-CN",{hour12:!1}),value:[i.toISOString(),0]})}this.initialChartOptions={title:{},tooltip:{trigger:"axis",formatter:e=>{const i=e[0];return`\n            <div>\n              <div>\n                ${new Date(i.name).toLocaleTimeString("zh-CN",{hour12:!1})}\n              </div>\n              <div>${(0,X.AX)(i.value[1])}</div>\n            </div>\n          `},axisPointer:{animation:!1}},xAxis:{type:"time",name:"\u65f6\u95f4",min:"dataMin",max:"dataMax",splitLine:{show:!0}},yAxis:{type:"value",name:"\u4e0b\u8f7d\u901f\u5ea6",splitLine:{show:!0},axisLabel:{formatter:function(e){return(0,X.AX)(e)}}},series:[{name:"\u4e0b\u8f7d\u901f\u5ea6",type:"line",showSymbol:!1,smooth:!0,lineStyle:{width:1},areaStyle:{opacity:.2},data:this.chartData}]}}updateChartOptions(){const o=new Date;this.chartData.push({name:o.toLocaleString("zh-CN",{hour12:!1}),value:[o.toISOString(),8*this.taskStatus.dl_rate]}),this.chartData.shift(),this.updatedChartOptions={series:[{data:this.chartData}]},this.changeDetector.markForCheck()}}function di(n,o){if(1&n&&t._UZ(0,"app-task-user-info-detail",6),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("userInfo",e.taskData.user_info)}}function mi(n,o){if(1&n&&t._UZ(0,"app-task-room-info-detail",7),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("roomInfo",e.taskData.room_info)}}function hi(n,o){if(1&n&&t._UZ(0,"app-task-recording-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function fi(n,o){if(1&n&&t._UZ(0,"app-task-network-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function Ci(n,o){if(1&n&&t._UZ(0,"app-task-postprocessing-detail",8),2&n){const e=t.oxw(2);t.Q6J("loading",e.loading)("taskStatus",e.taskData.task_status)}}function zi(n,o){if(1&n&&(t.YNc(0,di,1,2,"app-task-user-info-detail",2),t.YNc(1,mi,1,2,"app-task-room-info-detail",3),t.YNc(2,hi,1,2,"app-task-recording-detail",4),t.YNc(3,fi,1,2,"app-task-network-detail",4),t.YNc(4,Ci,1,2,"app-task-postprocessing-detail",4),t._UZ(5,"app-task-file-detail",5)),2&n){const e=t.oxw();t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",e.taskData),t.xp6(1),t.Q6J("ngIf",null==e.taskData||null==e.taskData.task_status?null:e.taskData.task_status.postprocessing_path),t.xp6(1),t.Q6J("loading",e.loading)("videoFileDetails",e.videoFileDetails)("danmakuFileDetails",e.danmakuFileDetails)}}mt.\u0275fac=function(o){return new(o||mt)(t.Y36(t.sBO))},mt.\u0275cmp=t.Xpm({type:mt,selectors:[["app-task-network-detail"]],inputs:{loading:"loading",taskStatus:"taskStatus"},features:[t.TTD],decls:15,vars:12,consts:[["nzTitle","\u7f51\u7edc\u8be6\u60c5",3,"nzLoading"],[1,"statistics"],[1,"stream-host",3,"nzTitle","nzValueTemplate"],["streamHost",""],[3,"nzTitle","nzValueTemplate"],["realStreamFormat",""],["downloadRate",""],["downloadTotal",""],["echarts","",1,"dl-rate-chart",3,"loading","options","merge"]],template:function(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"div",1),t._UZ(2,"nz-statistic",2),t.YNc(3,li,1,1,"ng-template",null,3,t.W1O),t._UZ(5,"nz-statistic",4),t.YNc(6,ci,1,1,"ng-template",null,5,t.W1O),t._UZ(8,"nz-statistic",4),t.YNc(9,ui,2,5,"ng-template",null,6,t.W1O),t._UZ(11,"nz-statistic",4),t.YNc(12,gi,2,5,"ng-template",null,7,t.W1O),t.qZA(),t._UZ(14,"div",8),t.qZA()),2&o){const i=t.MAs(4),a=t.MAs(7),s=t.MAs(10),d=t.MAs(13);t.Q6J("nzLoading",e.loading),t.xp6(2),t.Q6J("nzTitle","\u6d41\u4e3b\u673a")("nzValueTemplate",i),t.xp6(3),t.Q6J("nzTitle","\u6d41\u683c\u5f0f")("nzValueTemplate",a),t.xp6(3),t.Q6J("nzTitle","\u4e0b\u8f7d\u901f\u5ea6")("nzValueTemplate",s),t.xp6(3),t.Q6J("nzTitle","\u4e0b\u8f7d\u603b\u8ba1")("nzValueTemplate",d),t.xp6(3),t.Q6J("loading",e.loading)("options",e.initialChartOptions)("merge",e.updatedChartOptions)}},dependencies:[E.bd,ie,ue,Rt.f,J],styles:[".statistics[_ngcontent-%COMP%]{--grid-width: 200px;display:grid;grid-template-columns:repeat(auto-fill,var(--grid-width));gap:1em;justify-content:center;margin:0 auto}@media screen and (max-width: 1024px){.statistics[_ngcontent-%COMP%]{--grid-width: 180px}}@media screen and (max-width: 720px){.statistics[_ngcontent-%COMP%]{--grid-width: 160px}}@media screen and (max-width: 680px){.statistics[_ngcontent-%COMP%]{--grid-width: 140px}}@media screen and (max-width: 480px){.statistics[_ngcontent-%COMP%]{--grid-width: 120px}}.stream-host[_ngcontent-%COMP%]{grid-column:1/3;grid-row:1}.dl-rate-chart[_ngcontent-%COMP%]{width:100%;height:300px;margin:0}"],changeDetection:0});const Ti=function(){return{"max-width":"unset"}},xi=function(){return{"row-gap":"1em"}};class ht{constructor(o,e,i,a,s){this.route=o,this.router=e,this.changeDetector=i,this.notification=a,this.taskService=s,this.videoFileDetails=[],this.danmakuFileDetails=[],this.loading=!0}ngOnInit(){this.route.paramMap.subscribe(o=>{this.roomId=parseInt(o.get("id")),this.syncData()})}ngOnDestroy(){this.desyncData()}syncData(){this.dataSubscription=(0,w.of)((0,w.of)(0),(0,pe.F)(1e3)).pipe((0,de.u)(),(0,st.w)(()=>(0,ge.$)(this.taskService.getTaskData(this.roomId),this.taskService.getVideoFileDetails(this.roomId),this.taskService.getDanmakuFileDetails(this.roomId))),(0,lt.K)(o=>{throw this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519",o.message),o}),(0,Bt.X)(10,3e3)).subscribe(([o,e,i])=>{this.loading=!1,this.taskData=o,this.videoFileDetails=e,this.danmakuFileDetails=i,this.changeDetector.markForCheck()},o=>{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})})}desyncData(){this.dataSubscription?.unsubscribe()}}ht.\u0275fac=function(o){return new(o||ht)(t.Y36(rt.gz),t.Y36(rt.F0),t.Y36(t.sBO),t.Y36(me.zb),t.Y36(Ut.M))},ht.\u0275cmp=t.Xpm({type:ht,selectors:[["app-task-detail"]],decls:2,vars:5,consts:[["pageTitle","\u4efb\u52a1\u8be6\u60c5",3,"loading","pageStyles","contentStyles"],["appSubPageContent",""],[3,"loading","userInfo",4,"ngIf"],[3,"loading","roomInfo",4,"ngIf"],[3,"loading","taskStatus",4,"ngIf"],[3,"loading","videoFileDetails","danmakuFileDetails"],[3,"loading","userInfo"],[3,"loading","roomInfo"],[3,"loading","taskStatus"]],template:function(o,e){1&o&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,zi,6,8,"ng-template",1),t.qZA()),2&o&&t.Q6J("loading",e.loading)("pageStyles",t.DdM(3,Ti))("contentStyles",t.DdM(4,xi))},dependencies:[c.O5,Ko.Y,Go.q,_t,ut,pt,gt,dt,mt],changeDetection:0});var Ce=r(2323),Lt=r(7044),Di=r(1664),ki=r(8372),Mi=r(1884),W=r(4004);const ft=["(max-width: 534.98px)","(min-width: 535px) and (max-width: 1199.98px)","(min-width: 1200px)"];var Jt=r(9651);class Q{constructor(o,e){this.message=o,this.taskService=e}getAllTaskRoomIds(){return this.taskService.getAllTaskData().pipe((0,W.U)(o=>o.map(e=>e.room_info.room_id)))}updateTaskInfo(o){return this.taskService.updateTaskInfo(o).pipe((0,v.b)(()=>{this.message.success(`[${o}] \u6210\u529f\u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e`)},e=>{this.message.error(`[${o}] \u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${e.message}`)}))}updateAllTaskInfos(){return this.taskService.updateAllTaskInfos().pipe((0,v.b)(()=>{this.message.success("\u6210\u529f\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e")},o=>{this.message.error(`\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${o.message}`)}))}addTask(o){return this.taskService.addTask(o).pipe((0,W.U)(e=>({type:"success",message:"\u6210\u529f\u6dfb\u52a0\u4efb\u52a1"})),(0,lt.K)(e=>{let i;return i=409==e.status?{type:"error",message:"\u4efb\u52a1\u5df2\u5b58\u5728\uff0c\u4e0d\u80fd\u91cd\u590d\u6dfb\u52a0\u3002"}:403==e.status?{type:"warning",message:"\u4efb\u52a1\u6570\u91cf\u8d85\u8fc7\u9650\u5236\uff0c\u4e0d\u80fd\u6dfb\u52a0\u4efb\u52a1\u3002"}:404==e.status?{type:"error",message:"\u76f4\u64ad\u95f4\u4e0d\u5b58\u5728"}:{type:"error",message:`\u6dfb\u52a0\u4efb\u52a1\u51fa\u9519: ${e.message}`},(0,w.of)(i)}),(0,W.U)(e=>(e.message=`${o}: ${e.message}`,e)),(0,v.b)(e=>{this.message[e.type](e.message)}))}removeTask(o){return this.taskService.removeTask(o).pipe((0,v.b)(()=>{this.message.success(`[${o}] \u4efb\u52a1\u5df2\u5220\u9664`)},e=>{this.message.error(`[${o}] \u5220\u9664\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}removeAllTasks(){const o=this.message.loading("\u6b63\u5728\u5220\u9664\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.removeAllTasks().pipe((0,v.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5220\u9664\u5168\u90e8\u4efb\u52a1")},e=>{this.message.remove(o),this.message.error(`\u5220\u9664\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}startTask(o){const e=this.message.loading(`[${o}] \u6b63\u5728\u8fd0\u884c\u4efb\u52a1...`,{nzDuration:0}).messageId;return this.taskService.startTask(o).pipe((0,v.b)(()=>{this.message.remove(e),this.message.success(`[${o}] \u6210\u529f\u8fd0\u884c\u4efb\u52a1`)},i=>{this.message.remove(e),this.message.error(`[${o}] \u8fd0\u884c\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}startAllTasks(){const o=this.message.loading("\u6b63\u5728\u8fd0\u884c\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.startAllTasks().pipe((0,v.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u8fd0\u884c\u5168\u90e8\u4efb\u52a1")},e=>{this.message.remove(o),this.message.error(`\u8fd0\u884c\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${e.message}`)}))}stopTask(o,e=!1){const i=this.message.loading(`[${o}] \u6b63\u5728\u505c\u6b62\u4efb\u52a1...`,{nzDuration:0}).messageId;return this.taskService.stopTask(o,e).pipe((0,v.b)(()=>{this.message.remove(i),this.message.success(`[${o}] \u6210\u529f\u505c\u6b62\u4efb\u52a1`)},a=>{this.message.remove(i),this.message.error(`[${o}] \u505c\u6b62\u4efb\u52a1\u51fa\u9519: ${a.message}`)}))}stopAllTasks(o=!1){const e=this.message.loading("\u6b63\u5728\u505c\u6b62\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.stopAllTasks(o).pipe((0,v.b)(()=>{this.message.remove(e),this.message.success("\u6210\u529f\u505c\u6b62\u5168\u90e8\u4efb\u52a1")},i=>{this.message.remove(e),this.message.error(`\u505c\u6b62\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}enableRecorder(o){const e=this.message.loading(`[${o}] \u6b63\u5728\u5f00\u542f\u5f55\u5236...`,{nzDuration:0}).messageId;return this.taskService.enableTaskRecorder(o).pipe((0,v.b)(()=>{this.message.remove(e),this.message.success(`[${o}] \u6210\u529f\u5f00\u542f\u5f55\u5236`)},i=>{this.message.remove(e),this.message.error(`[${o}] \u5f00\u542f\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}enableAllRecorders(){const o=this.message.loading("\u6b63\u5728\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.enableAllRecorders().pipe((0,v.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},e=>{this.message.remove(o),this.message.error(`\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${e.message}`)}))}disableRecorder(o,e=!1){const i=this.message.loading(`[${o}] \u6b63\u5728\u5173\u95ed\u5f55\u5236...`,{nzDuration:0}).messageId;return this.taskService.disableTaskRecorder(o,e).pipe((0,v.b)(()=>{this.message.remove(i),this.message.success(`[${o}] \u6210\u529f\u5173\u95ed\u5f55\u5236`)},a=>{this.message.remove(i),this.message.error(`[${o}] \u5173\u95ed\u5f55\u5236\u51fa\u9519: ${a.message}`)}))}disableAllRecorders(o=!1){const e=this.message.loading("\u6b63\u5728\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.disableAllRecorders(o).pipe((0,v.b)(()=>{this.message.remove(e),this.message.success("\u6210\u529f\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},i=>{this.message.remove(e),this.message.error(`\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}canCutStream(o){return this.taskService.canCutStream(o).pipe((0,v.b)(e=>{e||this.message.warning(`[${o}] \u4e0d\u652f\u6301\u6587\u4ef6\u5207\u5272~`)}))}cutStream(o){return this.taskService.cutStream(o).pipe((0,v.b)(()=>{this.message.success(`[${o}] \u6587\u4ef6\u5207\u5272\u5df2\u89e6\u53d1`)},e=>{403==e.status?this.message.warning(`[${o}] \u65f6\u957f\u592a\u77ed\u4e0d\u80fd\u5207\u5272\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002`):this.message.error(`[${o}] \u5207\u5272\u6587\u4ef6\u51fa\u9519: ${e.message}`)}))}}Q.\u0275fac=function(o){return new(o||Q)(t.LFG(Jt.dD),t.LFG(Ut.M))},Q.\u0275prov=t.Yz7({token:Q,factory:Q.\u0275fac,providedIn:"root"});var Ct=r(3325);function Oi(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8),t._UZ(2,"nz-divider",13),t.GkF(3,8),t._UZ(4,"nz-divider",13),t.GkF(5,8),t._UZ(6,"nz-divider",13),t.GkF(7,8),t.BQk()),2&n){t.oxw();const e=t.MAs(5),i=t.MAs(9),a=t.MAs(11),s=t.MAs(13);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(2),t.Q6J("ngTemplateOutlet",i),t.xp6(2),t.Q6J("ngTemplateOutlet",a),t.xp6(2),t.Q6J("ngTemplateOutlet",s)}}function vi(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8),t._UZ(2,"nz-divider",13),t.GkF(3,8),t._UZ(4,"nz-divider",13),t.GkF(5,8),t._UZ(6,"nz-divider",13),t.GkF(7,8),t.BQk()),2&n){t.oxw();const e=t.MAs(7),i=t.MAs(9),a=t.MAs(11),s=t.MAs(13);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(2),t.Q6J("ngTemplateOutlet",i),t.xp6(2),t.Q6J("ngTemplateOutlet",a),t.xp6(2),t.Q6J("ngTemplateOutlet",s)}}function Ei(n,o){if(1&n&&(t.ynx(0),t.GkF(1,8)(2,8),t.BQk()),2&n){t.oxw();const e=t.MAs(9),i=t.MAs(20);t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(1),t.Q6J("ngTemplateOutlet",i)}}function Ai(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"label",16),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)}}function Pi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-radio-group",14),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.selection=a)})("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.selectionChange.emit(a))}),t.YNc(1,Ai,3,2,"ng-container",15),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("ngModel",e.selection),t.xp6(1),t.Q6J("ngForOf",e.selections)}}function yi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-select",17),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.selection=a)})("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.selectionChange.emit(a))}),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzOptions",e.selections)("ngModel",e.selection)}}function Si(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"i",23),t.NdJ("click",function(){t.CHM(e),t.oxw(2);const a=t.MAs(2),s=t.oxw();return a.value="",t.KtG(s.onFilterInput(""))}),t.qZA()}}function bi(n,o){if(1&n&&t.YNc(0,Si,1,0,"i",22),2&n){t.oxw();const e=t.MAs(2);t.Q6J("ngIf",e.value)}}function Fi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-input-group",18)(1,"input",19,20),t.NdJ("input",function(){t.CHM(e);const a=t.MAs(2),s=t.oxw();return t.KtG(s.onFilterInput(a.value))}),t.qZA()(),t.YNc(3,bi,1,1,"ng-template",null,21,t.W1O)}if(2&n){const e=t.MAs(4);t.Q6J("nzSuffix",e)}}function wi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",24),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.toggleReverse())}),t.TgZ(1,"span"),t._uU(2),t.qZA(),t._UZ(3,"i",25),t.qZA()}if(2&n){const e=t.oxw();t.xp6(2),t.Oqu(e.reverse?"\u5012\u5e8f":"\u6b63\u5e8f"),t.xp6(1),t.Q6J("nzType",e.reverse?"swap-left":"swap-right")("nzRotate",90)}}function Ii(n,o){if(1&n&&(t.TgZ(0,"button",26),t._UZ(1,"i",27),t.qZA()),2&n){t.oxw();const e=t.MAs(15);t.Q6J("nzDropdownMenu",e)}}function Ni(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"ul",28)(1,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.startAllTasks())}),t._uU(2,"\u5168\u90e8\u8fd0\u884c"),t.qZA(),t.TgZ(3,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopAllTasks())}),t._uU(4,"\u5168\u90e8\u505c\u6b62"),t.qZA(),t.TgZ(5,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopAllTasks(!0))}),t._uU(6,"\u5168\u90e8\u5f3a\u5236\u505c\u6b62"),t.qZA(),t._UZ(7,"li",30),t.TgZ(8,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllRecorders(!1))}),t._uU(9,"\u5168\u90e8\u5173\u95ed\u5f55\u5236"),t.qZA(),t.TgZ(10,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableAllRecorders(!0))}),t._uU(11,"\u5168\u90e8\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),t.qZA(),t._UZ(12,"li",30),t.TgZ(13,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.removeAllTasks())}),t._uU(14,"\u5168\u90e8\u5220\u9664"),t.qZA(),t.TgZ(15,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.updateAllTaskInfos())}),t._uU(16,"\u5168\u90e8\u5237\u65b0\u6570\u636e"),t.qZA(),t.TgZ(17,"li",29),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.copyAllTaskRoomIds())}),t._uU(18,"\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7"),t.qZA()()}}function Zi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.drawerVisible=!0)}),t._UZ(1,"i",27),t.qZA()}}function Bi(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"div",35),t._UZ(2,"nz-divider",36),t.GkF(3,8),t._UZ(4,"nz-divider",37),t.TgZ(5,"div",38),t.GkF(6,8),t.qZA()(),t.BQk()),2&n){t.oxw(2);const e=t.MAs(5),i=t.MAs(11);t.xp6(3),t.Q6J("ngTemplateOutlet",e),t.xp6(3),t.Q6J("ngTemplateOutlet",i)}}function Ui(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"div",39),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!1)}),t.GkF(2,8),t.qZA(),t.BQk()}if(2&n){t.oxw(2);const e=t.MAs(18);t.xp6(2),t.Q6J("ngTemplateOutlet",e)}}const Ri=function(){return{padding:"0"}};function Li(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-drawer",32),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.drawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.drawerVisible=!1)}),t.YNc(1,Bi,7,2,"ng-container",33),t.TgZ(2,"nz-drawer",34),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.menuDrawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!1)}),t.YNc(3,Ui,3,1,"ng-container",33),t.qZA()()}if(2&n){const e=t.oxw(),i=t.MAs(23);t.Q6J("nzTitle",i)("nzClosable",!1)("nzVisible",e.drawerVisible),t.xp6(2),t.Q6J("nzClosable",!1)("nzBodyStyle",t.DdM(6,Ri))("nzVisible",e.menuDrawerVisible)}}function Ji(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",40)(1,"button",31),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!0)}),t._UZ(2,"i",27),t.qZA()()}}class zt{constructor(o,e,i,a,s,d){this.message=i,this.modal=a,this.clipboard=s,this.taskManager=d,this.selectionChange=new t.vpe,this.reverseChange=new t.vpe,this.filterChange=new t.vpe,this.destroyed=new F.x,this.useDrawer=!1,this.useSelector=!1,this.useRadioGroup=!0,this.drawerVisible=!1,this.menuDrawerVisible=!1,this.filterTerms=new F.x,this.selections=[{label:"\u5168\u90e8",value:m.jf.ALL},{label:"\u5f55\u5236\u4e2d",value:m.jf.RECORDING},{label:"\u5f55\u5236\u5f00",value:m.jf.RECORDER_ENABLED},{label:"\u5f55\u5236\u5173",value:m.jf.RECORDER_DISABLED},{label:"\u8fd0\u884c",value:m.jf.MONITOR_ENABLED},{label:"\u505c\u6b62",value:m.jf.MONITOR_DISABLED},{label:"\u76f4\u64ad",value:m.jf.LIVING},{label:"\u8f6e\u64ad",value:m.jf.ROUNDING},{label:"\u95f2\u7f6e",value:m.jf.PREPARING}],e.observe(ft).pipe((0,y.R)(this.destroyed)).subscribe(C=>{this.useDrawer=C.breakpoints[ft[0]],this.useSelector=C.breakpoints[ft[1]],this.useRadioGroup=C.breakpoints[ft[2]],o.markForCheck()})}ngOnInit(){this.filterTerms.pipe((0,ki.b)(300),(0,Mi.x)()).subscribe(o=>{this.filterChange.emit(o)})}ngOnDestroy(){this.destroyed.next(),this.destroyed.complete()}onFilterInput(o){this.filterTerms.next(o)}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((o,e)=>{this.taskManager.removeAllTasks().subscribe(o,e)})})}startAllTasks(){this.taskManager.startAllTasks().subscribe()}stopAllTasks(o=!1){o?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((e,i)=>{this.taskManager.stopAllTasks(o).subscribe(e,i)})}):this.taskManager.stopAllTasks().subscribe()}disableAllRecorders(o=!1){o?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((e,i)=>{this.taskManager.disableAllRecorders(o).subscribe(e,i)})}):this.taskManager.disableAllRecorders().subscribe()}updateAllTaskInfos(){this.taskManager.updateAllTaskInfos().subscribe()}copyAllTaskRoomIds(){this.taskManager.getAllTaskRoomIds().pipe((0,W.U)(o=>o.join(" ")),(0,v.b)(o=>{if(!this.clipboard.copy(o))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")},o=>{this.message.error("\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7\u5230\u526a\u5207\u677f\u51fa\u9519",o)})}}zt.\u0275fac=function(o){return new(o||zt)(t.Y36(t.sBO),t.Y36(h.Yg),t.Y36(Jt.dD),t.Y36(K.Sf),t.Y36(_),t.Y36(Q))},zt.\u0275cmp=t.Xpm({type:zt,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(o,e){if(1&o&&(t.TgZ(0,"div",0),t.YNc(1,Oi,8,4,"ng-container",1),t.YNc(2,vi,8,4,"ng-container",1),t.YNc(3,Ei,3,2,"ng-container",1),t.qZA(),t.YNc(4,Pi,2,2,"ng-template",null,2,t.W1O),t.YNc(6,yi,1,2,"ng-template",null,3,t.W1O),t.YNc(8,Fi,5,1,"ng-template",null,4,t.W1O),t.YNc(10,wi,4,3,"ng-template",null,5,t.W1O),t.YNc(12,Ii,2,1,"ng-template",null,6,t.W1O),t.TgZ(14,"nz-dropdown-menu",null,7),t.GkF(16,8),t.YNc(17,Ni,19,0,"ng-template",null,9,t.W1O),t.qZA(),t.YNc(19,Zi,2,0,"ng-template",null,10,t.W1O),t.YNc(21,Li,4,7,"nz-drawer",11),t.YNc(22,Ji,3,0,"ng-template",null,12,t.W1O)),2&o){const i=t.MAs(18);t.ekj("use-drawer",e.useDrawer),t.xp6(1),t.Q6J("ngIf",e.useRadioGroup),t.xp6(1),t.Q6J("ngIf",e.useSelector),t.xp6(1),t.Q6J("ngIf",e.useDrawer),t.xp6(13),t.Q6J("ngTemplateOutlet",i),t.xp6(5),t.Q6J("ngIf",e.useDrawer)}},dependencies:[c.sg,c.O5,c.tP,p.JJ,p.On,P.Ls,Ct.wO,Ct.r9,Ct.YV,j.cm,j.RR,j.wA,At.ix,Lt.w,V.Zp,V.gB,V.ke,Pt.Of,Pt.Bq,Pt.Dg,jt.g,at.Vz,at.SQ,wt.Vq],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;gap:.2em;width:100%;padding:.2em;background:#f9f9f9;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}.controls-wrapper[_ngcontent-%COMP%]   .selector[_ngcontent-%COMP%]{min-width:6em}.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);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});var Qi=r(5136);class et{constructor(o){this.storage=o}getSettings(o){const e=this.storage.getData(this.getStorageKey(o));return e?JSON.parse(e)??{}:{}}updateSettings(o,e){e=Object.assign(this.getSettings(o),e);const i=JSON.stringify(e);this.storage.setData(this.getStorageKey(o),i)}getStorageKey(o){return`app-tasks-${o}`}}et.\u0275fac=function(o){return new(o||et)(t.LFG(Ce.V))},et.\u0275prov=t.Yz7({token:et,factory:et.\u0275fac,providedIn:"root"});var N=r(3523),Z=r(4960),Ki=r(6457),Gi=r(4501);function Wi(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),t.BQk())}function Yi(n,o){1&n&&(t.ynx(0),t._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),t.BQk())}function qi(n,o){if(1&n&&(t.YNc(0,Wi,2,0,"ng-container",64),t.YNc(1,Yi,2,0,"ng-container",64)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function $i(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u5927\u5c0f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1a\u6570\u5b57 + \u5355\u4f4d(GB, MB, KB, B) "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"0 B"),t.qZA(),t._UZ(8,"br"),t.qZA())}function ji(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u65f6\u957f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1aHH:MM:SS "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"00:00:00"),t.qZA(),t._UZ(8,"br"),t.qZA())}function Vi(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u9009\u62e9\u8981\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u683c\u5f0f "),t._UZ(2,"br"),t.TgZ(3,"b"),t._uU(4,"FLV:"),t.qZA(),t._uU(5," flv \u6d41\u5728\u7f51\u7edc\u4e0d\u7a33\u5b9a\u7684\u60c5\u51b5\u4e0b\u5bb9\u6613\u4e2d\u65ad\u4e22\u5931\u6570\u636e\u6216\u5f55\u5236\u5230\u4e8c\u538b\u753b\u8d28\u3002\u6ca1\u6709 flv \u6d41\u7684\u76f4\u64ad\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 fmp4 \u6d41\u3002 "),t._UZ(6,"br"),t.TgZ(7,"b"),t._uU(8,"HLS (fmp4):"),t.qZA(),t._uU(9," hls \u6d41\u57fa\u672c\u4e0d\u53d7\u7f51\u7edc\u6ce2\u52a8\u5f71\u54cd\uff0c\u4f46\u4e0d\u662f\u6240\u6709\u76f4\u64ad\u95f4\u90fd\u652f\u6301\u3002\u6709 flv \u6d41\u7684\u76f4\u64ad\uff0c\u5728\u8bbe\u5b9a\u7684\u7b49\u5f85\u65f6\u95f4\u5185\u6ca1\u6709 fmp4 \u6d41\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 flv \u6d41\u3002 "),t._UZ(10,"br"),t.TgZ(11,"b"),t._uU(12,"P.S."),t.qZA(),t._UZ(13,"br"),t._uU(14," WEB \u7aef\u76f4\u64ad\u64ad\u653e\u5668\u662f Hls7Player \u7684\u76f4\u64ad\u95f4\u652f\u6301\u5f55\u5236 fmp4 \u6d41, fMp4Player \u5219\u4e0d\u652f\u6301\u3002 "),t.qZA())}function Hi(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u5982\u679c\u8d85\u8fc7\u6240\u8bbe\u7f6e\u7684\u7b49\u5f85\u65f6\u95f4 fmp4 \u6d41\u8fd8\u6ca1\u6709\u5c31\u5207\u6362\u4e3a\u5f55\u5236 flv \u6d41 "),t._UZ(2,"br"),t._uU(3," fmp4 \u6d41\u5728\u521a\u63a8\u6d41\u662f\u6ca1\u6709\u7684\uff0c\u8981\u8fc7\u4e00\u4f1a\u624d\u6709\u3002 "),t._UZ(4,"br"),t._uU(5," fmp4 \u6d41\u51fa\u73b0\u7684\u65f6\u95f4\u548c\u76f4\u64ad\u5ef6\u8fdf\u6709\u5173\uff0c\u4e00\u822c\u90fd\u5728 10 \u79d2\u5185\uff0c\u4f46\u4e5f\u6709\u5ef6\u8fdf\u6bd4\u8f83\u5927\u8d85\u8fc7 1 \u5206\u949f\u7684\u3002 "),t._UZ(6,"br"),t._uU(7," \u63a8\u8350\u5168\u5c40\u8bbe\u7f6e\u4e3a 10 \u79d2\uff0c\u4e2a\u522b\u5ef6\u8fdf\u6bd4\u8f83\u5927\u7684\u76f4\u64ad\u95f4\u5355\u72ec\u8bbe\u7f6e\u3002 "),t.qZA())}function Xi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",19)(1,"nz-form-label",11),t._uU(2,"fmp4 \u6d41\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.YNc(3,Hi,8,0,"ng-template",null,65,t.W1O),t.TgZ(5,"nz-form-control",21)(6,"nz-select",66,67),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.model.recorder.fmp4StreamTimeout=a)}),t.qZA()(),t.TgZ(8,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.options.recorder.fmp4StreamTimeout=a?s.globalSettings.recorder.fmp4StreamTimeout:null)}),t._uU(9,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(4),i=t.oxw(2);t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(5),t.Q6J("ngModel",i.model.recorder.fmp4StreamTimeout)("disabled",null===i.options.recorder.fmp4StreamTimeout)("nzOptions",i.fmp4StreamTimeoutOptions),t.xp6(2),t.Q6J("nzChecked",null!==i.options.recorder.fmp4StreamTimeout)}}function ta(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u9ed8\u8ba4: \u6bcf\u4e2a\u5206\u5272\u7684\u5f55\u64ad\u6587\u4ef6\u5bf9\u5e94\u4fdd\u5b58\u4e00\u4e2a\u5c01\u9762\u6587\u4ef6\uff0c\u4e0d\u7ba1\u5c01\u9762\u662f\u5426\u76f8\u540c\u3002"),t._UZ(2,"br"),t._uU(3," \u53bb\u91cd: \u76f8\u540c\u7684\u5c01\u9762\u53ea\u4fdd\u5b58\u4e00\u6b21"),t._UZ(4,"br"),t._uU(5," P.S. "),t._UZ(6,"br"),t._uU(7," \u5224\u65ad\u662f\u5426\u76f8\u540c\u662f\u4f9d\u636e\u5c01\u9762\u6570\u636e\u7684 sha1\uff0c\u53ea\u5728\u5355\u6b21\u5f55\u5236\u5185\u6709\u6548\u3002 "),t.qZA())}function ea(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",19)(1,"nz-form-label",68),t._uU(2,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),t.qZA(),t.TgZ(3,"nz-form-control",69)(4,"nz-select",70,71),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.model.recorder.readTimeout=a)}),t.qZA()(),t.TgZ(6,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.options.recorder.readTimeout=a?s.globalSettings.recorder.readTimeout:null)}),t._uU(7,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.MAs(5),i=t.oxw(2);t.xp6(3),t.Q6J("nzValidateStatus",e.value>3?"warning":e),t.xp6(1),t.Q6J("ngModel",i.model.recorder.readTimeout)("disabled",null===i.options.recorder.readTimeout)("nzOptions",i.readTimeoutOptions),t.xp6(2),t.Q6J("nzChecked",null!==i.options.recorder.readTimeout)}}function na(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-form-item",19)(1,"nz-form-label",72),t._uU(2,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),t.qZA(),t.TgZ(3,"nz-form-control",21)(4,"nz-select",73),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.model.recorder.bufferSize=a)}),t.qZA()(),t.TgZ(5,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.options.recorder.bufferSize=a?s.globalSettings.recorder.bufferSize:null)}),t._uU(6,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()}if(2&n){const e=t.oxw(2);t.xp6(4),t.Q6J("ngModel",e.model.recorder.bufferSize)("disabled",null===e.options.recorder.bufferSize)("nzOptions",e.bufferOptions)("nzOptionOverflowSize",6),t.xp6(1),t.Q6J("nzChecked",null!==e.options.recorder.bufferSize)}}function oa(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8: \u6ca1\u51fa\u9519\u5c31\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(2,"br"),t._uU(3," \u8c28\u614e: \u6ca1\u51fa\u9519\u4e14\u6ca1\u8b66\u544a\u624d\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(4,"br"),t._uU(5," \u4ece\u4e0d: \u603b\u662f\u4fdd\u7559\u6e90\u6587\u4ef6"),t._UZ(6,"br"),t.qZA())}function ia(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 User Agent "),t.BQk())}function aa(n,o){1&n&&t.YNc(0,ia,2,0,"ng-container",64),2&n&&t.Q6J("ngIf",o.$implicit.hasError("required"))}function sa(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"form",2)(2,"div",3)(3,"h2"),t._uU(4,"\u6587\u4ef6"),t.qZA(),t.TgZ(5,"nz-form-item",4)(6,"nz-form-label",5),t._uU(7,"\u8def\u5f84\u6a21\u677f"),t.qZA(),t.TgZ(8,"nz-form-control",6)(9,"input",7),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.output.pathTemplate=a)}),t.qZA(),t.YNc(10,qi,2,2,"ng-template",null,8,t.W1O),t.qZA(),t.TgZ(12,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.output.pathTemplate=a?s.globalSettings.output.pathTemplate:null)}),t._uU(13,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(14,"nz-form-item",10)(15,"nz-form-label",11),t._uU(16,"\u5927\u5c0f\u9650\u5236"),t.qZA(),t.YNc(17,$i,9,0,"ng-template",null,12,t.W1O),t.TgZ(19,"nz-form-control",13)(20,"app-input-filesize",14),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.output.filesizeLimit=a)}),t.qZA()(),t.TgZ(21,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.output.filesizeLimit=a?s.globalSettings.output.filesizeLimit:null)}),t._uU(22,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(23,"nz-form-item",15)(24,"nz-form-label",11),t._uU(25,"\u65f6\u957f\u9650\u5236"),t.qZA(),t.YNc(26,ji,9,0,"ng-template",null,16,t.W1O),t.TgZ(28,"nz-form-control",13)(29,"app-input-duration",17),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.output.durationLimit=a)}),t.qZA()(),t.TgZ(30,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.output.durationLimit=a?s.globalSettings.output.durationLimit:null)}),t._uU(31,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()(),t.TgZ(32,"div",18)(33,"h2"),t._uU(34,"\u5f55\u5236"),t.qZA(),t.TgZ(35,"nz-form-item",19)(36,"nz-form-label",11),t._uU(37,"\u76f4\u64ad\u6d41\u683c\u5f0f"),t.qZA(),t.YNc(38,Vi,15,0,"ng-template",null,20,t.W1O),t.TgZ(40,"nz-form-control",21)(41,"nz-select",22),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.recorder.streamFormat=a)}),t.qZA()(),t.TgZ(42,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.recorder.streamFormat=a?s.globalSettings.recorder.streamFormat:null)}),t._uU(43,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(44,Xi,10,5,"nz-form-item",23),t.TgZ(45,"nz-form-item",19)(46,"nz-form-label",24),t._uU(47,"\u753b\u8d28"),t.qZA(),t.TgZ(48,"nz-form-control",21)(49,"nz-select",25),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.recorder.qualityNumber=a)}),t.qZA()(),t.TgZ(50,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.recorder.qualityNumber=a?s.globalSettings.recorder.qualityNumber:null)}),t._uU(51,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(52,"nz-form-item",19)(53,"nz-form-label",26),t._uU(54,"\u4fdd\u5b58\u5c01\u9762"),t.qZA(),t.TgZ(55,"nz-form-control",27)(56,"nz-switch",28),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.recorder.saveCover=a)}),t.qZA()(),t.TgZ(57,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.recorder.saveCover=a?s.globalSettings.recorder.saveCover:null)}),t._uU(58,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(59,"nz-form-item",19)(60,"nz-form-label",11),t._uU(61,"\u5c01\u9762\u4fdd\u5b58\u7b56\u7565"),t.qZA(),t.YNc(62,ta,8,0,"ng-template",null,29,t.W1O),t.TgZ(64,"nz-form-control",21)(65,"nz-select",30),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.recorder.coverSaveStrategy=a)}),t.qZA()(),t.TgZ(66,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.recorder.coverSaveStrategy=a?s.globalSettings.recorder.coverSaveStrategy:null)}),t._uU(67,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(68,ea,8,5,"nz-form-item",23),t.TgZ(69,"nz-form-item",19)(70,"nz-form-label",31),t._uU(71,"\u65ad\u7f51\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.TgZ(72,"nz-form-control",21)(73,"nz-select",32),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.recorder.disconnectionTimeout=a)}),t.qZA()(),t.TgZ(74,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.recorder.bufferSize=a?s.globalSettings.recorder.bufferSize:null)}),t._uU(75,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.YNc(76,na,7,5,"nz-form-item",23),t.qZA(),t.TgZ(77,"div",33)(78,"h2"),t._uU(79,"\u5f39\u5e55"),t.qZA(),t.TgZ(80,"nz-form-item",19)(81,"nz-form-label",34),t._uU(82,"\u8bb0\u5f55\u793c\u7269"),t.qZA(),t.TgZ(83,"nz-form-control",27)(84,"nz-switch",35),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.recordGiftSend=a)}),t.qZA()(),t.TgZ(85,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.recordGiftSend=a?s.globalSettings.danmaku.recordGiftSend:null)}),t._uU(86,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(87,"nz-form-item",19)(88,"nz-form-label",36),t._uU(89,"\u8bb0\u5f55\u514d\u8d39\u793c\u7269"),t.qZA(),t.TgZ(90,"nz-form-control",27)(91,"nz-switch",37),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.recordFreeGifts=a)}),t.qZA()(),t.TgZ(92,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.recordFreeGifts=a?s.globalSettings.danmaku.recordFreeGifts:null)}),t._uU(93,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(94,"nz-form-item",19)(95,"nz-form-label",38),t._uU(96,"\u8bb0\u5f55\u4e0a\u8230"),t.qZA(),t.TgZ(97,"nz-form-control",27)(98,"nz-switch",39),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.recordGuardBuy=a)}),t.qZA()(),t.TgZ(99,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.recordGuardBuy=a?s.globalSettings.danmaku.recordGuardBuy:null)}),t._uU(100,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(101,"nz-form-item",19)(102,"nz-form-label",40),t._uU(103,"\u8bb0\u5f55 Super Chat"),t.qZA(),t.TgZ(104,"nz-form-control",27)(105,"nz-switch",41),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.recordSuperChat=a)}),t.qZA()(),t.TgZ(106,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.recordSuperChat=a?s.globalSettings.danmaku.recordSuperChat:null)}),t._uU(107,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(108,"nz-form-item",19)(109,"nz-form-label",42),t._uU(110,"\u5f39\u5e55\u524d\u52a0\u7528\u6237\u540d"),t.qZA(),t.TgZ(111,"nz-form-control",27)(112,"nz-switch",43),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.danmuUname=a)}),t.qZA()(),t.TgZ(113,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.danmuUname=a?s.globalSettings.danmaku.danmuUname:null)}),t._uU(114,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(115,"nz-form-item",19)(116,"nz-form-label",44),t._uU(117,"\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55"),t.qZA(),t.TgZ(118,"nz-form-control",27)(119,"nz-switch",45),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.danmaku.saveRawDanmaku=a)}),t.qZA()(),t.TgZ(120,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.danmaku.saveRawDanmaku=a?s.globalSettings.danmaku.saveRawDanmaku:null)}),t._uU(121,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()(),t.TgZ(122,"div",46)(123,"h2"),t._uU(124,"\u6587\u4ef6\u5904\u7406"),t.qZA(),t.TgZ(125,"nz-form-item",19)(126,"nz-form-label",47),t._uU(127,"flv \u6dfb\u52a0\u5143\u6570\u636e"),t.qZA(),t.TgZ(128,"nz-form-control",27)(129,"nz-switch",48),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.postprocessing.injectExtraMetadata=a)}),t.qZA()(),t.TgZ(130,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.postprocessing.injectExtraMetadata=a?s.globalSettings.postprocessing.injectExtraMetadata:null)}),t._uU(131,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(132,"nz-form-item",19)(133,"nz-form-label",49),t._uU(134,"\u8f6c\u5c01\u88c5\u4e3a mp4"),t.qZA(),t.TgZ(135,"nz-form-control",27)(136,"nz-switch",50),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.postprocessing.remuxToMp4=a)}),t.qZA()(),t.TgZ(137,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.postprocessing.remuxToMp4=a?s.globalSettings.postprocessing.remuxToMp4:null)}),t._uU(138,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(139,"nz-form-item",19)(140,"nz-form-label",11),t._uU(141,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),t.qZA(),t.YNc(142,oa,7,0,"ng-template",null,51,t.W1O),t.TgZ(144,"nz-form-control",21)(145,"nz-select",52),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.postprocessing.deleteSource=a)}),t.qZA()(),t.TgZ(146,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.postprocessing.deleteSource=a?s.globalSettings.postprocessing.deleteSource:null)}),t._uU(147,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()(),t.TgZ(148,"div",53)(149,"h2"),t._uU(150,"\u7f51\u7edc\u8bf7\u6c42"),t.qZA(),t.TgZ(151,"nz-form-item",54)(152,"nz-form-label",55),t._uU(153,"User Agent"),t.qZA(),t.TgZ(154,"nz-form-control",56)(155,"textarea",57,58),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.header.userAgent=a)}),t.qZA()(),t.YNc(157,aa,1,1,"ng-template",null,59,t.W1O),t.TgZ(159,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.header.userAgent=a?s.globalSettings.header.userAgent:null)}),t._uU(160,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()(),t.TgZ(161,"nz-form-item",54)(162,"nz-form-label",60),t._uU(163,"Cookie"),t.qZA(),t.TgZ(164,"nz-form-control",61)(165,"textarea",62,63),t.NdJ("ngModelChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.model.header.cookie=a)}),t.qZA()(),t.TgZ(167,"label",9),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.options.header.cookie=a?s.globalSettings.header.cookie:null)}),t._uU(168,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),t.qZA()()()(),t.BQk()}if(2&n){const e=t.MAs(11),i=t.MAs(18),a=t.MAs(27),s=t.MAs(39),d=t.MAs(63),C=t.MAs(143),z=t.MAs(156),M=t.MAs(158),A=t.MAs(166),l=t.oxw();t.xp6(8),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("pattern",l.pathTemplatePattern)("ngModel",l.model.output.pathTemplate)("disabled",null===l.options.output.pathTemplate),t.xp6(3),t.Q6J("nzChecked",null!==l.options.output.pathTemplate),t.xp6(3),t.Q6J("nzTooltipTitle",i),t.xp6(5),t.Q6J("ngModel",l.model.output.filesizeLimit)("disabled",null===l.options.output.filesizeLimit),t.xp6(1),t.Q6J("nzChecked",null!==l.options.output.filesizeLimit),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(5),t.Q6J("ngModel",l.model.output.durationLimit)("disabled",null===l.options.output.durationLimit),t.xp6(1),t.Q6J("nzChecked",null!==l.options.output.durationLimit),t.xp6(6),t.Q6J("nzTooltipTitle",s),t.xp6(5),t.Q6J("ngModel",l.model.recorder.streamFormat)("disabled",null===l.options.recorder.streamFormat)("nzOptions",l.streamFormatOptions),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.streamFormat),t.xp6(2),t.Q6J("ngIf","fmp4"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(5),t.Q6J("ngModel",l.model.recorder.qualityNumber)("disabled",null===l.options.recorder.qualityNumber)("nzOptions",l.qualityOptions),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.qualityNumber),t.xp6(6),t.Q6J("ngModel",l.model.recorder.saveCover)("disabled",null===l.options.recorder.saveCover),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.saveCover),t.xp6(3),t.Q6J("nzTooltipTitle",d),t.xp6(5),t.Q6J("ngModel",l.model.recorder.coverSaveStrategy)("disabled",null===l.options.recorder.coverSaveStrategy||!l.options.recorder.saveCover)("nzOptions",l.coverSaveStrategies),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.coverSaveStrategy),t.xp6(2),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(5),t.Q6J("ngModel",l.model.recorder.disconnectionTimeout)("disabled",null===l.options.recorder.disconnectionTimeout)("nzOptions",l.disconnectionTimeoutOptions)("nzOptionOverflowSize",6),t.xp6(1),t.Q6J("nzChecked",null!==l.options.recorder.bufferSize),t.xp6(2),t.Q6J("ngIf","flv"===(l.options.recorder.streamFormat||l.model.recorder.streamFormat)),t.xp6(8),t.Q6J("ngModel",l.model.danmaku.recordGiftSend)("disabled",null===l.options.danmaku.recordGiftSend),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordGiftSend),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordFreeGifts)("disabled",null===l.options.danmaku.recordFreeGifts),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordFreeGifts),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordGuardBuy)("disabled",null===l.options.danmaku.recordGuardBuy),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordGuardBuy),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.recordSuperChat)("disabled",null===l.options.danmaku.recordSuperChat),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.recordSuperChat),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.danmuUname)("disabled",null===l.options.danmaku.danmuUname),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.danmuUname),t.xp6(6),t.Q6J("ngModel",l.model.danmaku.saveRawDanmaku)("disabled",null===l.options.danmaku.saveRawDanmaku),t.xp6(1),t.Q6J("nzChecked",null!==l.options.danmaku.saveRawDanmaku),t.xp6(9),t.Q6J("ngModel",l.model.postprocessing.injectExtraMetadata)("disabled",null===l.options.postprocessing.injectExtraMetadata||!!l.options.postprocessing.remuxToMp4),t.xp6(1),t.Q6J("nzChecked",null!==l.options.postprocessing.injectExtraMetadata),t.xp6(6),t.Q6J("ngModel",l.model.postprocessing.remuxToMp4)("disabled",null===l.options.postprocessing.remuxToMp4),t.xp6(1),t.Q6J("nzChecked",null!==l.options.postprocessing.remuxToMp4),t.xp6(3),t.Q6J("nzTooltipTitle",C),t.xp6(5),t.Q6J("ngModel",l.model.postprocessing.deleteSource)("disabled",null===l.options.postprocessing.deleteSource||!l.options.postprocessing.remuxToMp4)("nzOptions",l.deleteStrategies),t.xp6(1),t.Q6J("nzChecked",null!==l.options.postprocessing.deleteSource),t.xp6(8),t.Q6J("nzWarningTip",l.warningTip)("nzValidateStatus",z.valid&&l.options.header.userAgent!==l.taskOptions.header.userAgent&&l.options.header.userAgent!==l.globalSettings.header.userAgent?"warning":z)("nzErrorTip",M),t.xp6(1),t.Q6J("rows",3)("ngModel",l.model.header.userAgent)("disabled",null===l.options.header.userAgent),t.xp6(4),t.Q6J("nzChecked",null!==l.options.header.userAgent),t.xp6(5),t.Q6J("nzWarningTip",l.warningTip)("nzValidateStatus",A.valid&&l.options.header.cookie!==l.taskOptions.header.cookie&&l.options.header.cookie!==l.globalSettings.header.cookie?"warning":A),t.xp6(1),t.Q6J("rows",3)("ngModel",l.model.header.cookie)("disabled",null===l.options.header.cookie),t.xp6(2),t.Q6J("nzChecked",null!==l.options.header.cookie)}}class Tt{constructor(o){this.changeDetector=o,this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.afterOpen=new t.vpe,this.afterClose=new t.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.pathTemplatePattern=Z._m,this.streamFormatOptions=(0,N.Z)(Z.tp),this.recordingModeOptions=(0,N.Z)(Z.kV),this.fmp4StreamTimeoutOptions=(0,N.Z)(Z.D4),this.qualityOptions=(0,N.Z)(Z.O6),this.readTimeoutOptions=(0,N.Z)(Z.D4),this.disconnectionTimeoutOptions=(0,N.Z)(Z.$w),this.bufferOptions=(0,N.Z)(Z.Rc),this.deleteStrategies=(0,N.Z)(Z.rc),this.coverSaveStrategies=(0,N.Z)(Z.J_)}ngOnChanges(){this.options=(0,N.Z)(this.taskOptions),this.setupModel(),this.changeDetector.markForCheck()}close(){this.setVisible(!1)}setVisible(o){this.visible=o,this.visibleChange.emit(o),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit((0,X.e5)(this.options,this.taskOptions)),this.close()}setupModel(){const o={};for(const e of Object.keys(this.options)){const s=this.globalSettings[e];Reflect.set(o,e,new Proxy(this.options[e],{get:(d,C)=>Reflect.get(d,C)??Reflect.get(s,C),set:(d,C,z)=>Reflect.set(d,C,z)}))}this.model=o}}Tt.\u0275fac=function(o){return new(o||Tt)(t.Y36(t.sBO))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["app-task-settings-dialog"]],viewQuery:function(o,e){if(1&o&&t.Gf(p.F,5),2&o){let i;t.iGM(i=t.CRH())&&(e.ngForm=i.first)}},inputs:{taskOptions:"taskOptions",globalSettings:"globalSettings",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm",afterOpen:"afterOpen",afterClose:"afterClose"},features:[t.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"],["pathTemplateErrorTip",""],["nz-checkbox","",3,"nzChecked","nzCheckedChange"],[1,"setting-item","filesize-limit"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],["filesizeLimitTip",""],[1,"setting-control","input"],["name","filesizeLimit",3,"ngModel","disabled","ngModelChange"],[1,"setting-item","duration-limit"],["durationLimitTip",""],["name","durationLimit",3,"ngModel","disabled","ngModelChange"],["ngModelGroup","recorder",1,"form-group","recorder"],[1,"setting-item"],["streamFormatTip",""],[1,"setting-control","select"],["name","streamFormat",3,"ngModel","disabled","nzOptions","ngModelChange"],["class","setting-item",4,"ngIf"],["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","","nzTooltipTitle","\u5f55\u64ad\u6587\u4ef6\u5b8c\u6210\u65f6\u4fdd\u5b58\u5f53\u524d\u76f4\u64ad\u95f4\u7684\u5c01\u9762",1,"setting-label"],[1,"setting-control","switch"],["name","saveCover",3,"ngModel","disabled","ngModelChange"],["coverSaveStrategyTip",""],["name","coverSaveStrategy",3,"ngModel","disabled","nzOptions","ngModelChange"],["nzNoColon","","nzTooltipTitle","\u65ad\u7f51\u8d85\u8fc7\u7b49\u5f85\u65f6\u95f4\u5c31\u7ed3\u675f\u5f55\u5236\uff0c\u5982\u679c\u7f51\u7edc\u6062\u590d\u540e\u4ecd\u672a\u4e0b\u64ad\u4f1a\u81ea\u52a8\u91cd\u65b0\u5f00\u59cb\u5f55\u5236\u3002",1,"setting-label"],["name","disconnectionTimeout",3,"ngModel","disabled","nzOptions","nzOptionOverflowSize","ngModelChange"],["ngModelGroup","danmaku",1,"form-group","danmaku"],["nzFor","recordGiftSend","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordGiftSend","name","recordGiftSend",3,"ngModel","disabled","ngModelChange"],["nzFor","recordFreeGifts","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u514d\u8d39\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordFreeGifts","name","recordFreeGifts",3,"ngModel","disabled","ngModelChange"],["nzFor","recordGuardBuy","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u4e0a\u8230\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordGuardBuy","name","recordGuardBuy",3,"ngModel","disabled","ngModelChange"],["nzFor","recordSuperChat","nzNoColon","","nzTooltipTitle","\u8bb0\u5f55 Super Chat \u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["id","recordSuperChat","name","recordSuperChat",3,"ngModel","disabled","ngModelChange"],["nzFor","danmuUname","nzNoColon","","nzTooltipTitle","\u53d1\u9001\u8005: \u5f39\u5e55\u5185\u5bb9",1,"setting-label"],["id","danmuUname","name","danmuUname",3,"ngModel","disabled","ngModelChange"],["nzFor","saveRawDanmaku","nzNoColon","","nzTooltipTitle","\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55\u5230 JSON lines \u6587\u4ef6\uff0c\u4e3b\u8981\u7528\u4e8e\u5206\u6790\u8c03\u8bd5\u3002",1,"setting-label"],["id","saveRawDanmaku","name","saveRawDanmaku",3,"ngModel","disabled","ngModelChange"],["ngModelGroup","postprocessing",1,"form-group","postprocessing"],["nzNoColon","","nzTooltipTitle","\u6dfb\u52a0\u5173\u952e\u5e27\u7b49\u5143\u6570\u636e\u4f7f\u5b9a\u4f4d\u64ad\u653e\u548c\u62d6\u8fdb\u5ea6\u6761\u4e0d\u4f1a\u5361\u987f",1,"setting-label"],["name","injectExtraMetadata",3,"ngModel","disabled","ngModelChange"],["nzNoColon","","nzTooltipTitle","\u8c03\u7528 ffmpeg \u8fdb\u884c\u8f6c\u6362\uff0c\u9700\u8981\u5b89\u88c5 ffmpeg \u3002",1,"setting-label"],["name","remuxToMp4",3,"ngModel","disabled","ngModelChange"],["deleteSourceTip",""],["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"],["userAgentErrorTip",""],["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"],["fmp4StreamTimeoutTip",""],["name","fmp4StreamTimeout",3,"ngModel","disabled","nzOptions","ngModelChange"],["fmp4StreamTimeout","ngModel"],["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\u8f83\u591a\u3002",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"],["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"],["name","bufferSize",3,"ngModel","disabled","nzOptions","nzOptionOverflowSize","ngModelChange"]],template:function(o,e){1&o&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()})("nzAfterOpen",function(){return e.afterOpen.emit()})("nzAfterClose",function(){return e.afterClose.emit()}),t.YNc(1,sa,169,80,"ng-container",1),t.qZA()),2&o&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",null==e.ngForm||null==e.ngForm.form?null:e.ngForm.form.invalid)},dependencies:[c.O5,p._Y,p.Fj,p.JJ,p.JL,p.Q7,p.c5,p.On,p.Mq,p.F,O.t3,O.SK,Ft.i,K.du,K.Hf,R.Lr,R.Nx,R.iK,R.Fd,V.Zp,$t.Ie,wt.Vq,Ki.i,Gi.q],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}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;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}}.filesize-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%], .duration-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}@media screen and (max-width: 319px){.filesize-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%], .duration-limit[_ngcontent-%COMP%]   .setting-control.input[_ngcontent-%COMP%]{margin-left:0!important}}"],changeDetection:0});const ze=function(){return{spacer:""}};function ra(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",3)(2,"span",4),t._UZ(3,"i"),t.qZA(),t.TgZ(4,"span",5),t._uU(5),t.ALo(6,"duration"),t.qZA(),t.TgZ(7,"span",6),t._uU(8),t.ALo(9,"datarate"),t.qZA(),t.TgZ(10,"span",7),t._uU(11),t.ALo(12,"filesize"),t.qZA(),t.TgZ(13,"span",8),t.ALo(14,"number"),t._uU(15),t.ALo(16,"number"),t.qZA(),t.TgZ(17,"span",9),t._uU(18),t.ALo(19,"quality"),t.qZA()()()),2&n){const e=t.oxw();t.xp6(5),t.hij(" ",t.lcZ(6,6,e.status.rec_elapsed)," "),t.xp6(3),t.hij(" ",t.xi3(9,8,e.status.rec_rate,t.DdM(22,ze))," "),t.xp6(3),t.hij(" ",t.xi3(12,11,e.status.rec_total,t.DdM(23,ze))," "),t.xp6(2),t.MGl("nzTooltipTitle","\u5f39\u5e55\u603b\u8ba1\uff1a",t.xi3(14,14,e.status.danmu_total,"1.0-0"),""),t.xp6(2),t.hij(" ",t.xi3(16,17,e.status.danmu_total,"1.0-0")," "),t.xp6(3),t.hij(" ",e.status.real_quality_number?t.lcZ(19,20,e.status.real_quality_number):""," ")}}function la(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",10),t.ALo(2,"filename"),t._uU(3),t.ALo(4,"filename"),t.qZA(),t._UZ(5,"nz-progress",11),t.ALo(6,"progress"),t.qZA()),2&n){const e=t.oxw();let i,a;t.xp6(1),t.MGl("nzTooltipTitle","\u6b63\u5728\u6dfb\u52a0\u5143\u6570\u636e\uff1a",t.lcZ(2,7,null!==(i=e.status.postprocessing_path)&&void 0!==i?i:""),""),t.xp6(2),t.hij(" ",t.lcZ(4,9,null!==(a=e.status.postprocessing_path)&&void 0!==a?a:"")," "),t.xp6(2),t.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===e.status.postprocessing_progress?0:t.lcZ(6,11,e.status.postprocessing_progress))}}function ca(n,o){if(1&n&&(t.TgZ(0,"div",2)(1,"p",12),t.ALo(2,"filename"),t._uU(3),t.ALo(4,"filename"),t.qZA(),t._UZ(5,"nz-progress",11),t.ALo(6,"progress"),t.qZA()),2&n){const e=t.oxw();let i,a;t.xp6(1),t.MGl("nzTooltipTitle","\u6b63\u5728\u8f6c\u5c01\u88c5\uff1a",t.lcZ(2,7,null!==(i=e.status.postprocessing_path)&&void 0!==i?i:""),""),t.xp6(2),t.hij(" ",t.lcZ(4,9,null!==(a=e.status.postprocessing_path)&&void 0!==a?a:"")," "),t.xp6(2),t.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===e.status.postprocessing_progress?0:t.lcZ(6,11,e.status.postprocessing_progress))}}class xt{constructor(){this.RunningStatus=m.cG}}xt.\u0275fac=function(o){return new(o||xt)},xt.\u0275cmp=t.Xpm({type:xt,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","nzTooltipPlacement","top",1,"status-indicator"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u7528\u65f6","nzTooltipPlacement","top",1,"time-elapsed"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u901f\u5ea6","nzTooltipPlacement","top",1,"data-rate"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u603b\u8ba1","nzTooltipPlacement","top",1,"data-count"],["nz-tooltip","","nzTooltipPlacement","top",1,"danmu-count",3,"nzTooltipTitle"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\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(o,e){1&o&&(t.ynx(0,0),t.YNc(1,ra,20,24,"div",1),t.YNc(2,la,7,13,"div",1),t.YNc(3,ca,7,13,"div",1),t.BQk()),2&o&&(t.Q6J("ngSwitch",e.status.running_status),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.RECORDING),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.INJECTING),t.xp6(1),t.Q6J("ngSwitchCase",e.RunningStatus.REMUXING))},dependencies:[c.RF,c.n9,it.SY,ne,c.JJ,tt,Rt.f,J,fe.U,H,G],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;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:_ngcontent-%COMP%_blinker 1s cubic-bezier(1,0,0,1) infinite}@keyframes _ngcontent-%COMP%_blinker{0%{opacity:0}to{opacity:1}}.status-bar.injecting[_ngcontent-%COMP%], .status-bar.remuxing[_ngcontent-%COMP%], .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});var _a=r(5141),Qt=r(457),ua=r(4968),pa=r(1481);const Kt=new Map,Gt=new Map;class Dt{constructor(o){this.domSanitizer=o}transform(o,e="object"){return"object"===e?Gt.has(o)?(0,w.of)(Gt.get(o)):(0,Qt.D)(this.fetchImage(o)).pipe((0,W.U)(i=>URL.createObjectURL(i)),(0,W.U)(i=>this.domSanitizer.bypassSecurityTrustUrl(i)),(0,v.b)(i=>Gt.set(o,i)),(0,lt.K)(()=>(0,w.of)(this.domSanitizer.bypassSecurityTrustUrl("")))):Kt.has(o)?(0,w.of)(Kt.get(o)):(0,Qt.D)(this.fetchImage(o)).pipe((0,st.w)(i=>this.createDataURL(i)),(0,v.b)(i=>Kt.set(o,i)),(0,lt.K)(()=>(0,w.of)(this.domSanitizer.bypassSecurityTrustUrl(""))))}fetchImage(o){return(0,yt.Z)(function*(){return yield(yield fetch(o,{referrer:""})).blob()})()}createDataURL(o){const e=new FileReader,i=(0,ua.R)(e,"load").pipe((0,W.U)(()=>this.domSanitizer.bypassSecurityTrustUrl(e.result)));return e.readAsDataURL(o),i}}function ga(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"app-info-panel",21),t.NdJ("close",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.showInfoPanel=!1)}),t.qZA()}if(2&n){const e=t.oxw(2);t.Q6J("data",e.data)}}Dt.\u0275fac=function(o){return new(o||Dt)(t.Y36(pa.H7,16))},Dt.\u0275pipe=t.Yjl({name:"dataurl",type:Dt,pure:!0});const da=function(n){return[n,"detail"]};function ma(n,o){if(1&n&&(t.TgZ(0,"a",15)(1,"div",16),t._UZ(2,"img",17),t.ALo(3,"async"),t.ALo(4,"dataurl"),t.TgZ(5,"h2",18),t._uU(6),t.qZA(),t.YNc(7,ga,1,1,"app-info-panel",19),t._UZ(8,"app-status-display",20),t.qZA()()),2&n){const e=t.oxw();t.Q6J("routerLink",t.VKq(10,da,e.data.room_info.room_id)),t.xp6(2),t.Q6J("src",t.lcZ(3,6,t.lcZ(4,8,e.data.room_info.cover)),t.LSH),t.xp6(3),t.Q6J("nzTooltipTitle","\u76f4\u64ad\u95f4\u6807\u9898\uff1a"+e.data.room_info.title),t.xp6(1),t.hij(" ",e.data.room_info.title," "),t.xp6(1),t.Q6J("ngIf",e.showInfoPanel),t.xp6(1),t.Q6J("status",e.data.task_status)}}function ha(n,o){if(1&n&&(t._UZ(0,"nz-avatar",22),t.ALo(1,"async"),t.ALo(2,"dataurl")),2&n){const e=t.oxw();t.Q6J("nzShape","square")("nzSize",54)("nzSrc",t.lcZ(1,3,t.lcZ(2,5,e.data.user_info.face)))}}function fa(n,o){1&n&&(t.TgZ(0,"nz-tag",31),t._UZ(1,"i",32),t.TgZ(2,"span"),t._uU(3,"\u672a\u5f00\u64ad"),t.qZA()())}function Ca(n,o){1&n&&(t.TgZ(0,"nz-tag",33),t._UZ(1,"i",34),t.TgZ(2,"span"),t._uU(3,"\u76f4\u64ad\u4e2d"),t.qZA()())}function za(n,o){1&n&&(t.TgZ(0,"nz-tag",35),t._UZ(1,"i",36),t.TgZ(2,"span"),t._uU(3,"\u8f6e\u64ad\u4e2d"),t.qZA()())}function Ta(n,o){if(1&n&&(t.TgZ(0,"p",23)(1,"span",24)(2,"a",25),t._uU(3),t.qZA()(),t.TgZ(4,"span",26),t.ynx(5,27),t.YNc(6,fa,4,0,"nz-tag",28),t.YNc(7,Ca,4,0,"nz-tag",29),t.YNc(8,za,4,0,"nz-tag",30),t.BQk(),t.qZA()()),2&n){const e=t.oxw();t.xp6(2),t.MGl("href","https://space.bilibili.com/",e.data.user_info.uid,"",t.LSH),t.xp6(1),t.hij(" ",e.data.user_info.name," "),t.xp6(2),t.Q6J("ngSwitch",e.data.room_info.live_status),t.xp6(1),t.Q6J("ngSwitchCase",0),t.xp6(1),t.Q6J("ngSwitchCase",1),t.xp6(1),t.Q6J("ngSwitchCase",2)}}function xa(n,o){if(1&n&&(t.TgZ(0,"span",44)(1,"a",25),t._uU(2),t.qZA()()),2&n){const e=t.oxw(2);t.xp6(1),t.MGl("href","https://live.bilibili.com/",e.data.room_info.short_room_id,"",t.LSH),t.xp6(1),t.hij(" ",e.data.room_info.short_room_id,"")}}function Da(n,o){if(1&n&&(t.TgZ(0,"p",37)(1,"span",38)(2,"span",39),t._uU(3,"\u623f\u95f4\u53f7\uff1a"),t.qZA(),t.YNc(4,xa,3,2,"span",40),t.TgZ(5,"span",41)(6,"a",25),t._uU(7),t.qZA()()(),t.TgZ(8,"span",42)(9,"a",25)(10,"nz-tag",43),t._uU(11),t.qZA()()()()),2&n){const e=t.oxw();t.xp6(4),t.Q6J("ngIf",e.data.room_info.short_room_id),t.xp6(2),t.MGl("href","https://live.bilibili.com/",e.data.room_info.room_id,"",t.LSH),t.xp6(1),t.Oqu(e.data.room_info.room_id),t.xp6(2),t.hYB("href","https://live.bilibili.com/p/eden/area-tags?parentAreaId=",e.data.room_info.parent_area_id,"&areaId=",e.data.room_info.area_id,"",t.LSH),t.xp6(1),t.Q6J("nzColor","#23ade5"),t.xp6(1),t.hij(" ",e.data.room_info.area_name," ")}}function ka(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-switch",45),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.toggleRecorder())}),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzDisabled",e.toggleRecorderForbidden)("ngModel",e.data.task_status.recorder_enabled)("nzControl",!0)("nzLoading",e.switchPending)}}function Ma(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",46),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.cutStream())}),t._UZ(1,"i",47),t.qZA()}if(2&n){const e=t.oxw();t.ekj("not-allowed",e.data.task_status.running_status!==e.RunningStatus.RECORDING)}}function Oa(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"app-task-settings-dialog",51),t.NdJ("visibleChange",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.settingsDialogVisible=a)})("confirm",function(a){t.CHM(e);const s=t.oxw(2);return t.KtG(s.changeTaskOptions(a))})("afterClose",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.cleanSettingsData())}),t.qZA(),t.BQk()}if(2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("taskOptions",e.taskOptions)("globalSettings",e.globalSettings)("visible",e.settingsDialogVisible)}}function va(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",48),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.openSettingsDialog())}),t._UZ(1,"i",49),t.qZA(),t.YNc(2,Oa,2,3,"ng-container",50)}if(2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngIf",e.taskOptions&&e.globalSettings)}}function Ea(n,o){if(1&n&&(t.TgZ(0,"div",54),t._UZ(1,"i",55),t.qZA()),2&n){t.oxw(2);const e=t.MAs(20);t.Q6J("nzDropdownMenu",e)}}function Aa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",56),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!0)}),t._UZ(1,"i",55),t.qZA()}}function Pa(n,o){if(1&n&&(t.YNc(0,Ea,2,1,"div",52),t.YNc(1,Aa,2,0,"div",53)),2&n){const e=t.oxw();t.Q6J("ngIf",!e.useDrawer),t.xp6(1),t.Q6J("ngIf",e.useDrawer)}}function ya(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"ul",57)(1,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.startTask())}),t._uU(2,"\u8fd0\u884c\u4efb\u52a1"),t.qZA(),t.TgZ(3,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopTask())}),t._uU(4,"\u505c\u6b62\u4efb\u52a1"),t.qZA(),t.TgZ(5,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.removeTask())}),t._uU(6,"\u5220\u9664\u4efb\u52a1"),t.qZA(),t.TgZ(7,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.stopTask(!0))}),t._uU(8,"\u5f3a\u5236\u505c\u6b62\u4efb\u52a1"),t.qZA(),t.TgZ(9,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.disableRecorder(!0))}),t._uU(10,"\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),t.qZA(),t.TgZ(11,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.updateTaskInfo())}),t._uU(12,"\u5237\u65b0\u6570\u636e"),t.qZA(),t.TgZ(13,"li",58),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.showInfoPanel=!0)}),t._uU(14,"\u663e\u793a\u5f55\u5236\u4fe1\u606f"),t.qZA()()}}function Sa(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"div",61),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(2);return t.KtG(a.menuDrawerVisible=!1)}),t.GkF(2,12),t.qZA(),t.BQk()}if(2&n){t.oxw(2);const e=t.MAs(23);t.xp6(2),t.Q6J("ngTemplateOutlet",e)}}const ba=function(){return{padding:"0"}};function Fa(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-drawer",59),t.NdJ("nzVisibleChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.menuDrawerVisible=a)})("nzOnClose",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.menuDrawerVisible=!1)}),t.YNc(1,Sa,3,1,"ng-container",60),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzClosable",!1)("nzBodyStyle",t.DdM(3,ba))("nzVisible",e.menuDrawerVisible)}}const wa=function(n,o,e,i){return[n,o,e,i]},Ia=function(){return{padding:"0.5rem"}},Na=function(){return{size:"large"}};class kt{constructor(o,e,i,a,s,d,C){this.changeDetector=e,this.message=i,this.modal=a,this.settingService=s,this.taskManager=d,this.appTaskSettings=C,this.stopped=!1,this.destroyed=new F.x,this.useDrawer=!1,this.menuDrawerVisible=!1,this.switchPending=!1,this.settingsDialogVisible=!1,this.RunningStatus=m.cG,o.observe(ft[0]).pipe((0,y.R)(this.destroyed)).subscribe(z=>{this.useDrawer=z.matches,e.markForCheck()})}get roomId(){return this.data.room_info.room_id}get toggleRecorderForbidden(){return!this.data.task_status.monitor_enabled}get showInfoPanel(){return Boolean(this.appTaskSettings.getSettings(this.roomId).showInfoPanel)}set showInfoPanel(o){this.appTaskSettings.updateSettings(this.roomId,{showInfoPanel:o})}ngOnChanges(o){console.debug("[ngOnChanges]",this.roomId,o),this.stopped=this.data.task_status.running_status===m.cG.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===m.cG.STOPPED?this.taskManager.startTask(this.roomId).subscribe():this.message.warning("\u4efb\u52a1\u8fd0\u884c\u4e2d\uff0c\u5ffd\u7565\u64cd\u4f5c\u3002")}stopTask(o=!1){this.data.task_status.running_status!==m.cG.STOPPED?o&&this.data.task_status.running_status==m.cG.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((e,i)=>{this.taskManager.stopTask(this.roomId,o).subscribe(e,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(o=!1){this.data.task_status.recorder_enabled?o&&this.data.task_status.running_status==m.cG.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((e,i)=>{this.taskManager.disableRecorder(this.roomId,o).subscribe(e,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(){(0,ge.$)(this.settingService.getTaskOptions(this.roomId),this.settingService.getSettings(["output","header","danmaku","recorder","postprocessing"])).subscribe(([o,e])=>{this.taskOptions=o,this.globalSettings=e,this.settingsDialogVisible=!0,this.changeDetector.markForCheck()},o=>{this.message.error(`\u83b7\u53d6\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${o.message}`)})}cleanSettingsData(){delete this.taskOptions,delete this.globalSettings,this.changeDetector.markForCheck()}changeTaskOptions(o){this.settingService.changeTaskOptions(this.roomId,o).pipe((0,Bt.X)(3,300)).subscribe(e=>{this.message.success("\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u6210\u529f")},e=>{this.message.error(`\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${e.message}`)})}cutStream(){this.data.task_status.running_status===m.cG.RECORDING&&this.taskManager.canCutStream(this.roomId).subscribe(o=>{o&&this.taskManager.cutStream(this.roomId).subscribe()})}}function Za(n,o){1&n&&(t.TgZ(0,"div",2),t._UZ(1,"nz-empty"),t.qZA())}function Ba(n,o){1&n&&t._UZ(0,"app-task-item",6),2&n&&t.Q6J("data",o.$implicit)}function Ua(n,o){if(1&n&&(t.TgZ(0,"div",3,4),t.YNc(2,Ba,1,1,"app-task-item",5),t.qZA()),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngForOf",e.dataList)("ngForTrackBy",e.trackByRoomId)}}kt.\u0275fac=function(o){return new(o||kt)(t.Y36(h.Yg),t.Y36(t.sBO),t.Y36(Jt.dD),t.Y36(K.Sf),t.Y36(Qi.R),t.Y36(Q),t.Y36(et))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["app-task-item"]],hostVars:2,hostBindings:function(o,e){2&o&&t.ekj("stopped",e.stopped)},inputs:{data:"data"},features:[t.TTD],decls:25,vars:19,consts:[[3,"nzCover","nzHoverable","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"],[3,"routerLink"],[1,"cover-wrapper"],["alt","\u76f4\u64ad\u95f4\u5c01\u9762",1,"cover",3,"src"],["nz-tooltip","","nzTooltipPlacement","bottomLeft",1,"title",3,"nzTooltipTitle"],[3,"data","close",4,"ngIf"],[3,"status"],[3,"data","close"],[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","\u5207\u5272\u6587\u4ef6",3,"click"],["nz-icon","","nzType","scissor",1,"action-icon"],["nz-tooltip","","nzTooltipTitle","\u4efb\u52a1\u8bbe\u7f6e",3,"click"],["nz-icon","","nzType","setting",1,"action-icon"],[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",1,"action-icon"],[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(o,e){if(1&o&&(t.TgZ(0,"nz-card",0)(1,"nz-skeleton",1),t._UZ(2,"nz-card-meta",2),t.qZA()(),t.YNc(3,ma,9,12,"ng-template",null,3,t.W1O),t.YNc(5,ha,3,7,"ng-template",null,4,t.W1O),t.YNc(7,Ta,9,6,"ng-template",null,5,t.W1O),t.YNc(9,Da,12,7,"ng-template",null,6,t.W1O),t.YNc(11,ka,1,4,"ng-template",null,7,t.W1O),t.YNc(13,Ma,2,2,"ng-template",null,8,t.W1O),t.YNc(15,va,3,1,"ng-template",null,9,t.W1O),t.YNc(17,Pa,2,2,"ng-template",null,10,t.W1O),t.TgZ(19,"nz-dropdown-menu",null,11),t.GkF(21,12),t.YNc(22,ya,15,0,"ng-template",null,13,t.W1O),t.qZA(),t.YNc(24,Fa,2,4,"nz-drawer",14)),2&o){const i=t.MAs(4),a=t.MAs(6),s=t.MAs(8),d=t.MAs(10),C=t.MAs(12),z=t.MAs(14),M=t.MAs(16),A=t.MAs(18),l=t.MAs(23);t.Q6J("nzCover",i)("nzHoverable",!0)("nzActions",t.l5B(12,wa,z,M,C,A))("nzBodyStyle",t.DdM(17,Ia)),t.xp6(1),t.Q6J("nzActive",!0)("nzLoading",!e.data)("nzAvatar",t.DdM(18,Na)),t.xp6(1),t.Q6J("nzAvatar",a)("nzTitle",s)("nzDescription",d),t.xp6(19),t.Q6J("ngTemplateOutlet",l),t.xp6(3),t.Q6J("ngIf",e.useDrawer)}},dependencies:[c.O5,c.tP,c.RF,c.n9,p.JJ,p.On,E.bd,E.l7,we,Yt.Dz,P.Ls,it.SY,Wt,Ft.i,Ct.wO,Ct.r9,j.cm,j.RR,Lt.w,at.Vz,at.SQ,rt.rH,Tt,xt,_a.i,c.Ov,Dt],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:-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;column-gap:1em}.meta-title[_ngcontent-%COMP%]   .user-name[_ngcontent-%COMP%]{color:#fb7299;font-size:1rem;font-weight:700;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}.action-icon[_ngcontent-%COMP%]{font-size:16px}.not-allowed[_ngcontent-%COMP%]{cursor:not-allowed}'],changeDetection:0});class Mt{constructor(){this.dataList=[]}trackByRoomId(o,e){return e.room_info.room_id}}Mt.\u0275fac=function(o){return new(o||Mt)},Mt.\u0275cmp=t.Xpm({type:Mt,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(o,e){if(1&o&&(t.YNc(0,Za,2,0,"div",0),t.YNc(1,Ua,3,2,"ng-template",null,1,t.W1O)),2&o){const i=t.MAs(2);t.Q6J("ngIf",0===e.dataList.length)("ngIfElse",i)}},dependencies:[c.sg,c.O5,Vt.p9,kt],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;overflow:auto}[_nghost-%COMP%]{--card-width: 400px;--grid-gutter: 12px;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));gap:var(--grid-gutter);justify-content:center;max-width:100%;margin:0 auto}.empty-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}"],changeDetection:0});var Ra=r(4351);function La(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u76f4\u64ad\u95f4\u53f7\u6216 URL "),t.BQk())}function Ja(n,o){1&n&&(t.ynx(0),t._uU(1," \u8f93\u5165\u6709\u9519\u8bef "),t.BQk())}function Qa(n,o){if(1&n&&(t.YNc(0,La,2,0,"ng-container",8),t.YNc(1,Ja,2,0,"ng-container",8)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Ka(n,o){if(1&n&&(t.ynx(0),t._UZ(1,"nz-alert",9),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("nzType",e.type)("nzMessage",e.message)}}function Ga(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,Qa,2,2,"ng-template",null,5,t.W1O),t.qZA()()(),t.TgZ(7,"div",6),t.YNc(8,Ka,2,2,"ng-container",7),t.qZA(),t.BQk()),2&n){const e=t.MAs(6),i=t.oxw();t.xp6(1),t.Q6J("formGroup",i.formGroup),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("pattern",i.pattern),t.xp6(4),t.Q6J("ngForOf",i.resultMessages)}}const Wa=/^https?:\/\/live\.bilibili\.com\/(\d+).*$/,Ya=/^\s*(?:\d+(?:[ ]+\d+)*|https?:\/\/live\.bilibili\.com\/\d+.*)\s*$/;class Ot{constructor(o,e,i){this.changeDetector=e,this.taskManager=i,this.visible=!1,this.visibleChange=new t.vpe,this.pending=!1,this.resultMessages=[],this.pattern=Ya,this.formGroup=o.group({input:["",[p.kI.required,p.kI.pattern(this.pattern)]]})}get inputControl(){return this.formGroup.get("input")}open(){this.setVisible(!0)}close(){this.resultMessages=[],this.reset(),this.setVisible(!1)}setVisible(o){this.visible=o,this.visibleChange.emit(o),this.changeDetector.markForCheck()}reset(){this.pending=!1,this.formGroup.reset(),this.changeDetector.markForCheck()}handleCancel(){this.close()}handleConfirm(){this.pending=!0;const o=this.inputControl.value.trim();let e;e=o.startsWith("http")?[parseInt(Wa.exec(o)[1])]:new Set(o.split(/\s+/).map(i=>parseInt(i))),(0,Qt.D)(e).pipe((0,Ra.b)(i=>this.taskManager.addTask(i)),(0,v.b)(i=>{this.resultMessages.push(i),this.changeDetector.markForCheck()})).subscribe({complete:()=>{this.resultMessages.every(i=>"success"===i.type)?this.close():this.reset()}})}}Ot.\u0275fac=function(o){return new(o||Ot)(t.Y36(p.qu),t.Y36(t.sBO),t.Y36(Q))},Ot.\u0275cmp=t.Xpm({type:Ot,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(o,e){1&o&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Ga,9,4,"ng-container",1),t.qZA()),2&o&&t.Q6J("nzVisible",e.visible)("nzOkLoading",e.pending)("nzOkDisabled",e.formGroup.invalid)("nzCancelDisabled",e.pending)("nzClosable",!e.pending)("nzMaskClosable",!e.pending)},dependencies:[c.sg,c.O5,p._Y,p.Fj,p.JJ,p.JL,p.Q7,p.c5,p.sg,p.u,O.t3,O.SK,K.du,K.Hf,R.Lr,R.Nx,R.Fd,V.Zp,pn],styles:[".result-messages-container[_ngcontent-%COMP%]{width:100%;max-height:200px;overflow-y:auto}"],changeDetection:0});class vt{transform(o,e=""){return console.debug("filter tasks by '%s'",e),[...this.filterByTerm(o,e)]}filterByTerm(o,e){return function*qa(n,o){for(const e of n)o(e)&&(yield e)}(o,i=>""===(e=e.trim())||i.user_info.name.includes(e)||i.room_info.title.toString().includes(e)||i.room_info.area_name.toString().includes(e)||i.room_info.room_id.toString().includes(e)||i.room_info.short_room_id.toString().includes(e))}}function $a(n,o){if(1&n&&t._UZ(0,"nz-spin",6),2&n){const e=t.oxw();t.Q6J("nzSize","large")("nzSpinning",e.loading)}}function ja(n,o){if(1&n&&(t._UZ(0,"app-task-list",7),t.ALo(1,"filterTasks")),2&n){const e=t.oxw();t.Q6J("dataList",t.xi3(1,1,e.dataList,e.filterTerm))}}vt.\u0275fac=function(o){return new(o||vt)},vt.\u0275pipe=t.Yjl({name:"filterTasks",type:vt,pure:!0});const Te="app-tasks-selection",xe="app-tasks-reverse";class Et{constructor(o,e,i,a){this.changeDetector=o,this.notification=e,this.storage=i,this.taskService=a,this.loading=!0,this.dataList=[],this.filterTerm="",this.selection=this.retrieveSelection(),this.reverse=this.retrieveReverse()}ngOnInit(){this.syncTaskData()}ngOnDestroy(){this.desyncTaskData()}onSelectionChanged(o){this.selection=o,this.storeSelection(o),this.desyncTaskData(),this.syncTaskData()}onReverseChanged(o){this.reverse=o,this.storeReverse(o),o&&(this.dataList=[...this.dataList.reverse()],this.changeDetector.markForCheck())}retrieveSelection(){const o=this.storage.getData(Te);return null!==o?o:m.jf.ALL}retrieveReverse(){return"true"===this.storage.getData(xe)}storeSelection(o){this.storage.setData(Te,o)}storeReverse(o){this.storage.setData(xe,o.toString())}syncTaskData(){this.dataSubscription=(0,w.of)((0,w.of)(0),(0,pe.F)(1e3)).pipe((0,de.u)(),(0,st.w)(()=>this.taskService.getAllTaskData(this.selection)),(0,lt.K)(o=>{throw this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519",o.message),o}),(0,Bt.X)(10,3e3)).subscribe(o=>{this.loading=!1,this.dataList=this.reverse?o.reverse():o,this.changeDetector.markForCheck()},o=>{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(){this.dataSubscription?.unsubscribe()}}Et.\u0275fac=function(o){return new(o||Et)(t.Y36(t.sBO),t.Y36(me.zb),t.Y36(Ce.V),t.Y36(Ut.M))},Et.\u0275cmp=t.Xpm({type:Et,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(o,e){if(1&o){const i=t.EpF();t.TgZ(0,"app-toolbar",0),t.NdJ("selectionChange",function(s){return e.onSelectionChanged(s)})("reverseChange",function(s){return e.onReverseChanged(s)})("filterChange",function(s){return e.filterTerm=s}),t.qZA(),t.YNc(1,$a,1,2,"nz-spin",1),t.YNc(2,ja,2,4,"ng-template",null,2,t.W1O),t.TgZ(4,"button",3),t.NdJ("click",function(){t.CHM(i);const s=t.MAs(7);return t.KtG(s.open())}),t._UZ(5,"i",4),t.qZA(),t._UZ(6,"app-add-task-dialog",null,5)}if(2&o){const i=t.MAs(3);t.Q6J("selection",e.selection)("reverse",e.reverse),t.xp6(1),t.Q6J("ngIf",e.loading)("ngIfElse",i)}},dependencies:[c.O5,P.Ls,it.SY,At.ix,Lt.w,Di.dQ,Ht.W,zt,Mt,Ot,vt],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;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});const Va=[{path:":id/detail",component:ht},{path:"",component:Et}];class nt{}nt.\u0275fac=function(o){return new(o||nt)},nt.\u0275mod=t.oAB({type:nt}),nt.\u0275inj=t.cJS({imports:[rt.Bz.forChild(Va),rt.Bz]});class ot{}ot.\u0275fac=function(o){return new(o||ot)},ot.\u0275mod=t.oAB({type:ot}),ot.\u0275inj=t.cJS({imports:[c.ez,p.u5,p.UX,h.xu,g,O.Jb,E.vh,qt,Yt.Rt,P.PV,qt,it.cg,ke,Ft.m,j.b1,At.sL,K.Qp,R.U5,V.o7,$t.Wr,Ye,Pt.aF,jt.S,Vt.Xo,Ht.j,gn,at.BL,wt.LV,Rn,L.HQ,Xn,Io,Jo.forRoot({echarts:()=>r.e(386).then(r.bind(r,7386))}),nt,Qo.m]})},7445:(x,D,r)=>{r.d(D,{F:()=>h});var c=r(4986),p=r(5963);function h(t=0,f=c.z){return t<0&&(t=0),(0,p.H)(t,t,f)}},7188:(x,D,r)=>{r.d(D,{$:()=>u});var c=r(9751),p=r(8421);const{isArray:h}=Array;var f=r(515),_=r(5403),q=r(3269);function u(...g){const O=(0,q.jO)(g),E=function t(g){return 1===g.length&&h(g[0])?g[0]:g}(g);return E.length?new c.y(P=>{let T=E.map(()=>[]),F=E.map(()=>!1);P.add(()=>{T=F=null});for(let y=0;!P.closed&&y<E.length;y++)(0,p.Xf)(E[y]).subscribe((0,_.x)(P,$=>{if(T[y].push($),T.every(k=>k.length)){const k=T.map(S=>S.shift());P.next(O?O(...k):k),T.some((S,bt)=>!S.length&&F[bt])&&P.complete()}},()=>{F[y]=!0,!T[y].length&&P.complete()}));return()=>{T=F=null}}):f.E}}}]);
\ No newline at end of file
diff --git a/src/blrec/data/webapp/548.73ee5c2419f2617e.js b/src/blrec/data/webapp/548.f8a3199ca2412e0d.js
similarity index 80%
rename from src/blrec/data/webapp/548.73ee5c2419f2617e.js
rename to src/blrec/data/webapp/548.f8a3199ca2412e0d.js
index b2db0bc..50d177c 100644
--- a/src/blrec/data/webapp/548.73ee5c2419f2617e.js
+++ b/src/blrec/data/webapp/548.f8a3199ca2412e0d.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[548],{2548:(os,xe,c)=>{c.r(xe),c.d(xe,{SettingsModule:()=>_t});var p=c(6895),r=c(433),ge=c(5681),en=c(5655),nn=c(1971),l=c(6704),O=c(5635),U=c(1243),Oe=c(8213),G=c(8521),t=c(4650),ue=c(7570),on=c(3353),Ct=c(445);let sn=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,on.ud,ue.cg]}),i})();var zt=c(8e3),_=c(5156),Q=c(6616),lt=c(1102),Me=c(4383),ct=c(6287),D=c(655),E=c(3187),be=c(7579),ln=c(9770),ie=c(9646),cn=c(6451),gn=c(9751),un=c(1135),mn=c(5698),Pe=c(3900),gt=c(2722),ut=c(3303),Te=c(4788),u=c(3679);const V=["*"];function bn(i,n){1&i&&t.Hsn(0)}const Pn=["nz-list-item-actions",""];function Tn(i,n){}function wn(i,n){1&i&&t._UZ(0,"em",3)}function Fn(i,n){if(1&i&&(t.TgZ(0,"li"),t.YNc(1,Tn,0,0,"ng-template",1),t.YNc(2,wn,1,0,"em",2),t.qZA()),2&i){const e=n.$implicit,o=n.last;t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(1),t.Q6J("ngIf",!o)}}function Sn(i,n){}const we=function(i,n){return{$implicit:i,index:n}};function yn(i,n){if(1&i&&(t.ynx(0),t.YNc(1,Sn,0,0,"ng-template",9),t.BQk()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",a.nzRenderItem)("ngTemplateOutletContext",t.WLB(2,we,e,o))}}function An(i,n){if(1&i&&(t.TgZ(0,"div",7),t.YNc(1,yn,2,5,"ng-container",8),t.Hsn(2,4),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function kn(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzHeader)}}function Dn(i,n){if(1&i&&(t.TgZ(0,"nz-list-header"),t.YNc(1,kn,2,1,"ng-container",10),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzHeader)}}function En(i,n){1&i&&t._UZ(0,"div"),2&i&&t.Udp("min-height",53,"px")}function Zn(i,n){}function Nn(i,n){if(1&i&&(t.TgZ(0,"div",13),t.YNc(1,Zn,0,0,"ng-template",9),t.qZA()),2&i){const e=n.$implicit,o=n.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,we,e,o))}}function Bn(i,n){if(1&i&&(t.TgZ(0,"div",11),t.YNc(1,Nn,2,12,"div",12),t.qZA()),2&i){const e=t.oxw();t.Q6J("nzGutter",e.nzGrid.gutter||null),t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function Un(i,n){if(1&i&&t._UZ(0,"nz-list-empty",14),2&i){const e=t.oxw();t.Q6J("nzNoResult",e.nzNoResult)}}function In(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzFooter)}}function Jn(i,n){if(1&i&&(t.TgZ(0,"nz-list-footer"),t.YNc(1,In,2,1,"ng-container",10),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzFooter)}}function Qn(i,n){}function Vn(i,n){}function Ln(i,n){if(1&i&&(t.TgZ(0,"nz-list-pagination"),t.YNc(1,Vn,0,0,"ng-template",6),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzPagination)}}const qn=[[["nz-list-header"]],[["nz-list-footer"],["","nz-list-footer",""]],[["nz-list-load-more"],["","nz-list-load-more",""]],[["nz-list-pagination"],["","nz-list-pagination",""]],"*"],Yn=["nz-list-header","nz-list-footer, [nz-list-footer]","nz-list-load-more, [nz-list-load-more]","nz-list-pagination, [nz-list-pagination]","*"];function Wn(i,n){if(1&i&&t._UZ(0,"ul",6),2&i){const e=t.oxw(2);t.Q6J("nzActions",e.nzActions)}}function Rn(i,n){if(1&i&&(t.YNc(0,Wn,1,1,"ul",5),t.Hsn(1)),2&i){const e=t.oxw();t.Q6J("ngIf",e.nzActions&&e.nzActions.length>0)}}function Gn(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(3);t.xp6(1),t.Oqu(e.nzContent)}}function Hn(i,n){if(1&i&&(t.ynx(0),t.YNc(1,Gn,2,1,"ng-container",8),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzContent)}}function $n(i,n){if(1&i&&(t.Hsn(0,1),t.Hsn(1,2),t.YNc(2,Hn,2,1,"ng-container",7)),2&i){const e=t.oxw();t.xp6(2),t.Q6J("ngIf",e.nzContent)}}function Kn(i,n){1&i&&t.Hsn(0,3)}function Xn(i,n){}function jn(i,n){}function ti(i,n){}function ei(i,n){}function ni(i,n){if(1&i&&(t.YNc(0,Xn,0,0,"ng-template",9),t.YNc(1,jn,0,0,"ng-template",9),t.YNc(2,ti,0,0,"ng-template",9),t.YNc(3,ei,0,0,"ng-template",9)),2&i){const e=t.oxw(),o=t.MAs(3),a=t.MAs(5),s=t.MAs(1);t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}function ii(i,n){}function oi(i,n){}function ai(i,n){}function ri(i,n){if(1&i&&(t.TgZ(0,"nz-list-item-extra"),t.YNc(1,ai,0,0,"ng-template",9),t.qZA()),2&i){const e=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra)}}function si(i,n){}function li(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"div",10),t.YNc(2,ii,0,0,"ng-template",9),t.YNc(3,oi,0,0,"ng-template",9),t.qZA(),t.YNc(4,ri,2,1,"nz-list-item-extra",7),t.YNc(5,si,0,0,"ng-template",9),t.BQk()),2&i){const e=t.oxw(),o=t.MAs(3),a=t.MAs(1),s=t.MAs(5);t.xp6(2),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngIf",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}const ci=[[["nz-list-item-actions"],["","nz-list-item-actions",""]],[["nz-list-item-meta"],["","nz-list-item-meta",""]],"*",[["nz-list-item-extra"],["","nz-list-item-extra",""]]],gi=["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 de=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item-extra"],["","nz-list-item-extra",""]],hostAttrs:[1,"ant-list-item-extra"],exportAs:["nzListItemExtra"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Se=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item-action"]],viewQuery:function(e,o){if(1&e&&t.Gf(t.Rgc,5),2&e){let a;t.iGM(a=t.CRH())&&(o.templateRef=a.first)}},exportAs:["nzListItemAction"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.YNc(0,bn,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),i})(),ye=(()=>{class i{constructor(e,o,a){this.ngZone=e,this.nzActions=[],this.actions=[],this.inputActionChanges$=new be.x,this.contentChildrenChanges$=(0,ln.P)(()=>this.nzListItemActions?(0,ie.of)(null):this.ngZone.onStable.pipe((0,mn.q)(1),this.enterZone(),(0,Pe.w)(()=>this.contentChildrenChanges$))),(0,cn.T)(this.contentChildrenChanges$,this.inputActionChanges$).pipe((0,gt.R)(a)).subscribe(()=>{this.actions=this.nzActions.length?this.nzActions:this.nzListItemActions.map(s=>s.templateRef),o.detectChanges()})}ngOnChanges(){this.inputActionChanges$.next(null)}enterZone(){return e=>new gn.y(o=>e.subscribe({next:a=>this.ngZone.run(()=>o.next(a))}))}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(ut.kn))},i.\u0275cmp=t.Xpm({type:i,selectors:[["ul","nz-list-item-actions",""]],contentQueries:function(e,o,a){if(1&e&&t.Suo(a,Se,4),2&e){let s;t.iGM(s=t.CRH())&&(o.nzListItemActions=s)}},hostAttrs:[1,"ant-list-item-action"],inputs:{nzActions:"nzActions"},exportAs:["nzListItemActions"],features:[t._Bn([ut.kn]),t.TTD],attrs:Pn,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,o){1&e&&t.YNc(0,Fn,3,2,"li",0),2&e&&t.Q6J("ngForOf",o.actions)},dependencies:[p.sg,p.O5,p.tP],encapsulation:2,changeDetection:0}),i})(),he=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,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,o){1&e&&t._UZ(0,"nz-embed-empty",0),2&e&&t.Q6J("nzComponentName","list")("specificContent",o.nzNoResult)},dependencies:[Te.gB],encapsulation:2,changeDetection:0}),i})(),_e=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-header"]],hostAttrs:[1,"ant-list-header"],exportAs:["nzListHeader"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),fe=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-footer"]],hostAttrs:[1,"ant-list-footer"],exportAs:["nzListFooter"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Ce=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-pagination"]],hostAttrs:[1,"ant-list-pagination"],exportAs:["nzListPagination"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Ae=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275dir=t.lG2({type:i,selectors:[["nz-list-load-more"]],exportAs:["nzListLoadMoreDirective"]}),i})(),ve=(()=>{class i{constructor(e){this.directionality=e,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 un.X(this.nzItemLayout),this.destroy$=new be.x}get itemLayoutNotify$(){return this.itemLayoutNotifySource.asObservable()}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe((0,gt.R)(this.destroy$)).subscribe(e=>{this.dir=e})}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 i.\u0275fac=function(e){return new(e||i)(t.Y36(Ct.Is,8))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list"],["","nz-list",""]],contentQueries:function(e,o,a){if(1&e&&(t.Suo(a,fe,5),t.Suo(a,Ce,5),t.Suo(a,Ae,5)),2&e){let s;t.iGM(s=t.CRH())&&(o.nzListFooterComponent=s.first),t.iGM(s=t.CRH())&&(o.nzListPaginationComponent=s.first),t.iGM(s=t.CRH())&&(o.nzListLoadMoreDirective=s.first)}},hostAttrs:[1,"ant-list"],hostVars:16,hostBindings:function(e,o){2&e&&t.ekj("ant-list-rtl","rtl"===o.dir)("ant-list-vertical","vertical"===o.nzItemLayout)("ant-list-lg","large"===o.nzSize)("ant-list-sm","small"===o.nzSize)("ant-list-split",o.nzSplit)("ant-list-bordered",o.nzBordered)("ant-list-loading",o.nzLoading)("ant-list-something-after-last-item",o.hasSomethingAfterLastItem)},inputs:{nzDataSource:"nzDataSource",nzBordered:"nzBordered",nzGrid:"nzGrid",nzHeader:"nzHeader",nzFooter:"nzFooter",nzItemLayout:"nzItemLayout",nzRenderItem:"nzRenderItem",nzLoading:"nzLoading",nzLoadMore:"nzLoadMore",nzPagination:"nzPagination",nzSize:"nzSize",nzSplit:"nzSplit",nzNoResult:"nzNoResult"},exportAs:["nzList"],features:[t.TTD],ngContentSelectors:Yn,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,o){if(1&e&&(t.F$t(qn),t.YNc(0,An,3,1,"ng-template",null,0,t.W1O),t.YNc(2,Dn,2,1,"nz-list-header",1),t.Hsn(3),t.TgZ(4,"nz-spin",2),t.ynx(5),t.YNc(6,En,1,2,"div",3),t.YNc(7,Bn,2,2,"div",4),t.YNc(8,Un,1,1,"nz-list-empty",5),t.BQk(),t.qZA(),t.YNc(9,Jn,2,1,"nz-list-footer",1),t.Hsn(10,1),t.YNc(11,Qn,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",o.nzHeader),t.xp6(2),t.Q6J("nzSpinning",o.nzLoading),t.xp6(2),t.Q6J("ngIf",o.nzLoading&&o.nzDataSource&&0===o.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",o.nzGrid&&o.nzDataSource)("ngIfElse",a),t.xp6(1),t.Q6J("ngIf",!o.nzLoading&&o.nzDataSource&&0===o.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",o.nzFooter),t.xp6(2),t.Q6J("ngTemplateOutlet",o.nzLoadMore),t.xp6(2),t.Q6J("ngIf",o.nzPagination)}},dependencies:[p.sg,p.O5,p.tP,ge.W,u.t3,u.SK,ct.f,_e,fe,Ce,he],encapsulation:2,changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzBordered",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzLoading",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzSplit",void 0),i})(),ke=(()=>{class i{constructor(e,o,a,s){this.parentComp=a,this.cdr=s,this.nzActions=[],this.nzExtra=null,this.nzNoFlex=!1,o.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 i.\u0275fac=function(e){return new(e||i)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(ve),t.Y36(t.sBO))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item"],["","nz-list-item",""]],contentQueries:function(e,o,a){if(1&e&&t.Suo(a,de,5),2&e){let s;t.iGM(s=t.CRH())&&(o.listItemExtraDirective=s.first)}},hostVars:2,hostBindings:function(e,o){2&e&&t.ekj("ant-list-item-no-flex",o.nzNoFlex)},inputs:{nzActions:"nzActions",nzContent:"nzContent",nzExtra:"nzExtra",nzNoFlex:"nzNoFlex"},exportAs:["nzListItem"],ngContentSelectors:gi,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,o){if(1&e&&(t.F$t(ci),t.YNc(0,Rn,2,1,"ng-template",null,0,t.W1O),t.YNc(2,$n,3,1,"ng-template",null,1,t.W1O),t.YNc(4,Kn,1,0,"ng-template",null,2,t.W1O),t.YNc(6,ni,4,4,"ng-template",null,3,t.W1O),t.YNc(8,li,6,4,"ng-container",4)),2&e){const a=t.MAs(7);t.xp6(8),t.Q6J("ngIf",o.isVerticalAndExtra)("ngIfElse",a)}},dependencies:[p.O5,p.tP,ct.f,ye,de],encapsulation:2,changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzNoFlex",void 0),i})(),pi=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,ge.j,u.Jb,Me.Rt,ct.T,Te.Xo]}),i})();var oe=c(9562),di=c(2577),H=c(6675),hi=c(4968),ae=c(9300),_i=c(2539),mt=c(2536),De=c(4903);const Ee=["*"],fi=["collapseHeader"];function Ci(i,n){if(1&i&&(t.ynx(0),t._UZ(1,"span",7),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("nzType",e||"right")("nzRotate",o.nzActive?90:0)}}function vi(i,n){if(1&i&&(t.TgZ(0,"div"),t.YNc(1,Ci,2,2,"ng-container",3),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExpandedIcon)}}function zi(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw();t.xp6(1),t.Oqu(e.nzHeader)}}function xi(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzExtra)}}function Oi(i,n){if(1&i&&(t.TgZ(0,"div",8),t.YNc(1,xi,2,1,"ng-container",3),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExtra)}}const Ze="collapse";let Ne=(()=>{class i{constructor(e,o,a,s){this.nzConfigService=e,this.cdr=o,this.directionality=a,this.destroy$=s,this._nzModuleName=Ze,this.nzAccordion=!1,this.nzBordered=!0,this.nzGhost=!1,this.nzExpandIconPosition="left",this.dir="ltr",this.listOfNzCollapsePanelComponent=[],this.nzConfigService.getConfigChangeEventForComponent(Ze).pipe((0,gt.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe((0,gt.R)(this.destroy$)).subscribe(e=>{this.dir=e,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(o=>o!==e).forEach(o=>{o.nzActive&&(o.nzActive=!1,o.nzActiveChange.emit(o.nzActive),o.markForCheck())}),e.nzActive=!e.nzActive,e.nzActiveChange.emit(e.nzActive)}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(mt.jY),t.Y36(t.sBO),t.Y36(Ct.Is,8),t.Y36(ut.kn))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-collapse"]],hostAttrs:[1,"ant-collapse"],hostVars:10,hostBindings:function(e,o){2&e&&t.ekj("ant-collapse-icon-position-left","left"===o.nzExpandIconPosition)("ant-collapse-icon-position-right","right"===o.nzExpandIconPosition)("ant-collapse-ghost",o.nzGhost)("ant-collapse-borderless",!o.nzBordered)("ant-collapse-rtl","rtl"===o.dir)},inputs:{nzAccordion:"nzAccordion",nzBordered:"nzBordered",nzGhost:"nzGhost",nzExpandIconPosition:"nzExpandIconPosition"},exportAs:["nzCollapse"],features:[t._Bn([ut.kn])],ngContentSelectors:Ee,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzAccordion",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzBordered",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzGhost",void 0),i})();const Be="collapsePanel";let Mi=(()=>{class i{constructor(e,o,a,s,g,m){this.nzConfigService=e,this.ngZone=o,this.cdr=a,this.destroy$=s,this.nzCollapseComponent=g,this.noAnimation=m,this._nzModuleName=Be,this.nzActive=!1,this.nzDisabled=!1,this.nzShowArrow=!0,this.nzActiveChange=new t.vpe,this.nzConfigService.getConfigChangeEventForComponent(Be).pipe((0,gt.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}markForCheck(){this.cdr.markForCheck()}ngOnInit(){this.nzCollapseComponent.addPanel(this),this.ngZone.runOutsideAngular(()=>(0,hi.R)(this.collapseHeader.nativeElement,"click").pipe((0,ae.h)(()=>!this.nzDisabled),(0,gt.R)(this.destroy$)).subscribe(()=>{this.ngZone.run(()=>{this.nzCollapseComponent.click(this),this.cdr.markForCheck()})}))}ngOnDestroy(){this.nzCollapseComponent.removePanel(this)}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(mt.jY),t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(ut.kn),t.Y36(Ne,1),t.Y36(De.P,8))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-collapse-panel"]],viewQuery:function(e,o){if(1&e&&t.Gf(fi,7),2&e){let a;t.iGM(a=t.CRH())&&(o.collapseHeader=a.first)}},hostAttrs:[1,"ant-collapse-item"],hostVars:6,hostBindings:function(e,o){2&e&&t.ekj("ant-collapse-no-arrow",!o.nzShowArrow)("ant-collapse-item-active",o.nzActive)("ant-collapse-item-disabled",o.nzDisabled)},inputs:{nzActive:"nzActive",nzDisabled:"nzDisabled",nzShowArrow:"nzShowArrow",nzExtra:"nzExtra",nzHeader:"nzHeader",nzExpandedIcon:"nzExpandedIcon"},outputs:{nzActiveChange:"nzActiveChange"},exportAs:["nzCollapsePanel"],features:[t._Bn([ut.kn])],ngContentSelectors:Ee,decls:8,vars:8,consts:[["role","button",1,"ant-collapse-header"],["collapseHeader",""],[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,o){1&e&&(t.F$t(),t.TgZ(0,"div",0,1),t.YNc(2,vi,2,1,"div",2),t.YNc(3,zi,2,1,"ng-container",3),t.YNc(4,Oi,2,1,"div",4),t.qZA(),t.TgZ(5,"div",5)(6,"div",6),t.Hsn(7),t.qZA()()),2&e&&(t.uIk("aria-expanded",o.nzActive),t.xp6(2),t.Q6J("ngIf",o.nzShowArrow),t.xp6(1),t.Q6J("nzStringTemplateOutlet",o.nzHeader),t.xp6(1),t.Q6J("ngIf",o.nzExtra),t.xp6(1),t.ekj("ant-collapse-content-active",o.nzActive),t.Q6J("@.disabled",!(null==o.noAnimation||!o.noAnimation.nzNoAnimation))("@collapseMotion",o.nzActive?"expanded":"hidden"))},dependencies:[p.O5,lt.Ls,ct.f],encapsulation:2,data:{animation:[_i.J_]},changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzActive",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzDisabled",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzShowArrow",void 0),i})(),bi=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,lt.PV,ct.T,De.g]}),i})();var Pi=c(4466),w=c(262),F=c(4007),Z=c(324),L=c(387),S=c(5136);class ${constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["output","logging","biliApi","header","danmaku","recorder","postprocessing","space"]).pipe((0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get settings:",o),this.notification.error("\u83b7\u53d6\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}$.\u0275fac=function(n){return new(n||$)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},$.\u0275prov=t.Yz7({token:$,factory:$.\u0275fac});var T=c(4004);class K{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["emailNotification"]).pipe((0,T.U)(o=>o.emailNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get email notification settings:",o),this.notification.error("\u83b7\u53d6\u90ae\u4ef6\u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}K.\u0275fac=function(n){return new(n||K)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},K.\u0275prov=t.Yz7({token:K,factory:K.\u0275fac});class X{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["serverchanNotification"]).pipe((0,T.U)(o=>o.serverchanNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get ServerChan notification settings:",o),this.notification.error("\u83b7\u53d6 ServerChan \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}X.\u0275fac=function(n){return new(n||X)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac});class j{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["pushdeerNotification"]).pipe((0,T.U)(o=>o.pushdeerNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get PushDeer notification settings:",o),this.notification.error("\u83b7\u53d6 pushdeer \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}j.\u0275fac=function(n){return new(n||j)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},j.\u0275prov=t.Yz7({token:j,factory:j.\u0275fac});class tt{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["pushplusNotification"]).pipe((0,T.U)(o=>o.pushplusNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get pushplus notification settings:",o),this.notification.error("\u83b7\u53d6 pushplus \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}tt.\u0275fac=function(n){return new(n||tt)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},tt.\u0275prov=t.Yz7({token:tt,factory:tt.\u0275fac});class et{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["telegramNotification"]).pipe((0,T.U)(o=>o.telegramNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get telegram notification settings:",o),this.notification.error("\u83b7\u53d6 telegram \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}et.\u0275fac=function(n){return new(n||et)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},et.\u0275prov=t.Yz7({token:et,factory:et.\u0275fac});class nt{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["webhooks"]).pipe((0,T.U)(o=>o.webhooks),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get webhook settings:",o),this.notification.error("\u83b7\u53d6 Webhook \u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}nt.\u0275fac=function(n){return new(n||nt)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},nt.\u0275prov=t.Yz7({token:nt,factory:nt.\u0275fac});var v=c(6582);class it{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["barkNotification"]).pipe((0,T.U)(o=>o.barkNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get bark notification settings:",o),this.notification.error("\u83b7\u53d6 bark \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}it.\u0275fac=function(n){return new(n||it)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},it.\u0275prov=t.Yz7({token:it,factory:it.\u0275fac});var Ue=c(5026),Ti=c(5363),wi=c(4986),Ie=c(4704),b=c(2340);const x="RouterScrollService",Je="defaultViewport",Qe="customViewport";class pt{constructor(n,e,o,a){this.router=n,this.activatedRoute=e,this.viewportScroller=o,this.logger=a,this.addQueue=[],this.addBeforeNavigationQueue=[],this.removeQueue=[],this.routeStrategies=[],this.scrollDefaultViewport=!0,this.customViewportToScroll=null,b.N.traceRouterScrolling&&this.logger.trace(`${x}:: constructor`),b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Subscribing to router events`);const s=this.router.events.pipe((0,ae.h)(g=>g instanceof v.OD||g instanceof v.m2),(0,T.U)(g=>g),(0,Ue.R)((g,m)=>{b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Updating the known scroll positions`);const h={...g.positions};return m instanceof v.OD&&this.scrollDefaultViewport&&(b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Storing the scroll position of the default viewport`),h[`${m.id}-${Je}`]=this.viewportScroller.getScrollPosition()),m instanceof v.OD&&this.customViewportToScroll&&(b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Storing the scroll position of the custom viewport`),h[`${m.id}-${Qe}`]=this.customViewportToScroll.scrollTop),{event:m,positions:h,trigger:m instanceof v.OD?m.navigationTrigger:g.trigger,idToRestore:m instanceof v.OD&&m.restoredState&&m.restoredState.navigationId+1||g.idToRestore,routeData:this.activatedRoute.firstChild?.routeConfig?.data}},{event:{},positions:{},idToRestore:-1}),(0,ae.h)(g=>!!g.trigger),(0,Ti.Q)(wi.z));this.scrollPositionRestorationSubscription=s.subscribe(g=>{const m=this.routeStrategies.find(ft=>g.event.url.indexOf(ft.partialRoute)>-1),h=m&&m.behaviour===Ie.g.KEEP_POSITION||!1,k=g.routeData&&g.routeData.scrollBehavior&&g.routeData.scrollBehavior===Ie.g.KEEP_POSITION||!1,J=h||k;if(g.event instanceof v.m2){this.processRemoveQueue(this.removeQueue);const ft=g.trigger&&"imperative"===g.trigger||!1,ce=!J||ft;b.N.traceRouterScrolling&&(this.logger.trace(`${x}:: Existing strategy with keep position behavior? `,h),this.logger.trace(`${x}:: Route data with keep position behavior? `,k),this.logger.trace(`${x}:: Imperative trigger? `,ft),this.logger.debug(`${x}:: Should scroll? `,ce)),ce?(this.scrollDefaultViewport&&(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Scrolling the default viewport`),this.viewportScroller.scrollToPosition([0,0])),this.customViewportToScroll&&(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Scrolling a custom viewport: `,this.customViewportToScroll),this.customViewportToScroll.scrollTop=0)):(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Not scrolling`),this.scrollDefaultViewport&&this.viewportScroller.scrollToPosition(g.positions[`${g.idToRestore}-${Je}`]),this.customViewportToScroll&&(this.customViewportToScroll.scrollTop=g.positions[`${g.idToRestore}-${Qe}`])),this.processRemoveQueue(this.addBeforeNavigationQueue.map(is=>is.partialRoute),!0),this.processAddQueue(this.addQueue),this.addQueue=[],this.removeQueue=[],this.addBeforeNavigationQueue=[]}else this.processAddQueue(this.addBeforeNavigationQueue)})}addStrategyOnceBeforeNavigationForPartialRoute(n,e){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Adding a strategy once for before navigation towards [${n}]: `,e),this.addBeforeNavigationQueue.push({partialRoute:n,behaviour:e,onceBeforeNavigation:!0})}addStrategyForPartialRoute(n,e){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Adding a strategy for partial route: [${n}]`,e),this.addQueue.push({partialRoute:n,behaviour:e})}removeStrategyForPartialRoute(n){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Removing strategory for: [${n}]: `),this.removeQueue.push(n)}setCustomViewportToScroll(n){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Setting a custom viewport to scroll: `,n),this.customViewportToScroll=n}disableScrollDefaultViewport(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Disabling scrolling the default viewport`),this.scrollDefaultViewport=!1}enableScrollDefaultViewPort(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Enabling scrolling the default viewport`),this.scrollDefaultViewport=!0}processAddQueue(n){for(const e of n)-1===this.routeStrategyPosition(e.partialRoute)&&this.routeStrategies.push(e)}processRemoveQueue(n,e=!1){for(const o of n){const a=this.routeStrategyPosition(o);!e&&a>-1&&this.routeStrategies[a].onceBeforeNavigation||a>-1&&this.routeStrategies.splice(a,1)}}routeStrategyPosition(n){return this.routeStrategies.map(e=>e.partialRoute).indexOf(n)}ngOnDestroy(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: ngOnDestroy`),this.scrollPositionRestorationSubscription&&this.scrollPositionRestorationSubscription.unsubscribe()}}pt.\u0275fac=function(n){return new(n||pt)(t.LFG(v.F0),t.LFG(v.gz),t.LFG(p.EM),t.LFG(Z.Kf))},pt.\u0275prov=t.Yz7({token:pt,factory:pt.\u0275fac,providedIn:"root"});var q=c(4670),Fi=c(3496),Si=c(1149),yi=c(7242);const M=function Ai(i,n){var e={};return n=(0,yi.Z)(n,3),(0,Si.Z)(i,function(o,a,s){(0,Fi.Z)(e,a,n(o,a,s))}),e};var re=c(8505),ki=c(4884),Di=c(4116),Ve=c(4825),Le=c(4177),qe=c(8706),Ei=c(5202),Zi=c(1986),Ni=c(7583),Ji=Object.prototype.hasOwnProperty;var Li=c(1854),qi=c(2134),se=c(9651);function P(i){const n="result"in i;return M(i.diff,()=>n)}class z{constructor(n,e){this.message=n,this.settingService=e}syncSettings(n,e,o,a=!0){return o.pipe((0,Ue.R)(([,s],g)=>[s,g,(0,qi.e5)(g,s,a)],[e,e,{}]),(0,ae.h)(([,,s])=>!function Qi(i){if(null==i)return!0;if((0,qe.Z)(i)&&((0,Le.Z)(i)||"string"==typeof i||"function"==typeof i.splice||(0,Ei.Z)(i)||(0,Ni.Z)(i)||(0,Ve.Z)(i)))return!i.length;var n=(0,Di.Z)(i);if("[object Map]"==n||"[object Set]"==n)return!i.size;if((0,Zi.Z)(i))return!(0,ki.Z)(i).length;for(var e in i)if(Ji.call(i,e))return!1;return!0}(s)),(0,Pe.w)(([s,g,m])=>this.settingService.changeSettings({[n]:m}).pipe((0,F.X)(3,300),(0,re.b)(h=>{console.assert((0,Li.Z)(h[n],g),"result settings should equal current settings",{curr:g,result:h[n]})},h=>{this.message.error(`\u8bbe\u7f6e\u51fa\u9519: ${h.message}`)}),(0,T.U)(h=>({prev:s,curr:g,diff:m,result:h[n]})),(0,w.K)(h=>(0,ie.of)({prev:s,curr:g,diff:m,error:h})))),(0,re.b)(s=>console.debug(`${n} settings sync detail:`,s)))}}z.\u0275fac=function(n){return new(n||z)(t.LFG(se.dD),t.LFG(S.R))},z.\u0275prov=t.Yz7({token:z,factory:z.\u0275fac,providedIn:"root"});var d=c(4960);class y{get actionable(){return this.directive?.valueAccessor instanceof U.i}constructor(){}onClick(n){n.target===n.currentTarget&&(n.preventDefault(),n.stopPropagation(),this.directive?.valueAccessor instanceof U.i&&this.directive.control.setValue(!this.directive.control.value))}}y.\u0275fac=function(n){return new(n||y)},y.\u0275dir=t.lG2({type:y,selectors:[["","appSwitchActionable",""]],contentQueries:function(n,e,o){if(1&n&&t.Suo(o,r.u,5),2&n){let a;t.iGM(a=t.CRH())&&(e.directive=a.first)}},hostVars:2,hostBindings:function(n,e){1&n&&t.NdJ("click",function(a){return e.onClick(a)}),2&n&&t.ekj("actionable",e.actionable)}});class xt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.intervalOptions=[{label:"\u4e0d\u68c0\u6d4b",value:0},{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}],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},{label:"20 GB",value:1024**3*20}],this.settingsForm=n.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("space",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}xt.\u0275fac=function(n){return new(n||xt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},xt.\u0275cmp=t.Xpm({type:xt,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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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.TgZ(6,"nz-form-item",1)(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.TgZ(11,"nz-form-item",6)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.checkInterval?e.checkIntervalControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.intervalOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.spaceThreshold?e.spaceThresholdControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.thresholdOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recycleRecords?e.recycleRecordsControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,zt.Vq,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var I=c(7044);class Ot{}Ot.\u0275fac=function(n){return new(n||Ot)},Ot.\u0275cmp=t.Xpm({type:Ot,selectors:[["app-notification-settings"]],decls:30,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","pushdeer-notification",1,"setting-item"],["routerLink","pushplus-notification",1,"setting-item"],["routerLink","telegram-notification",1,"setting-item"],["routerLink","bark-notification",1,"setting-item"]],template:function(n,e){1&n&&(t.TgZ(0,"a",0)(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.TgZ(5,"a",4)(6,"span",1),t._uU(7,"ServerChan \u901a\u77e5"),t.qZA(),t.TgZ(8,"span",2),t._UZ(9,"i",3),t.qZA()(),t.TgZ(10,"a",5)(11,"span",1),t._uU(12,"PushDeer \u901a\u77e5"),t.qZA(),t.TgZ(13,"span",2),t._UZ(14,"i",3),t.qZA()(),t.TgZ(15,"a",6)(16,"span",1),t._uU(17,"pushplus \u901a\u77e5"),t.qZA(),t.TgZ(18,"span",2),t._UZ(19,"i",3),t.qZA()(),t.TgZ(20,"a",7)(21,"span",1),t._uU(22,"telegram \u901a\u77e5"),t.qZA(),t.TgZ(23,"span",2),t._UZ(24,"i",3),t.qZA()(),t.TgZ(25,"a",8)(26,"span",1),t._uU(27,"Bark \u901a\u77e5"),t.qZA(),t.TgZ(28,"span",2),t._UZ(29,"i",3),t.qZA()())},dependencies:[v.rH,I.w,lt.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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var Yi=Math.ceil,Wi=Math.max;var Hi=c(3093),Ye=c(6667),Mt=c(1999);var Xi=/\s/;var eo=/^\s+/;const io=function no(i){return i&&i.slice(0,function ji(i){for(var n=i.length;n--&&Xi.test(i.charAt(n)););return n}(i)+1).replace(eo,"")};var oo=c(6460),ao=/^[-+]0x[0-9a-f]+$/i,ro=/^0b[01]+$/i,so=/^0o[0-7]+$/i,lo=parseInt;const ze=function mo(i){return i?Infinity===(i=function co(i){if("number"==typeof i)return i;if((0,oo.Z)(i))return NaN;if((0,Mt.Z)(i)){var n="function"==typeof i.valueOf?i.valueOf():i;i=(0,Mt.Z)(n)?n+"":n}if("string"!=typeof i)return 0===i?i:+i;i=io(i);var e=ro.test(i);return e||so.test(i)?lo(i.slice(2),e?2:8):ao.test(i)?NaN:+i}(i))||-Infinity===i?17976931348623157e292*(i<0?-1:1):i==i?i:0:0===i?i:0},_o=function po(i){return function(n,e,o){return o&&"number"!=typeof o&&function $i(i,n,e){if(!(0,Mt.Z)(e))return!1;var o=typeof n;return!!("number"==o?(0,qe.Z)(e)&&(0,Ye.Z)(n,e.length):"string"==o&&n in e)&&(0,Hi.Z)(e[n],i)}(n,e,o)&&(e=o=void 0),n=ze(n),void 0===e?(e=n,n=0):e=ze(e),function Ri(i,n,e,o){for(var a=-1,s=Wi(Yi((n-i)/(e||1)),0),g=Array(s);s--;)g[o?s:++a]=i,i+=e;return g}(n,e,o=void 0===o?n<e?1:-1:ze(o),i)}}();var ot=(()=>{return(i=ot||(ot={}))[i.EACCES=13]="EACCES",i[i.ENOTDIR=20]="ENOTDIR",ot;var i})(),fo=c(529),Co=c(7930);class Y{constructor(n,e){this.http=n,this.url=e}validateDir(n){const e=this.url.makeApiUrl("/api/v1/validation/dir");return this.http.post(e,{path:n})}validateCookie(n){const e=this.url.makeApiUrl("/api/v1/validation/cookie");return this.http.post(e,{cookie:n})}}function vo(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u4fdd\u5b58\u4f4d\u7f6e "),t.BQk())}function zo(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u662f\u4e00\u4e2a\u76ee\u5f55 "),t.BQk())}function xo(i,n){1&i&&(t.ynx(0),t._uU(1," \u6ca1\u6709\u8bfb\u5199\u6743\u9650 "),t.BQk())}function Oo(i,n){1&i&&(t.ynx(0),t._uU(1," \u672a\u80fd\u8fdb\u884c\u9a8c\u8bc1 "),t.BQk())}function Mo(i,n){if(1&i&&(t.YNc(0,vo,2,0,"ng-container",6),t.YNc(1,zo,2,0,"ng-container",6),t.YNc(2,xo,2,0,"ng-container",6),t.YNc(3,Oo,2,0,"ng-container",6)),2&i){const e=n.$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 bo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,Mo,4,4,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e)}}Y.\u0275fac=function(n){return new(n||Y)(t.LFG(fo.eN),t.LFG(Co.i))},Y.\u0275prov=t.Yz7({token:Y,factory:Y.\u0275fac,providedIn:"root"});class bt{constructor(n,e,o){this.changeDetector=e,this.validationService=o,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.logDirAsyncValidator=a=>this.validationService.validateDir(a.value).pipe((0,T.U)(s=>{switch(s.code){case ot.ENOTDIR:return{error:!0,notADirectory:!0};case ot.EACCES:return{error:!0,noPermissions:!0};default:return null}}),(0,w.K)(()=>(0,ie.of)({error:!0,failedToValidate:!0}))),this.settingsForm=n.group({logDir:["",[r.kI.required],[this.logDirAsyncValidator]]})}get control(){return this.settingsForm.get("logDir")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}}bt.\u0275fac=function(n){return new(n||bt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y))},bt.\u0275cmp=t.Xpm({type:bt,selectors:[["app-logdir-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\u65e5\u5fd7\u6587\u4ef6\u5b58\u653e\u76ee\u5f55","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","","nzValidatingTip","\u6b63\u5728\u9a8c\u8bc1...",3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","logDir"],["errorTip",""],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,bo,7,2,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Pt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.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.backupOptions=_o(0,91).map(a=>({label:a.toString(),value:a})),this.settingsForm=n.group({logDir:[""],consoleLogLevel:[""],backupCount:[""]})}get logDirControl(){return this.settingsForm.get("logDir")}get consoleLogLevelControl(){return this.settingsForm.get("consoleLogLevel")}get backupCountControl(){return this.settingsForm.get("backupCount")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("logging",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Pt.\u0275fac=function(n){return new(n||Pt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["app-logging-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:19,vars:11,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["logDirEditDialog",""],["appSwitchActionable","",1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","consoleLogLevel",3,"nzOptions"],[1,"setting-item"],["formControlName","backupCount",3,"nzOptions"]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u65e5\u5fd7\u6587\u4ef6\u5b58\u653e\u76ee\u5f55"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-logdir-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.logDirControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",7)(10,"nz-form-label",8),t._uU(11,"\u7ec8\u7aef\u65e5\u5fd7\u8f93\u51fa\u7ea7\u522b"),t.qZA(),t.TgZ(12,"nz-form-control",9),t._UZ(13,"nz-select",10),t.qZA()(),t.TgZ(14,"nz-form-item",11)(15,"nz-form-label",8),t._uU(16,"\u65e5\u5fd7\u6587\u4ef6\u5907\u4efd\u6570\u91cf"),t.qZA(),t.TgZ(17,"nz-form-control",9),t._UZ(18,"nz-select",12),t.qZA()()()}2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.logDir?e.logDirControl:"warning"),t.xp6(2),t.hij("",e.logDirControl.value," "),t.xp6(1),t.Q6J("value",e.logDirControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.consoleLogLevel?e.consoleLogLevelControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.logLevelOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.backupCount?e.backupCountControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.backupOptions))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,zt.Vq,y,bt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Tt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({danmuUname:[""],recordGiftSend:[""],recordFreeGifts:[""],recordGuardBuy:[""],recordSuperChat:[""],saveRawDanmaku:[""]})}get danmuUnameControl(){return this.settingsForm.get("danmuUname")}get recordGiftSendControl(){return this.settingsForm.get("recordGiftSend")}get recordFreeGiftsControl(){return this.settingsForm.get("recordFreeGifts")}get recordGuardBuyControl(){return this.settingsForm.get("recordGuardBuy")}get recordSuperChatControl(){return this.settingsForm.get("recordSuperChat")}get saveRawDanmakuControl(){return this.settingsForm.get("saveRawDanmaku")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("danmaku",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Po(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8: \u6ca1\u51fa\u9519\u5c31\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(2,"br"),t._uU(3," \u8c28\u614e: \u6ca1\u51fa\u9519\u4e14\u6ca1\u8b66\u544a\u624d\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(4,"br"),t._uU(5," \u4ece\u4e0d: \u603b\u662f\u4fdd\u7559\u6e90\u6587\u4ef6"),t._UZ(6,"br"),t.qZA())}function To(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"label",13),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(1),t.Q6J("nzValue",e.value),t.xp6(1),t.Oqu(e.label)}}Tt.\u0275fac=function(n){return new(n||Tt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["app-danmaku-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:13,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","recordGiftSend"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u514d\u8d39\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordFreeGifts"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u4e0a\u8230\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordGuardBuy"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55 Super Chat \u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordSuperChat"],["nzNoColon","","nzTooltipTitle","\u53d1\u9001\u8005: \u5f39\u5e55\u5185\u5bb9",1,"setting-label"],["formControlName","danmuUname"],["nzNoColon","","nzTooltipTitle","\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55\u5230 JSON lines \u6587\u4ef6\uff0c\u4e3b\u8981\u7528\u4e8e\u5206\u6790\u8c03\u8bd5\u3002",1,"setting-label"],["formControlName","saveRawDanmaku"]],template:function(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"\u8bb0\u5f55\u793c\u7269"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA()(),t.TgZ(6,"nz-form-item",1)(7,"nz-form-label",5),t._uU(8,"\u8bb0\u5f55\u514d\u8d39\u793c\u7269"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-switch",6),t.qZA()(),t.TgZ(11,"nz-form-item",1)(12,"nz-form-label",7),t._uU(13,"\u8bb0\u5f55\u4e0a\u8230"),t.qZA(),t.TgZ(14,"nz-form-control",3),t._UZ(15,"nz-switch",8),t.qZA()(),t.TgZ(16,"nz-form-item",1)(17,"nz-form-label",9),t._uU(18,"\u8bb0\u5f55 Super Chat"),t.qZA(),t.TgZ(19,"nz-form-control",3),t._UZ(20,"nz-switch",10),t.qZA()(),t.TgZ(21,"nz-form-item",1)(22,"nz-form-label",11),t._uU(23,"\u5f39\u5e55\u524d\u52a0\u7528\u6237\u540d"),t.qZA(),t.TgZ(24,"nz-form-control",3),t._UZ(25,"nz-switch",12),t.qZA()(),t.TgZ(26,"nz-form-item",1)(27,"nz-form-label",13),t._uU(28,"\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55"),t.qZA(),t.TgZ(29,"nz-form-control",3),t._UZ(30,"nz-switch",14),t.qZA()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordGiftSend?e.recordGiftSendControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordFreeGifts?e.recordFreeGiftsControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordGuardBuy?e.recordGuardBuyControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordSuperChat?e.recordSuperChatControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.danmuUname?e.danmuUnameControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.saveRawDanmaku?e.saveRawDanmakuControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class wt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.deleteStrategies=d.rc,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({injectExtraMetadata:[""],remuxToMp4:[""],deleteSource:[""]})}get injectExtraMetadataControl(){return this.settingsForm.get("injectExtraMetadata")}get remuxToMp4Control(){return this.settingsForm.get("remuxToMp4")}get deleteSourceControl(){return this.settingsForm.get("deleteSource")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("postprocessing",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}wt.\u0275fac=function(n){return new(n||wt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},wt.\u0275cmp=t.Xpm({type:wt,selectors:[["app-post-processing-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:19,vars:11,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u6dfb\u52a0\u5173\u952e\u5e27\u7b49\u5143\u6570\u636e\u4f7f\u5b9a\u4f4d\u64ad\u653e\u548c\u62d6\u8fdb\u5ea6\u6761\u4e0d\u4f1a\u5361\u987f",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","injectExtraMetadata",3,"nzDisabled"],["nzNoColon","","nzTooltipTitle","\u8c03\u7528 ffmpeg \u8fdb\u884c\u8f6c\u6362\uff0c\u9700\u8981\u5b89\u88c5 ffmpeg \u3002",1,"setting-label"],["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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"flv \u6dfb\u52a0\u5143\u6570\u636e"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA()(),t.TgZ(6,"nz-form-item",1)(7,"nz-form-label",5),t._uU(8,"\u8f6c\u5c01\u88c5\u4e3a mp4"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-switch",6),t.qZA()(),t.TgZ(11,"nz-form-item",7)(12,"nz-form-label",8),t._uU(13,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),t.qZA(),t.YNc(14,Po,7,0,"ng-template",null,9,t.W1O),t.TgZ(16,"nz-form-control",10)(17,"nz-radio-group",11),t.YNc(18,To,3,2,"ng-container",12),t.qZA()()()()),2&n){const o=t.MAs(15);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.injectExtraMetadata?e.injectExtraMetadataControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",e.remuxToMp4Control.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.remuxToMp4?e.remuxToMp4Control:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.deleteSource?e.deleteSourceControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",!e.remuxToMp4Control.value),t.xp6(1),t.Q6J("ngForOf",e.deleteStrategies)}},dependencies:[p.sg,r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,G.Of,G.Bq,G.Dg,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var W=c(3523);function wo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u9009\u62e9\u8981\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u683c\u5f0f "),t._UZ(2,"br"),t.TgZ(3,"b"),t._uU(4,"FLV:"),t.qZA(),t._uU(5," flv \u6d41\u5728\u7f51\u7edc\u4e0d\u7a33\u5b9a\u7684\u60c5\u51b5\u4e0b\u5bb9\u6613\u4e2d\u65ad\u4e22\u5931\u6570\u636e\u6216\u5f55\u5236\u5230\u4e8c\u538b\u753b\u8d28\u3002\u6ca1\u6709 flv \u6d41\u7684\u76f4\u64ad\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 fmp4 \u6d41\u3002 "),t._UZ(6,"br"),t.TgZ(7,"b"),t._uU(8,"HLS (fmp4):"),t.qZA(),t._uU(9," hls \u6d41\u57fa\u672c\u4e0d\u53d7\u7f51\u7edc\u6ce2\u52a8\u5f71\u54cd\uff0c\u4f46\u4e0d\u662f\u6240\u6709\u76f4\u64ad\u95f4\u90fd\u652f\u6301\u3002\u6709 flv \u6d41\u7684\u76f4\u64ad\uff0c\u5728\u8bbe\u5b9a\u7684\u7b49\u5f85\u65f6\u95f4\u5185\u6ca1\u6709 fmp4 \u6d41\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 flv \u6d41\u3002 "),t._UZ(10,"br"),t.TgZ(11,"b"),t._uU(12,"P.S."),t.qZA(),t._UZ(13,"br"),t._uU(14," WEB \u7aef\u76f4\u64ad\u64ad\u653e\u5668\u662f Hls7Player \u7684\u76f4\u64ad\u95f4\u652f\u6301\u5f55\u5236 fmp4 \u6d41, fMp4Player \u5219\u4e0d\u652f\u6301\u3002 "),t.qZA())}function Fo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u5982\u679c\u8d85\u8fc7\u6240\u8bbe\u7f6e\u7684\u7b49\u5f85\u65f6\u95f4 fmp4 \u6d41\u8fd8\u6ca1\u6709\u5c31\u5207\u6362\u4e3a\u5f55\u5236 flv \u6d41 "),t._UZ(2,"br"),t._uU(3," fmp4 \u6d41\u5728\u521a\u63a8\u6d41\u662f\u6ca1\u6709\u7684\uff0c\u8981\u8fc7\u4e00\u4f1a\u624d\u6709\u3002 "),t._UZ(4,"br"),t._uU(5," fmp4 \u6d41\u51fa\u73b0\u7684\u65f6\u95f4\u548c\u76f4\u64ad\u5ef6\u8fdf\u6709\u5173\uff0c\u4e00\u822c\u90fd\u5728 10 \u79d2\u5185\uff0c\u4f46\u4e5f\u6709\u5ef6\u8fdf\u6bd4\u8f83\u5927\u8d85\u8fc7 1 \u5206\u949f\u7684\u3002 "),t._UZ(6,"br"),t._uU(7," \u63a8\u8350\u5168\u5c40\u8bbe\u7f6e\u4e3a 10 \u79d2\uff0c\u4e2a\u522b\u5ef6\u8fdf\u6bd4\u8f83\u5927\u7684\u76f4\u64ad\u95f4\u5355\u72ec\u8bbe\u7f6e\u3002 "),t.qZA())}function So(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",2),t._uU(2,"fmp4 \u6d41\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.YNc(3,Fo,8,0,"ng-template",null,19,t.W1O),t.TgZ(5,"nz-form-control",4),t._UZ(6,"nz-select",20),t.qZA()()),2&i){const e=t.MAs(4),o=t.oxw();t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(4),t.Q6J("nzWarningTip",o.syncFailedWarningTip)("nzValidateStatus",o.syncStatus.fmp4StreamTimeout?o.fmp4StreamTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",o.fmp4StreamTimeoutOptions)}}function yo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u6807\u51c6\u6a21\u5f0f: \u5bf9\u4e0b\u8f7d\u7684\u6d41\u6570\u636e\u8fdb\u884c\u89e3\u6790\u5904\u7406\uff0c\u652f\u6301\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u7b49\u529f\u80fd\u3002 "),t._UZ(2,"br"),t._uU(3," \u539f\u59cb\u6a21\u5f0f: \u76f4\u63a5\u4e0b\u8f7d\u6d41\u6570\u636e\uff0c\u6ca1\u6709\u8fdb\u884c\u89e3\u6790\u5904\u7406\uff0c\u4e0d\u652f\u6301\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u7b49\u529f\u80fd\u3002 "),t._UZ(4,"br"),t.qZA())}function Ao(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",2),t._uU(2,"\u5f55\u5236\u6a21\u5f0f"),t.qZA(),t.YNc(3,yo,5,0,"ng-template",null,21,t.W1O),t.TgZ(5,"nz-form-control",4),t._UZ(6,"nz-select",22),t.qZA()()),2&i){const e=t.MAs(4),o=t.oxw();t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(4),t.Q6J("nzWarningTip",o.syncFailedWarningTip)("nzValidateStatus",o.syncStatus.recordingMode?o.recordingModeControl:"warning"),t.xp6(1),t.Q6J("nzOptions",o.recordingModeOptions)}}function ko(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u9ed8\u8ba4: \u6bcf\u4e2a\u5206\u5272\u7684\u5f55\u64ad\u6587\u4ef6\u5bf9\u5e94\u4fdd\u5b58\u4e00\u4e2a\u5c01\u9762\u6587\u4ef6\uff0c\u4e0d\u7ba1\u5c01\u9762\u662f\u5426\u76f8\u540c\u3002"),t._UZ(2,"br"),t._uU(3," \u53bb\u91cd: \u76f8\u540c\u7684\u5c01\u9762\u53ea\u4fdd\u5b58\u4e00\u6b21"),t._UZ(4,"br"),t._uU(5," P.S. "),t._UZ(6,"br"),t._uU(7," \u5224\u65ad\u662f\u5426\u76f8\u540c\u662f\u4f9d\u636e\u5c01\u9762\u6570\u636e\u7684 sha1\uff0c\u53ea\u5728\u5355\u6b21\u5f55\u5236\u5185\u6709\u6548\u3002 "),t.qZA())}function Do(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"label",23),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(1),t.Q6J("nzValue",e.value),t.xp6(1),t.Oqu(e.label)}}function Eo(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",24),t._uU(2,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),t.qZA(),t.TgZ(3,"nz-form-control",4),t._UZ(4,"nz-select",25),t.qZA()()),2&i){const e=t.oxw();t.xp6(3),t.Q6J("nzWarningTip",e.syncStatus.readTimeout?"\u65e0\u7f1d\u62fc\u63a5\u4f1a\u5931\u6548\uff01":e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.readTimeout&&e.readTimeoutControl.value<=3?e.readTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.readTimeoutOptions)}}function Zo(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",26),t._uU(2,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),t.qZA(),t.TgZ(3,"nz-form-control",4),t._UZ(4,"nz-select",27),t.qZA()()),2&i){const e=t.oxw();t.xp6(3),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.bufferSize?e.bufferSizeControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.bufferOptions)}}class Ft{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.streamFormatOptions=(0,W.Z)(d.tp),this.recordingModeOptions=(0,W.Z)(d.kV),this.fmp4StreamTimeoutOptions=(0,W.Z)(d.D4),this.qualityOptions=(0,W.Z)(d.O6),this.readTimeoutOptions=(0,W.Z)(d.D4),this.disconnectionTimeoutOptions=(0,W.Z)(d.$w),this.bufferOptions=(0,W.Z)(d.Rc),this.coverSaveStrategies=(0,W.Z)(d.J_),this.settingsForm=n.group({streamFormat:[""],recordingMode:[""],qualityNumber:[""],fmp4StreamTimeout:[""],readTimeout:[""],disconnectionTimeout:[""],bufferSize:[""],saveCover:[""],coverSaveStrategy:[""]})}get streamFormatControl(){return this.settingsForm.get("streamFormat")}get recordingModeControl(){return this.settingsForm.get("recordingMode")}get qualityNumberControl(){return this.settingsForm.get("qualityNumber")}get fmp4StreamTimeoutControl(){return this.settingsForm.get("fmp4StreamTimeout")}get readTimeoutControl(){return this.settingsForm.get("readTimeout")}get disconnectionTimeoutControl(){return this.settingsForm.get("disconnectionTimeout")}get bufferSizeControl(){return this.settingsForm.get("bufferSize")}get saveCoverControl(){return this.settingsForm.get("saveCover")}get coverSaveStrategyControl(){return this.settingsForm.get("coverSaveStrategy")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("recorder",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function No(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 User Agent "),t.BQk())}function Bo(i,n){1&i&&t.YNc(0,No,2,0,"ng-container",6),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function Uo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"textarea",4),t.YNc(5,Bo,1,1,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzWarningTip",o.warningTip)("nzValidateStatus",o.control.valid&&o.control.value.trim()!==o.value?"warning":o.control)("nzErrorTip",e),t.xp6(1),t.Q6J("rows",3)}}Ft.\u0275fac=function(n){return new(n||Ft)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["app-recorder-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:35,vars:22,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],["streamFormatTip",""],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","streamFormat",3,"nzOptions"],["class","setting-item",4,"ngIf"],["nzNoColon","","nzTooltipTitle","\u6240\u9009\u753b\u8d28\u4e0d\u5b58\u5728\u5c06\u4ee5\u539f\u753b\u4ee3\u66ff",1,"setting-label"],["formControlName","qualityNumber",3,"nzOptions"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u5f55\u64ad\u6587\u4ef6\u5b8c\u6210\u65f6\u4fdd\u5b58\u5f53\u524d\u76f4\u64ad\u95f4\u7684\u5c01\u9762",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","saveCover"],["coverSaveStrategyTip",""],[1,"setting-control","radio",3,"nzWarningTip","nzValidateStatus"],["formControlName","coverSaveStrategy",3,"nzDisabled"],[4,"ngFor","ngForOf"],["nzNoColon","","nzTooltipTitle","\u65ad\u7f51\u8d85\u8fc7\u7b49\u5f85\u65f6\u95f4\u5c31\u7ed3\u675f\u5f55\u5236\uff0c\u5982\u679c\u7f51\u7edc\u6062\u590d\u540e\u4ecd\u672a\u4e0b\u64ad\u4f1a\u81ea\u52a8\u91cd\u65b0\u5f00\u59cb\u5f55\u5236\u3002",1,"setting-label"],["formControlName","disconnectionTimeout",3,"nzOptions"],["fmp4StreamTimeoutTip",""],["formControlName","fmp4StreamTimeout",3,"nzOptions"],["recordingModeTip",""],["formControlName","recordingMode",3,"nzOptions"],["nz-radio-button","",3,"nzValue"],["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\u8f83\u591a\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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"\u76f4\u64ad\u6d41\u683c\u5f0f"),t.qZA(),t.YNc(4,wo,15,0,"ng-template",null,3,t.W1O),t.TgZ(6,"nz-form-control",4),t._UZ(7,"nz-select",5),t.qZA()(),t.YNc(8,So,7,4,"nz-form-item",6),t.YNc(9,Ao,7,4,"nz-form-item",6),t.TgZ(10,"nz-form-item",1)(11,"nz-form-label",7),t._uU(12,"\u753b\u8d28"),t.qZA(),t.TgZ(13,"nz-form-control",4),t._UZ(14,"nz-select",8),t.qZA()(),t.TgZ(15,"nz-form-item",9)(16,"nz-form-label",10),t._uU(17,"\u4fdd\u5b58\u5c01\u9762"),t.qZA(),t.TgZ(18,"nz-form-control",11),t._UZ(19,"nz-switch",12),t.qZA()(),t.TgZ(20,"nz-form-item",1)(21,"nz-form-label",2),t._uU(22,"\u5c01\u9762\u4fdd\u5b58\u7b56\u7565"),t.qZA(),t.YNc(23,ko,8,0,"ng-template",null,13,t.W1O),t.TgZ(25,"nz-form-control",14)(26,"nz-radio-group",15),t.YNc(27,Do,3,2,"ng-container",16),t.qZA()()(),t.YNc(28,Eo,5,3,"nz-form-item",6),t.TgZ(29,"nz-form-item",1)(30,"nz-form-label",17),t._uU(31,"\u65ad\u7f51\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.TgZ(32,"nz-form-control",4),t._UZ(33,"nz-select",18),t.qZA()(),t.YNc(34,Zo,5,3,"nz-form-item",6),t.qZA()),2&n){const o=t.MAs(5),a=t.MAs(24);t.Q6J("formGroup",e.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.streamFormat?e.streamFormatControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.streamFormatOptions),t.xp6(1),t.Q6J("ngIf","fmp4"===e.streamFormatControl.value),t.xp6(1),t.Q6J("ngIf","fmp4"===e.streamFormatControl.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.qualityNumber?e.qualityNumberControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.qualityOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.saveCover?e.saveCoverControl:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.coverSaveStrategy?e.coverSaveStrategyControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",!e.saveCoverControl.value),t.xp6(1),t.Q6J("ngForOf",e.coverSaveStrategies),t.xp6(1),t.Q6J("ngIf","flv"===e.streamFormatControl.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.disconnectionTimeout?e.disconnectionTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.disconnectionTimeoutOptions),t.xp6(1),t.Q6J("ngIf","flv"===e.streamFormatControl.value||"fmp4"===e.streamFormatControl.value&&"standard"===e.recordingModeControl.value)}},dependencies:[p.sg,p.O5,r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,G.Of,G.Bq,G.Dg,zt.Vq,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class St{constructor(n,e){this.changeDetector=e,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=n.group({userAgent:["",[r.kI.required]]})}get control(){return this.settingsForm.get("userAgent")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}}St.\u0275fac=function(n){return new(n||St)(t.Y36(r.qu),t.Y36(t.sBO))},St.\u0275cmp=t.Xpm({type:St,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(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Uo,7,5,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var dt=c(1664);function Io(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.qZA()()(),t.BQk()),2&i){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)}}function Jo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.testCookie())}),t._uU(1," \u6d4b\u8bd5 "),t.qZA(),t.TgZ(2,"button",7),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",""===e.control.value.trim()),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}class yt{constructor(n,e,o,a){this.changeDetector=e,this.validationService=o,this.message=a,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=n.group({cookie:[""]})}get control(){return this.settingsForm.get("cookie")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}testCookie(){this.validationService.validateCookie(this.control.value).subscribe(n=>{0===n.code?this.message.success(`uid: ${n.data?.mid}, uname: ${n.data?.uname}`):this.message.error(`${n.code}: ${n.message}`)})}}yt.\u0275fac=function(n){return new(n||yt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y),t.Y36(se.dD))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["app-cookie-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:1,consts:[["nzTitle","\u4fee\u6539 Cookie","nzCentered","",3,"nzVisible","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzWarningTip","nzValidateStatus"],["wrap","soft","nz-input","","formControlName","cookie",3,"rows"],["nz-button","","nzType","primary",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzType","primary","nzDanger","",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,Io,5,4,"ng-container",1),t.YNc(2,Jo,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)},dependencies:[r._Y,r.Fj,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class At{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({userAgent:["",[r.kI.required]],cookie:[""]})}get userAgentControl(){return this.settingsForm.get("userAgent")}get cookieControl(){return this.settingsForm.get("cookie")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("header",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}At.\u0275fac=function(n){return new(n||At)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},At.\u0275cmp=t.Xpm({type:At,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(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"User Agent"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-user-agent-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.userAgentControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(16);return t.KtG(s.open())}),t.TgZ(10,"nz-form-label",2),t._uU(11,"Cookie"),t.qZA(),t.TgZ(12,"nz-form-control",3)(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-cookie-edit-dialog",5,7),t.NdJ("confirm",function(s){return e.cookieControl.setValue(s)}),t.qZA()()()()}2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.userAgent?e.userAgentControl:"warning"),t.xp6(2),t.hij("",e.userAgentControl.value," "),t.xp6(1),t.Q6J("value",e.userAgentControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.cookie?e.cookieControl:"warning"),t.xp6(2),t.hij("",e.cookieControl.value," "),t.xp6(1),t.Q6J("value",e.cookieControl.value))},dependencies:[r._Y,r.JL,r.sg,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,St,yt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var at=c(9089),Qo=c(6457),Vo=c(4501);function Lo(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u4fdd\u5b58\u4f4d\u7f6e "),t.BQk())}function qo(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u662f\u4e00\u4e2a\u76ee\u5f55 "),t.BQk())}function Yo(i,n){1&i&&(t.ynx(0),t._uU(1," \u6ca1\u6709\u8bfb\u5199\u6743\u9650 "),t.BQk())}function Wo(i,n){1&i&&(t.ynx(0),t._uU(1," \u672a\u80fd\u8fdb\u884c\u9a8c\u8bc1 "),t.BQk())}function Ro(i,n){if(1&i&&(t.YNc(0,Lo,2,0,"ng-container",6),t.YNc(1,qo,2,0,"ng-container",6),t.YNc(2,Yo,2,0,"ng-container",6),t.YNc(3,Wo,2,0,"ng-container",6)),2&i){const e=n.$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 Go(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,Ro,4,4,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e)}}class kt{constructor(n,e,o){this.changeDetector=e,this.validationService=o,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.outDirAsyncValidator=a=>this.validationService.validateDir(a.value).pipe((0,T.U)(s=>{switch(s.code){case ot.ENOTDIR:return{error:!0,notADirectory:!0};case ot.EACCES:return{error:!0,noPermissions:!0};default:return null}}),(0,w.K)(()=>(0,ie.of)({error:!0,failedToValidate:!0}))),this.settingsForm=n.group({outDir:["",[r.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(n){this.visible=n,this.visibleChange.emit(n),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()}}function Ho(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),t.BQk())}function $o(i,n){1&i&&(t.ynx(0),t._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),t.BQk())}function Ko(i,n){if(1&i&&(t.YNc(0,Ho,2,0,"ng-container",12),t.YNc(1,$o,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Xo(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.qZA()()),2&i){const e=n.$implicit;t.xp6(2),t.Oqu(e.name),t.xp6(2),t.Oqu(e.desc)}}function jo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"input",5),t.YNc(5,Ko,2,2,"ng-template",null,6,t.W1O),t.qZA()(),t.TgZ(7,"nz-collapse")(8,"nz-collapse-panel",7)(9,"nz-table",8,9)(11,"thead")(12,"tr")(13,"th"),t._uU(14,"\u53d8\u91cf"),t.qZA(),t.TgZ(15,"th"),t._uU(16,"\u8bf4\u660e"),t.qZA()()(),t.TgZ(17,"tbody"),t.YNc(18,Xo,5,2,"tr",10),t.qZA()(),t.TgZ(19,"p",11)(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.BQk()),2&i){const e=t.MAs(6),o=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)("nzPageSize",11)("nzShowPagination",!1)("nzSize","small"),t.xp6(9),t.Q6J("ngForOf",o.data)}}function ta(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",14),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){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)}}kt.\u0275fac=function(n){return new(n||kt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y))},kt.\u0275cmp=t.Xpm({type:kt,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\u5b58\u653e\u76ee\u5f55","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","","nzValidatingTip","\u6b63\u5728\u9a8c\u9a8c...",3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","outDir"],["errorTip",""],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Go,7,2,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Dt{constructor(n,e){this.changeDetector=e,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.pathTemplatePattern=d._m,this.pathTemplateDefault=d.ip,this.pathTemplateVariables=d.Dr,this.settingsForm=n.group({pathTemplate:["",[r.kI.required,r.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(n){this.visible=n,this.visibleChange.emit(n),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)}}function ea(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u5927\u5c0f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1a\u6570\u5b57 + \u5355\u4f4d(GB, MB, KB, B) "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"0 B"),t.qZA(),t._UZ(8,"br"),t.qZA())}function na(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u65f6\u957f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1aHH:MM:SS "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"00:00:00"),t.qZA(),t._UZ(8,"br"),t.qZA())}Dt.\u0275fac=function(n){return new(n||Dt)(t.Y36(r.qu),t.Y36(t.sBO))},Dt.\u0275cmp=t.Xpm({type:Dt,selectors:[["app-path-template-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u6587\u4ef6\u8def\u5f84\u6a21\u677f","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["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","nzPageSize","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(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,jo,22,8,"ng-container",1),t.YNc(2,ta,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.sg,p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.c5,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,H.N8,H.Uo,H._C,H.Om,H.p0,H.$Z,Mi,Ne],styles:[".footnote[_ngcontent-%COMP%]{margin-top:1em;margin-bottom:0}"],changeDetection:0});class Et{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({outDir:[""],pathTemplate:[""],filesizeLimit:["",[r.kI.required,r.kI.min(0),r.kI.max(0xf9ff5c28f5)]],durationLimit:["",[r.kI.required,r.kI.min(0),r.kI.max(359999)]]})}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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("output",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Et.\u0275fac=function(n){return new(n||Et)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Et.\u0275cmp=t.Xpm({type:Et,selectors:[["app-output-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:15,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"],["filesizeLimitTip",""],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","filesizeLimit"],["durationLimitTip",""],["formControlName","durationLimit"]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u5b58\u653e\u76ee\u5f55"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-outdir-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.outDirControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(16);return t.KtG(s.open())}),t.TgZ(10,"nz-form-label",2),t._uU(11,"\u8def\u5f84\u6a21\u677f"),t.qZA(),t.TgZ(12,"nz-form-control",3)(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-path-template-edit-dialog",5,7),t.NdJ("confirm",function(s){return e.pathTemplateControl.setValue(s)}),t.qZA()()(),t.TgZ(17,"nz-form-item",8)(18,"nz-form-label",9),t._uU(19,"\u5927\u5c0f\u9650\u5236"),t.qZA(),t.YNc(20,ea,9,0,"ng-template",null,10,t.W1O),t.TgZ(22,"nz-form-control",11),t._UZ(23,"app-input-filesize",12),t.qZA()(),t.TgZ(24,"nz-form-item",8)(25,"nz-form-label",9),t._uU(26,"\u65f6\u957f\u9650\u5236"),t.qZA(),t.YNc(27,na,9,0,"ng-template",null,13,t.W1O),t.TgZ(29,"nz-form-control",11),t._UZ(30,"app-input-duration",14),t.qZA()()()}if(2&n){const o=t.MAs(21),a=t.MAs(28);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.outDir?e.outDirControl:"warning"),t.xp6(2),t.hij("",e.outDirControl.value," "),t.xp6(1),t.Q6J("value",e.outDirControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.pathTemplate?e.pathTemplateControl:"warning"),t.xp6(2),t.hij("",e.pathTemplateControl.value," "),t.xp6(1),t.Q6J("value",e.pathTemplateControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.filesizeLimit?e.filesizeLimitControl:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.durationLimit?e.durationLimitControl:"warning")}},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,Qo.i,Vo.q,kt,Dt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Zt{}Zt.\u0275fac=function(n){return new(n||Zt)},Zt.\u0275cmp=t.Xpm({type:Zt,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(n,e){1&n&&(t.TgZ(0,"a",0)(1,"span",1),t._uU(2,"Webhooks"),t.qZA(),t.TgZ(3,"span",2),t._UZ(4,"i",3),t.qZA()())},dependencies:[v.rH,I.w,lt.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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Nt{validate(n){return(i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null})(n)}}function ia(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function oa(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function aa(i,n){if(1&i&&(t.YNc(0,ia,2,0,"ng-container",7),t.YNc(1,oa,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function ra(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,aa,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function sa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBaseApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Nt.\u0275fac=function(n){return new(n||Nt)},Nt.\u0275dir=t.lG2({type:Nt,selectors:[["","appBaseUrlValidator",""]],features:[t._Bn([{provide:r.Cf,useExisting:Nt,multi:!0}])]});class Bt{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBaseApiUrl=d.QL,this.settingsForm=n.group({baseApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("baseApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBaseApiUrl)}}function la(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function ca(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function ga(i,n){if(1&i&&(t.YNc(0,la,2,0,"ng-container",7),t.YNc(1,ca,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function ua(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,ga,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function ma(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBaseLiveApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Bt.\u0275fac=function(n){return new(n||Bt)(t.Y36(r.qu),t.Y36(t.sBO))},Bt.\u0275cmp=t.Xpm({type:Bt,selectors:[["app-base-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u4e3b\u7ad9 API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","baseApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,ra,7,3,"ng-container",1),t.YNc(2,sa,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Ut{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBaseLiveApiUrl=d.gZ,this.settingsForm=n.group({baseLiveApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("baseLiveApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBaseLiveApiUrl)}}function pa(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function da(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function ha(i,n){if(1&i&&(t.YNc(0,pa,2,0,"ng-container",7),t.YNc(1,da,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function _a(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,ha,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function fa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBasePlayInfoApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Ut.\u0275fac=function(n){return new(n||Ut)(t.Y36(r.qu),t.Y36(t.sBO))},Ut.\u0275cmp=t.Xpm({type:Ut,selectors:[["app-base-live-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u76f4\u64ad API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","baseLiveApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,ua,7,3,"ng-container",1),t.YNc(2,ma,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class It{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBasePlayInfoApiUrl=d.gZ,this.settingsForm=n.group({basePlayInfoApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("basePlayInfoApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBasePlayInfoApiUrl)}}function Ca(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1,"\u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u4e3b\u7ad9 API \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002"),t.qZA(),t.TgZ(2,"p"),t._uU(3,"\u8bf7\u6c42\u65b9\u5f0f\uff1a\u5148\u7528\u7b2c\u4e00\u4e2a\u53d1\u9001\u8bf7\u6c42\uff0c\u51fa\u9519\u5c31\u7528\u7b2c\u4e8c\u4e2a\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002"),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u7f13\u89e3\u8bf7\u6c42\u8fc7\u591a\u88ab\u98ce\u63a7"),t.qZA())}function va(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u76f4\u64ad API (\u76f4\u64ad\u6d41 API getRoomPlayInfo \u9664\u5916) \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002 "),t.qZA(),t.TgZ(2,"p"),t._uU(3,"\u8bf7\u6c42\u65b9\u5f0f\uff1a\u5148\u7528\u7b2c\u4e00\u4e2a\u53d1\u9001\u8bf7\u6c42\uff0c\u51fa\u9519\u5c31\u7528\u7b2c\u4e8c\u4e2a\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002"),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u7f13\u89e3\u8bf7\u6c42\u8fc7\u591a\u88ab\u98ce\u63a7"),t.qZA())}function za(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u76f4\u64ad\u6d41 API (getRoomPlayInfo) \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002 "),t.qZA(),t.TgZ(2,"p"),t._uU(3," \u8bf7\u6c42\u65b9\u5f0f\uff1a\u540c\u65f6\u5e76\u53d1\u5411\u5168\u90e8 API \u4e3b\u673a\u53d1\u9001\u8bf7\u6c42\uff08\u4ece\u5168\u90e8\u6210\u529f\u7684\u8bf7\u6c42\u7ed3\u679c\u4e2d\u63d0\u53d6\u76f4\u64ad\u6d41\u8d28\u91cf\u8f83\u597d\u7684\u76f4\u64ad\u6d41\u5730\u5740\uff09 "),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u6539\u53d8\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u7684 CDN"),t.qZA(),t.TgZ(6,"p"),t._uU(7," P.S\uff1a\u56fd\u5916 IP \u7684\u8bf7\u6c42\u7ed3\u679c\u6ca1\u6709 HLS(fmp4) \u6d41\uff0c\u8981\u540c\u65f6\u652f\u6301 fmp4 \u548c flv \u53ef\u4ee5\u6df7\u7528\u56fd\u5185\u548c\u56fd\u5916\u7684 API \u4e3b\u673a\u3002 "),t.qZA())}It.\u0275fac=function(n){return new(n||It)(t.Y36(r.qu),t.Y36(t.sBO))},It.\u0275cmp=t.Xpm({type:It,selectors:[["app-base-play-info-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u76f4\u64ad\u6d41 API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","basePlayInfoApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,_a,7,3,"ng-container",1),t.YNc(2,fa,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Jt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({baseApiUrls:[[]],baseLiveApiUrls:[[]],basePlayInfoApiUrls:[[]]})}get baseApiUrlsControl(){return this.settingsForm.get("baseApiUrls")}get baseLiveApiUrlsControl(){return this.settingsForm.get("baseLiveApiUrls")}get basePlayInfoApiUrlsControl(){return this.settingsForm.get("basePlayInfoApiUrls")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("biliApi",this.settings,this.settingsForm.valueChanges,!1).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Jt.\u0275fac=function(n){return new(n||Jt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Jt.\u0275cmp=t.Xpm({type:Jt,selectors:[["app-bili-api-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:16,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label",3,"nzTooltipTitle"],["baseApiUrlsTip",""],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["baseApiUrlsEditDialog",""],["baseLiveApiUrlsTip",""],["baseLiveApiUrlsEditDialog",""],["basePalyInfoApiUrlTip",""],["basePlayInfoApiUrlsEditDialog",""]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(10);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u4e3b\u7ad9 API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(4,Ca,6,0,"ng-template",null,3,t.W1O),t.TgZ(6,"nz-form-control",4)(7,"nz-form-text",5),t._uU(8),t.qZA(),t.TgZ(9,"app-base-api-url-edit-dialog",6,7),t.NdJ("confirm",function(s){return e.baseApiUrlsControl.setValue(s)}),t.qZA()()(),t.TgZ(11,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(20);return t.KtG(s.open())}),t.TgZ(12,"nz-form-label",2),t._uU(13,"\u76f4\u64ad API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(14,va,6,0,"ng-template",null,8,t.W1O),t.TgZ(16,"nz-form-control",4)(17,"nz-form-text",5),t._uU(18),t.qZA(),t.TgZ(19,"app-base-live-api-url-edit-dialog",6,9),t.NdJ("confirm",function(s){return e.baseLiveApiUrlsControl.setValue(s)}),t.qZA()()(),t.TgZ(21,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(30);return t.KtG(s.open())}),t.TgZ(22,"nz-form-label",2),t._uU(23,"\u76f4\u64ad\u6d41 API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(24,za,8,0,"ng-template",null,10,t.W1O),t.TgZ(26,"nz-form-control",4)(27,"nz-form-text",5),t._uU(28),t.qZA(),t.TgZ(29,"app-base-play-info-api-url-edit-dialog",6,11),t.NdJ("confirm",function(s){return e.basePlayInfoApiUrlsControl.setValue(s)}),t.qZA()()()()}if(2&n){const o=t.MAs(5),a=t.MAs(15),s=t.MAs(25);t.Q6J("formGroup",e.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.baseApiUrls?e.baseApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.baseApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.baseApiUrlsControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.baseLiveApiUrls?e.baseLiveApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.baseLiveApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.baseLiveApiUrlsControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",s),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.basePlayInfoApiUrls?e.basePlayInfoApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.basePlayInfoApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.basePlayInfoApiUrlsControl.value)}},dependencies:[r._Y,r.JL,r.sg,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,Bt,Ut,It],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}nz-form-control[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}"],changeDetection:0});const xa=["innerContent"];class Qt{constructor(n,e,o,a){this.changeDetector=n,this.route=e,this.logger=o,this.routerScrollService=a}ngOnInit(){this.route.data.subscribe(n=>{this.settings=n.settings,this.changeDetector.markForCheck()})}ngAfterViewInit(){this.innerContent?this.routerScrollService.setCustomViewportToScroll(this.innerContent.nativeElement):this.logger.error("The content element could not be found!")}}Qt.\u0275fac=function(n){return new(n||Qt)(t.Y36(t.sBO),t.Y36(v.gz),t.Y36(Z.Kf),t.Y36(pt))},Qt.\u0275cmp=t.Xpm({type:Qt,selectors:[["app-settings"]],viewQuery:function(n,e){if(1&n&&t.Gf(xa,5),2&n){let o;t.iGM(o=t.CRH())&&(e.innerContent=o.first)}},decls:24,vars:8,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","BILI API"],["name","\u7f51\u7edc\u8bf7\u6c42"],["name","\u65e5\u5fd7"],["name","\u901a\u77e5"],["name","Webhook"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0,1)(2,"div",2)(3,"div",3)(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-bili-api-settings",5),t.qZA(),t.TgZ(16,"app-page-section",11),t._UZ(17,"app-header-settings",5),t.qZA(),t.TgZ(18,"app-page-section",12),t._UZ(19,"app-logging-settings",5),t.qZA(),t.TgZ(20,"app-page-section",13),t._UZ(21,"app-notification-settings"),t.qZA(),t.TgZ(22,"app-page-section",14),t._UZ(23,"app-webhook-settings"),t.qZA()()()()),2&n&&(t.xp6(5),t.Q6J("settings",e.settings.output),t.xp6(2),t.Q6J("settings",e.settings.recorder),t.xp6(2),t.Q6J("settings",e.settings.danmaku),t.xp6(2),t.Q6J("settings",e.settings.postprocessing),t.xp6(2),t.Q6J("settings",e.settings.space),t.xp6(2),t.Q6J("settings",e.settings.biliApi),t.xp6(2),t.Q6J("settings",e.settings.header),t.xp6(2),t.Q6J("settings",e.settings.logging))},dependencies:[q.g,xt,Ot,Pt,Tt,wt,Ft,At,Et,Zt,Jt],styles:[".inner-content[_ngcontent-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.inner-content[_ngcontent-%COMP%]{padding-top:0}"]});var Oa=c(7298),Ma=c(6198),Ge=c(3449),ba=c(2168);const Ta=function Pa(i,n,e,o){if(!(0,Mt.Z)(i))return i;for(var a=-1,s=(n=(0,Ge.Z)(n,i)).length,g=s-1,m=i;null!=m&&++a<s;){var h=(0,ba.Z)(n[a]),k=e;if("__proto__"===h||"constructor"===h||"prototype"===h)return i;if(a!=g){var J=m[h];void 0===(k=o?o(J,h,m):void 0)&&(k=(0,Mt.Z)(J)?J:(0,Ye.Z)(n[a+1])?[]:{})}(0,Ma.Z)(m,h,k),m=m[h]}return i};var Sa=c(5867);const Aa=function ya(i,n){return function wa(i,n,e){for(var o=-1,a=n.length,s={};++o<a;){var g=n[o],m=(0,Oa.Z)(i,g);e(m,g)&&Ta(s,(0,Ge.Z)(g,i),m)}return s}(i,n,function(e,o){return(0,Sa.Z)(i,o)})};var ka=c(6623),He=c(8492),$e=He.Z?He.Z.isConcatSpreadable:void 0;const Ea=function Da(i){return(0,Le.Z)(i)||(0,Ve.Z)(i)||!!($e&&i&&i[$e])},Za=function Ke(i,n,e,o,a){var s=-1,g=i.length;for(e||(e=Ea),a||(a=[]);++s<g;){var m=i[s];n>0&&e(m)?n>1?Ke(m,n-1,e,o,a):(0,ka.Z)(a,m):o||(a[a.length]=m)}return a},Ba=function Na(i){return null!=i&&i.length?Za(i,1):[]},Ia=function Ua(i,n,e){switch(e.length){case 0:return i.call(n);case 1:return i.call(n,e[0]);case 2:return i.call(n,e[0],e[1]);case 3:return i.call(n,e[0],e[1],e[2])}return i.apply(n,e)};var Xe=Math.max;const La=function Va(i){return function(){return i}};var je=c(2370),qa=c(9940),Ra=800,Ga=16,Ha=Date.now;const Xa=function $a(i){var n=0,e=0;return function(){var o=Ha(),a=Ga-(o-e);if(e=o,a>0){if(++n>=Ra)return arguments[0]}else n=0;return i.apply(void 0,arguments)}}(je.Z?function(i,n){return(0,je.Z)(i,"toString",{configurable:!0,enumerable:!1,value:La(n),writable:!0})}:qa.Z),f=function ja(i){return Xa(function Ja(i,n,e){return n=Xe(void 0===n?i.length-1:n,0),function(){for(var o=arguments,a=-1,s=Xe(o.length-n,0),g=Array(s);++a<s;)g[a]=o[n+a];a=-1;for(var m=Array(n+1);++a<n;)m[a]=o[a];return m[n]=e(g),Ia(i,this,m)}}(i,void 0,Ba),i+"")}(function(i,n){return null==i?{}:Aa(i,n)});var C=c(8760),rt=c(5545),st=c(7512);class N{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settingsForm.value,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}N.\u0275fac=function(n){return new(n||N)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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.TgZ(6,"nz-form-item",1)(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.TgZ(11,"nz-form-item",1)(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.TgZ(16,"nz-form-item",1)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyBegan?e.notifyBeganControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyEnded?e.notifyEndedControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyError?e.notifyErrorControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifySpace?e.notifySpaceControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var er=c(6422);function nr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function ir(i,n){1&i&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function or(i,n){if(1&i&&(t.YNc(0,nr,2,0,"ng-container",17),t.YNc(1,ir,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}function ar(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u6388\u6743\u7801\uff01 "),t.BQk())}function rr(i,n){1&i&&t.YNc(0,ar,2,0,"ng-container",17),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function sr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u4e3b\u673a\uff01 "),t.BQk())}function lr(i,n){1&i&&t.YNc(0,sr,2,0,"ng-container",17),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function cr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u7aef\u53e3\uff01 "),t.BQk())}function gr(i,n){1&i&&(t.ynx(0),t._uU(1," SMTP \u7aef\u53e3\u65e0\u6548\uff01 "),t.BQk())}function ur(i,n){if(1&i&&(t.YNc(0,cr,2,0,"ng-container",17),t.YNc(1,gr,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function mr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function pr(i,n){1&i&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function dr(i,n){if(1&i&&(t.YNc(0,mr,2,0,"ng-container",17),t.YNc(1,pr,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}class Vt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({srcAddr:["",[r.kI.required,r.kI.email]],dstAddr:["",[r.kI.required,r.kI.email]],authCode:["",[r.kI.required]],smtpHost:["",[r.kI.required]],smtpPort:["",[r.kI.required,r.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("emailNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm),(0,T.U)(n=>(0,er.Z)(n,(e,o,a)=>{o="smtpPort"===a?parseInt(o):o,Reflect.set(e,a,o)},{})))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Vt.\u0275fac=function(n){return new(n||Vt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Vt.\u0275cmp=t.Xpm({type:Vt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,or,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(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,rr,1,1,"ng-template",null,8,t.W1O),t.qZA()(),t.TgZ(15,"nz-form-item",1)(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,lr,1,1,"ng-template",null,11,t.W1O),t.qZA()(),t.TgZ(22,"nz-form-item",1)(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,ur,2,2,"ng-template",null,14,t.W1O),t.qZA()(),t.TgZ(29,"nz-form-item",1)(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,dr,2,2,"ng-template",null,5,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14),s=t.MAs(21),g=t.MAs(28);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.srcAddrControl.valid&&!e.syncStatus.srcAddr?"warning":e.srcAddrControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.authCodeControl.valid&&!e.syncStatus.authCode?"warning":e.authCodeControl),t.xp6(7),t.Q6J("nzErrorTip",s)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.smtpHostControl.valid&&!e.syncStatus.smtpHost?"warning":e.smtpHostControl),t.xp6(7),t.Q6J("nzErrorTip",g)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.smtpPortControl.valid&&!e.syncStatus.smtpPort?"warning":e.smtpPortControl),t.xp6(7),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.dstAddrControl.valid&&!e.syncStatus.dstAddr?"warning":e.dstAddrControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.c5,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:6em!important;width:6em!important}"],changeDetection:0});class B{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({enabled:[""]})}get enabledControl(){return this.settingsForm.get("enabled")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}B.\u0275fac=function(n){return new(n||B)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},B.\u0275cmp=t.Xpm({type:B,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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.enabled?e.enabledControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class A{constructor(n,e,o){this.changeDetector=n,this.message=e,this.settingService=o}ngOnInit(){switch(this.keyOfSettings){case"emailNotification":this.messageTypes=["text","html"];break;case"serverchanNotification":this.messageTypes=["markdown"];break;case"pushdeerNotification":this.messageTypes=["markdown","text"];break;case"pushplusNotification":this.messageTypes=["markdown","text","html"];break;case"telegramNotification":this.messageTypes=["markdown","html"]}}ngOnChanges(n){this.updateCommonSettings()}changeBeganMessageTemplateSettings(n){this.changeMessageTemplateSettings({beganMessageType:n.messageType,beganMessageTitle:n.messageTitle,beganMessageContent:n.messageContent}).subscribe()}changeEndedMessageTemplateSettings(n){this.changeMessageTemplateSettings({endedMessageType:n.messageType,endedMessageTitle:n.messageTitle,endedMessageContent:n.messageContent}).subscribe()}changeSpaceMessageTemplateSettings(n){this.changeMessageTemplateSettings({spaceMessageType:n.messageType,spaceMessageTitle:n.messageTitle,spaceMessageContent:n.messageContent}).subscribe()}changeErrorMessageTemplateSettings(n){this.changeMessageTemplateSettings({errorMessageType:n.messageType,errorMessageTitle:n.messageTitle,errorMessageContent:n.messageContent}).subscribe()}changeMessageTemplateSettings(n){return this.settingService.changeSettings({[this.keyOfSettings]:n}).pipe((0,F.X)(3,300),(0,re.b)(e=>{this.message.success("\u4fee\u6539\u6d88\u606f\u6a21\u677f\u8bbe\u7f6e\u6210\u529f"),this.settings={...this.settings,...e[this.keyOfSettings]},this.updateCommonSettings(),this.changeDetector.markForCheck()},e=>{this.message.error(`\u4fee\u6539\u6d88\u606f\u6a21\u677f\u8bbe\u7f6e\u51fa\u9519: ${e.message}`)}))}updateCommonSettings(){this.beganMessageTemplateSettings={messageType:this.settings.beganMessageType,messageTitle:this.settings.beganMessageTitle,messageContent:this.settings.beganMessageContent},this.endedMessageTemplateSettings={messageType:this.settings.endedMessageType,messageTitle:this.settings.endedMessageTitle,messageContent:this.settings.endedMessageContent},this.spaceMessageTemplateSettings={messageType:this.settings.spaceMessageType,messageTitle:this.settings.spaceMessageTitle,messageContent:this.settings.spaceMessageContent},this.errorMessageTemplateSettings={messageType:this.settings.errorMessageType,messageTitle:this.settings.errorMessageTitle,messageContent:this.settings.errorMessageContent}}}function hr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}A.\u0275fac=function(n){return new(n||A)(t.Y36(t.sBO),t.Y36(se.dD),t.Y36(S.R))},A.\u0275cmp=t.Xpm({type:A,selectors:[["app-message-template-settings"]],inputs:{settings:"settings",keyOfSettings:"keyOfSettings"},features:[t.TTD],decls:20,vars:12,consts:[[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"title","value","messageTypes","confirm"],["beganMessageTemplateEditDialog",""],["endedMessageTemplateEditDialog",""],["errorMessageTemplateEditDialog",""],["spaceMessageTemplateEditDialog",""]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(4);return t.KtG(s.open())}),t.TgZ(1,"span",1),t._uU(2,"\u5f00\u64ad\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(3,"app-message-template-edit-dialog",2,3),t.NdJ("confirm",function(s){return e.changeBeganMessageTemplateSettings(s)}),t.qZA(),t.TgZ(5,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(9);return t.KtG(s.open())}),t.TgZ(6,"span",1),t._uU(7,"\u4e0b\u64ad\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(8,"app-message-template-edit-dialog",2,4),t.NdJ("confirm",function(s){return e.changeEndedMessageTemplateSettings(s)}),t.qZA(),t.TgZ(10,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(14);return t.KtG(s.open())}),t.TgZ(11,"span",1),t._uU(12,"\u5f02\u5e38\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(13,"app-message-template-edit-dialog",2,5),t.NdJ("confirm",function(s){return e.changeErrorMessageTemplateSettings(s)}),t.qZA(),t.TgZ(15,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(19);return t.KtG(s.open())}),t.TgZ(16,"span",1),t._uU(17,"\u7a7a\u95f4\u4e0d\u8db3\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(18,"app-message-template-edit-dialog",2,6),t.NdJ("confirm",function(s){return e.changeSpaceMessageTemplateSettings(s)}),t.qZA()}2&n&&(t.xp6(3),t.Q6J("title","\u4fee\u6539\u5f00\u64ad\u6d88\u606f\u6a21\u677f")("value",e.beganMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u4e0b\u64ad\u6d88\u606f\u6a21\u677f")("value",e.endedMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u5f02\u5e38\u6d88\u606f\u6a21\u677f")("value",e.errorMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u7a7a\u95f4\u4e0d\u8db3\u6d88\u606f\u6a21\u677f")("value",e.spaceMessageTemplateSettings)("messageTypes",e.messageTypes))},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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Lt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.emailSettings=f(e,C.gP),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function _r(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 sendkey\uff01 "),t.BQk())}function fr(i,n){1&i&&(t.ynx(0),t._uU(1," sendkey \u65e0\u6548 "),t.BQk())}function Cr(i,n){if(1&i&&(t.YNc(0,_r,2,0,"ng-container",6),t.YNc(1,fr,2,0,"ng-container",6)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Lt.\u0275fac=function(n){return new(n||Lt)(t.Y36(t.sBO),t.Y36(v.gz))},Lt.\u0275cmp=t.Xpm({type:Lt,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,hr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Vt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class qt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({sendkey:["",[r.kI.required,r.kI.pattern(/^[a-zA-Z\d]+$/)]]})}get sendkeyControl(){return this.settingsForm.get("sendkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("serverchanNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function vr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}qt.\u0275fac=function(n){return new(n||qt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},qt.\u0275cmp=t.Xpm({type:qt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,Cr,2,2,"ng-template",null,5,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.sendkeyControl.valid&&!e.syncStatus.sendkey?"warning":e.sendkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class Yt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.serverchanSettings=f(e,C.gq),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function zr(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function xr(i,n){1&i&&t.YNc(0,zr,2,0,"ng-container",9),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}function Or(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 pushkey\uff01 "),t.BQk())}function Mr(i,n){1&i&&(t.ynx(0),t._uU(1," pushkey \u65e0\u6548 "),t.BQk())}function br(i,n){if(1&i&&(t.YNc(0,Or,2,0,"ng-container",9),t.YNc(1,Mr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Yt.\u0275fac=function(n){return new(n||Yt)(t.Y36(t.sBO),t.Y36(v.gz))},Yt.\u0275cmp=t.Xpm({type:Yt,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,vr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,qt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Wt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({server:["",[r.kI.pattern(/^https?:\/\/.+/)]],pushkey:["",[r.kI.required,r.kI.pattern(/^PDU\d+T[a-zA-Z\d]{32}(,PDU\d+T[a-zA-Z\d]{32}){0,99}$/)]]})}get serverControl(){return this.settingsForm.get("server")}get pushkeyControl(){return this.settingsForm.get("pushkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("pushdeerNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Pr(i,n){if(1&i&&(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-pushdeer-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.pushdeerSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Wt.\u0275fac=function(n){return new(n||Wt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Wt.\u0275cmp=t.Xpm({type:Wt,selectors:[["app-pushdeer-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:15,vars:7,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u670d\u52a1\u5668 https://api2.pushdeer.com","nz-input","","formControlName","server"],["serverErrorTip",""],["nzFor","pushkey","nzNoColon","","nzRequired","",1,"setting-label"],["id","pushkey","type","text","placeholder","\u591a\u4e2a key \u7528 , \u9694\u5f00\uff0c\u5728\u7ebf\u7248\u6700\u591a 10 \u4e2a\uff0c\u81ea\u67b6\u7248\u9ed8\u8ba4\u6700\u591a 100 \u4e2a\u3002","required","","nz-input","","formControlName","pushkey"],["pushkeyErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"server"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,xr,1,1,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"pushkey"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,br,2,2,"ng-template",null,8,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.pushkeyControl.valid&&!e.syncStatus.pushkey?"warning":e.pushkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class Rt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.pushdeerSettings=f(e,C.jK),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Tr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 token\uff01 "),t.BQk())}function wr(i,n){1&i&&(t.ynx(0),t._uU(1," token \u65e0\u6548 "),t.BQk())}function Fr(i,n){if(1&i&&(t.YNc(0,Tr,2,0,"ng-container",9),t.YNc(1,wr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Rt.\u0275fac=function(n){return new(n||Rt)(t.Y36(t.sBO),t.Y36(v.gz))},Rt.\u0275cmp=t.Xpm({type:Rt,selectors:[["app-pushdeer-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","PushDeer \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","pushdeerNotification",3,"settings"],["name","PushDeer"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Pr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Wt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Gt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({token:["",[r.kI.required,r.kI.pattern(/^[a-z\d]{32}$/)]],topic:[""]})}get tokenControl(){return this.settingsForm.get("token")}get topicControl(){return this.settingsForm.get("topic")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("pushplusNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Sr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Gt.\u0275fac=function(n){return new(n||Gt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Gt.\u0275cmp=t.Xpm({type:Gt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,Fr,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(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()()()),2&n){const o=t.MAs(7);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.tokenControl.valid&&!e.syncStatus.token?"warning":e.tokenControl),t.xp6(7),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.topicControl.valid&&!e.syncStatus.topic?"warning":e.topicControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:4em!important;width:4em!important}"],changeDetection:0});class Ht{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.pushplusSettings=f(e,C.q1),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function yr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 token\uff01 "),t.BQk())}function Ar(i,n){1&i&&(t.ynx(0),t._uU(1," token \u65e0\u6548 "),t.BQk())}function kr(i,n){if(1&i&&(t.YNc(0,yr,2,0,"ng-container",12),t.YNc(1,Ar,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Dr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 chatid\uff01 "),t.BQk())}function Er(i,n){1&i&&(t.ynx(0),t._uU(1," chatid \u65e0\u6548 "),t.BQk())}function Zr(i,n){if(1&i&&(t.YNc(0,Dr,2,0,"ng-container",12),t.YNc(1,Er,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Nr(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function Br(i,n){1&i&&t.YNc(0,Nr,2,0,"ng-container",12),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}Ht.\u0275fac=function(n){return new(n||Ht)(t.Y36(t.sBO),t.Y36(v.gz))},Ht.\u0275cmp=t.Xpm({type:Ht,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Sr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Gt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class $t{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({token:["",[r.kI.required,r.kI.pattern(/^[0-9]{8,10}:[a-zA-Z0-9_-]{35}$/)]],chatid:["",[r.kI.required,r.kI.pattern(/^(-|[0-9]){0,}$/)]],server:["",[r.kI.pattern(/^https?:\/\/[a-zA-Z0-9-_.]+(:[0-9]+)?/)]]})}get tokenControl(){return this.settingsForm.get("token")}get chatidControl(){return this.settingsForm.get("chatid")}get serverControl(){return this.settingsForm.get("server")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("telegramNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Ur(i,n){if(1&i&&(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-telegram-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.telegramSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}$t.\u0275fac=function(n){return new(n||$t)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},$t.\u0275cmp=t.Xpm({type:$t,selectors:[["app-telegram-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:22,vars:10,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","chatid","nzNoColon","","nzRequired","",1,"setting-label"],["id","chatid","type","text","required","","nz-input","","formControlName","chatid"],["chatidErrorTip",""],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u63a5\u53e3 https://api.telegram.org","nz-input","","formControlName","server"],["serverErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,kr,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"chatid"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Zr,2,2,"ng-template",null,8,t.W1O),t.qZA()(),t.TgZ(15,"nz-form-item",1)(16,"nz-form-label",9),t._uU(17,"server"),t.qZA(),t.TgZ(18,"nz-form-control",3),t._UZ(19,"input",10),t.YNc(20,Br,1,1,"ng-template",null,11,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14),s=t.MAs(21);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.tokenControl.valid&&!e.syncStatus.token?"warning":e.tokenControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.chatidControl.valid&&!e.syncStatus.chatid?"warning":e.chatidControl),t.xp6(7),t.Q6J("nzErrorTip",s)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:4em!important;width:4em!important}"],changeDetection:0});class Kt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.telegramSettings=f(e,C.wA),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Ir(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function Jr(i,n){1&i&&t.YNc(0,Ir,2,0,"ng-container",9),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}function Qr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 pushkey\uff01 "),t.BQk())}function Vr(i,n){1&i&&(t.ynx(0),t._uU(1," pushkey \u65e0\u6548 "),t.BQk())}function Lr(i,n){if(1&i&&(t.YNc(0,Qr,2,0,"ng-container",9),t.YNc(1,Vr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Kt.\u0275fac=function(n){return new(n||Kt)(t.Y36(t.sBO),t.Y36(v.gz))},Kt.\u0275cmp=t.Xpm({type:Kt,selectors:[["app-telegram-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","telegram \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","telegramNotification",3,"settings"],["name","telegram"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Ur,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,$t,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Xt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({server:["",[r.kI.pattern(/^https?:\/\/.+/)]],pushkey:["",[r.kI.required,r.kI.pattern(/^[a-zA-Z\d]+$/)]]})}get serverControl(){return this.settingsForm.get("server")}get pushkeyControl(){return this.settingsForm.get("pushkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("barkNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function qr(i,n){if(1&i&&(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-bark-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.barkSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Xt.\u0275fac=function(n){return new(n||Xt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Xt.\u0275cmp=t.Xpm({type:Xt,selectors:[["app-bark-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:15,vars:7,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u670d\u52a1\u5668 https://api.day.app","nz-input","","formControlName","server"],["serverErrorTip",""],["nzFor","pushkey","nzNoColon","","nzRequired","",1,"setting-label"],["id","pushkey","type","text","placeholder","","required","","nz-input","","formControlName","pushkey"],["pushkeyErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"server"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,Jr,1,1,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"pushkey"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Lr,2,2,"ng-template",null,8,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.pushkeyControl.valid&&!e.syncStatus.pushkey?"warning":e.pushkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class jt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.barkSettings=f(e,C.LV),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Yr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 url\uff01 "),t.BQk())}function Wr(i,n){1&i&&(t.ynx(0),t._uU(1," url \u65e0\u6548\uff01 "),t.BQk())}function Rr(i,n){if(1&i&&(t.YNc(0,Yr,2,0,"ng-container",29),t.YNc(1,Wr,2,0,"ng-container",29)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Gr(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item",3)(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,Rr,2,2,"ng-template",null,7,t.W1O),t.qZA()(),t.TgZ(9,"div",8)(10,"h2"),t._uU(11,"\u4e8b\u4ef6"),t.qZA(),t.TgZ(12,"nz-form-item",3)(13,"nz-form-control",9)(14,"label",10),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.setAllChecked(a))}),t._uU(15,"\u5168\u9009"),t.qZA()()(),t.TgZ(16,"nz-form-item",3)(17,"nz-form-control",11)(18,"label",12),t._uU(19,"\u5f00\u64ad"),t.qZA()()(),t.TgZ(20,"nz-form-item",3)(21,"nz-form-control",11)(22,"label",13),t._uU(23,"\u4e0b\u64ad"),t.qZA()()(),t.TgZ(24,"nz-form-item",3)(25,"nz-form-control",11)(26,"label",14),t._uU(27,"\u76f4\u64ad\u95f4\u4fe1\u606f\u6539\u53d8"),t.qZA()()(),t.TgZ(28,"nz-form-item",3)(29,"nz-form-control",11)(30,"label",15),t._uU(31,"\u5f55\u5236\u5f00\u59cb"),t.qZA()()(),t.TgZ(32,"nz-form-item",3)(33,"nz-form-control",11)(34,"label",16),t._uU(35,"\u5f55\u5236\u5b8c\u6210"),t.qZA()()(),t.TgZ(36,"nz-form-item",3)(37,"nz-form-control",11)(38,"label",17),t._uU(39,"\u5f55\u5236\u53d6\u6d88"),t.qZA()()(),t.TgZ(40,"nz-form-item",3)(41,"nz-form-control",11)(42,"label",18),t._uU(43,"\u89c6\u9891\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(44,"nz-form-item",3)(45,"nz-form-control",11)(46,"label",19),t._uU(47,"\u89c6\u9891\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(48,"nz-form-item",3)(49,"nz-form-control",11)(50,"label",20),t._uU(51,"\u5f39\u5e55\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(52,"nz-form-item",3)(53,"nz-form-control",11)(54,"label",21),t._uU(55,"\u5f39\u5e55\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(56,"nz-form-item",3)(57,"nz-form-control",11)(58,"label",22),t._uU(59,"\u539f\u59cb\u5f39\u5e55\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(60,"nz-form-item",3)(61,"nz-form-control",11)(62,"label",23),t._uU(63,"\u539f\u59cb\u5f39\u5e55\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(64,"nz-form-item",3)(65,"nz-form-control",11)(66,"label",24),t._uU(67,"\u76f4\u64ad\u5c01\u9762\u4e0b\u8f7d\u5b8c\u6210"),t.qZA()()(),t.TgZ(68,"nz-form-item",3)(69,"nz-form-control",11)(70,"label",25),t._uU(71,"\u89c6\u9891\u540e\u5904\u7406\u5b8c\u6210"),t.qZA()()(),t.TgZ(72,"nz-form-item",3)(73,"nz-form-control",11)(74,"label",26),t._uU(75,"\u6587\u4ef6\u540e\u5904\u7406\u5b8c\u6210"),t.qZA()()(),t.TgZ(76,"nz-form-item",3)(77,"nz-form-control",11)(78,"label",27),t._uU(79,"\u786c\u76d8\u7a7a\u95f4\u4e0d\u8db3"),t.qZA()()(),t.TgZ(80,"nz-form-item",3)(81,"nz-form-control",11)(82,"label",28),t._uU(83,"\u7a0b\u5e8f\u51fa\u73b0\u5f02\u5e38"),t.qZA()()()()(),t.BQk()}if(2&i){const e=t.MAs(8),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",e),t.xp6(9),t.Q6J("nzChecked",o.allChecked)("nzIndeterminate",o.indeterminate)}}jt.\u0275fac=function(n){return new(n||jt)(t.Y36(t.sBO),t.Y36(v.gz))},jt.\u0275cmp=t.Xpm({type:jt,selectors:[["app-bark-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","Bark \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","barkNotification",3,"settings"],["name","Bark"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,qr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Xt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});const Hr={url:"",liveBegan:!0,liveEnded:!0,roomChange:!0,recordingStarted:!0,recordingFinished:!0,recordingCancelled:!0,videoFileCreated:!0,videoFileCompleted:!0,danmakuFileCreated:!0,danmakuFileCompleted:!0,rawDanmakuFileCreated:!0,rawDanmakuFileCompleted:!0,coverImageDownloaded:!0,videoPostprocessingCompleted:!0,postprocessingCompleted:!0,spaceNoEnough:!0,errorOccurred:!0};class te{constructor(n,e){this.changeDetector=e,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=n.group({url:["",[r.kI.required,r.kI.pattern(/^https?:\/\/.*$/)]],liveBegan:[""],liveEnded:[""],roomChange:[""],recordingStarted:[""],recordingFinished:[""],recordingCancelled:[""],videoFileCreated:[""],videoFileCompleted:[""],danmakuFileCreated:[""],danmakuFileCompleted:[""],rawDanmakuFileCreated:[""],rawDanmakuFileCompleted:[""],coverImageDownloaded:[""],videoPostprocessingCompleted:[""],postprocessingCompleted:[""],spaceNoEnough:[""],errorOccurred:[""]}),this.checkboxControls=Object.entries(this.settingsForm.controls).filter(([o])=>"url"!==o).map(([,o])=>o),this.checkboxControls.forEach(o=>o.valueChanges.subscribe(()=>this.updateAllChecked()))}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.settingsForm.reset(),this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){void 0===this.settings&&(this.settings={...Hr}),this.settingsForm.setValue(this.settings),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.settingsForm.value),this.close()}setAllChecked(n){this.indeterminate=!1,this.allChecked=n,this.checkboxControls.forEach(e=>e.setValue(n))}updateAllChecked(){const n=this.checkboxControls.map(e=>e.value);this.allChecked=n.every(e=>e),this.indeterminate=!this.allChecked&&n.some(e=>e)}}te.\u0275fac=function(n){return new(n||te)(t.Y36(r.qu),t.Y36(t.sBO))},te.\u0275cmp=t.Xpm({type:te,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","recordingStarted"],["nz-checkbox","","formControlName","recordingFinished"],["nz-checkbox","","formControlName","recordingCancelled"],["nz-checkbox","","formControlName","videoFileCreated"],["nz-checkbox","","formControlName","videoFileCompleted"],["nz-checkbox","","formControlName","danmakuFileCreated"],["nz-checkbox","","formControlName","danmakuFileCompleted"],["nz-checkbox","","formControlName","rawDanmakuFileCreated"],["nz-checkbox","","formControlName","rawDanmakuFileCompleted"],["nz-checkbox","","formControlName","coverImageDownloaded"],["nz-checkbox","","formControlName","videoPostprocessingCompleted"],["nz-checkbox","","formControlName","postprocessingCompleted"],["nz-checkbox","","formControlName","spaceNoEnough"],["nz-checkbox","","formControlName","errorOccurred"],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Gr,84,4,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzTitle",e.title)("nzOkText",e.okButtonText)("nzVisible",e.visible)("nzOkDisabled",e.settingsForm.invalid)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp,Oe.Ie,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.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});var tn=c(3325);function $r(i,n){1&i&&t._UZ(0,"nz-list-empty")}function Kr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"nz-list-item",9)(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)(7,"ul",14)(8,"li",15),t.NdJ("click",function(){const s=t.CHM(e).index,g=t.oxw();return t.KtG(g.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,g=t.oxw();return t.KtG(g.remove.emit(s))}),t._uU(11,"\u5220\u9664"),t.qZA()()()()}if(2&i){const e=n.$implicit,o=t.MAs(6);t.xp6(2),t.Oqu(e.url),t.xp6(1),t.Q6J("nzDropdownMenu",o)}}class ee{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}}function Xr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"app-page-section")(1,"app-webhook-list",3),t.NdJ("add",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.addWebhook())})("edit",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.editWebhook(a))})("remove",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.removeWebhook(a))})("clear",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.clearWebhook())}),t.qZA()()}if(2&i){const e=t.oxw();t.xp6(1),t.Q6J("data",e.webhooks)("addable",e.canAdd)}}ee.\u0275fac=function(n){return new(n||ee)},ee.\u0275cmp=t.Xpm({type:ee,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(n,e){1&n&&(t.TgZ(0,"nz-list",0)(1,"nz-list-header",1)(2,"h3"),t._uU(3),t.qZA(),t.TgZ(4,"div",2)(5,"button",3),t.NdJ("click",function(){return e.clear.emit()}),t._UZ(6,"i",4),t.qZA(),t.TgZ(7,"button",5),t.NdJ("click",function(){return e.add.emit()}),t._UZ(8,"i",6),t.qZA()()(),t.YNc(9,$r,1,0,"nz-list-empty",7),t.YNc(10,Kr,12,2,"nz-list-item",8),t.qZA()),2&n&&(t.xp6(3),t.Oqu(e.header),t.xp6(2),t.Q6J("disabled",e.data.length<=0||!e.clearable),t.xp6(2),t.Q6J("disabled",!e.addable),t.xp6(2),t.Q6J("ngIf",e.data.length<=0),t.xp6(1),t.Q6J("ngForOf",e.data))},dependencies:[p.sg,p.O5,Q.ix,I.w,lt.Ls,ve,_e,he,ke,tn.wO,tn.r9,oe.cm,oe.RR,oe.wA,ue.SY],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});class R{constructor(n,e,o,a,s){this.changeDetector=n,this.route=e,this.message=o,this.modal=a,this.settingService=s,this.dialogTitle="",this.dialogOkButtonText="",this.dialogVisible=!1,this.editingIndex=-1}get canAdd(){return this.webhooks.length<R.MAX_WEBHOOKS}ngOnInit(){this.route.data.subscribe(n=>{this.webhooks=n.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(n){const e=this.webhooks.filter((o,a)=>a!==n);this.changeSettings(e).subscribe(()=>this.reset())}editWebhook(n){this.editingIndex=n,this.editingSettings={...this.webhooks[n]},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((n,e)=>{this.changeSettings([]).subscribe(n,e)})})}onDialogCanceled(){this.reset()}onDialogConfirmed(n){let e;-1===this.editingIndex?e=[...this.webhooks,n]:(e=[...this.webhooks],e[this.editingIndex]=n),this.changeSettings(e).subscribe(()=>this.reset())}reset(){this.editingIndex=-1,delete this.editingSettings}changeSettings(n){return this.settingService.changeSettings({webhooks:n}).pipe((0,F.X)(3,300),(0,re.b)(e=>{this.webhooks=e.webhooks,this.changeDetector.markForCheck()},e=>{this.message.error(`Webhook \u8bbe\u7f6e\u51fa\u9519: ${e.message}`)}))}}R.MAX_WEBHOOKS=50,R.\u0275fac=function(n){return new(n||R)(t.Y36(t.sBO),t.Y36(v.gz),t.Y36(se.dD),t.Y36(_.Sf),t.Y36(S.R))},R.\u0275cmp=t.Xpm({type:R,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(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Xr,2,2,"ng-template",1),t.qZA(),t.TgZ(2,"app-webhook-edit-dialog",2),t.NdJ("visibleChange",function(a){return e.dialogVisible=a})("cancel",function(){return e.onDialogCanceled()})("confirm",function(a){return e.onDialogConfirmed(a)}),t.qZA()),2&n&&(t.xp6(2),t.Q6J("title",e.dialogTitle)("okButtonText",e.dialogOkButtonText)("settings",e.editingSettings)("visible",e.dialogVisible))},dependencies:[rt.Y,st.q,q.g,te,ee],changeDetection:0});const jr=[{path:"email-notification",component:Lt,resolve:{settings:K}},{path:"serverchan-notification",component:Yt,resolve:{settings:X}},{path:"pushdeer-notification",component:Rt,resolve:{settings:j}},{path:"pushplus-notification",component:Ht,resolve:{settings:tt}},{path:"telegram-notification",component:Kt,resolve:{settings:et}},{path:"bark-notification",component:jt,resolve:{settings:it}},{path:"webhooks",component:R,resolve:{settings:nt}},{path:"",component:Qt,resolve:{settings:$}}];class ht{}function ts(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bed\u6cd5\u3001\u53d8\u91cf\u53c2\u8003 "),t.TgZ(2,"a",16),t._uU(3,"wiki"),t.qZA()(),t.TgZ(4,"p"),t._uU(5,"\u7a7a\u503c\u5c06\u4f7f\u7528\u9ed8\u8ba4\u6d88\u606f\u6a21\u677f"),t.qZA())}function es(i,n){if(1&i&&(t.ynx(0),t.YNc(1,ts,6,0,"ng-template",null,3,t.W1O),t.TgZ(3,"form",4)(4,"nz-form-item",5)(5,"nz-form-label",6),t._uU(6," \u6d88\u606f\u6807\u9898 "),t.qZA(),t.TgZ(7,"nz-form-control",7),t._UZ(8,"input",8),t.qZA()(),t.TgZ(9,"nz-form-item",9)(10,"nz-form-label",10),t._uU(11," \u6d88\u606f\u7c7b\u578b "),t.qZA(),t.TgZ(12,"nz-form-control",11),t._UZ(13,"nz-select",12),t.qZA()(),t.TgZ(14,"nz-form-item",13)(15,"nz-form-label",6),t._uU(16," \u6d88\u606f\u5185\u5bb9 "),t.qZA(),t.TgZ(17,"nz-form-control",14),t._UZ(18,"textarea",15),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(2),o=t.oxw();t.xp6(3),t.Q6J("nzLayout","vertical")("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",e),t.xp6(8),t.Q6J("nzOptions",o.MESSAGE_TYPE_OPTIONS),t.xp6(2),t.Q6J("nzTooltipTitle",e),t.xp6(3),t.Q6J("rows",10)}}function ns(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(1,"\u53d6\u6d88"),t.qZA(),t.TgZ(2,"button",18),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(3," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.xp6(2),t.Q6J("disabled",e.settingsForm.invalid)}}ht.\u0275fac=function(n){return new(n||ht)},ht.\u0275mod=t.oAB({type:ht}),ht.\u0275inj=t.cJS({imports:[v.Bz.forChild(jr),v.Bz]});class ne{constructor(n,e){this.changeDetector=e,this.messageTypes=[],this.title="\u4fee\u6539\u6d88\u606f\u6a21\u677f",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.MESSAGE_TYPE_OPTIONS=[],this.settingsForm=n.group({messageType:[""],messageTitle:[""],messageContent:[""]})}get messageTypeControl(){return this.settingsForm.get("messageType")}get messageTitleControl(){return this.settingsForm.get("messageTitle")}get messageContentControl(){return this.settingsForm.get("messageContent")}ngOnInit(){this.MESSAGE_TYPE_OPTIONS=Array.from(new Set(this.messageTypes)).map(n=>({label:n,value:n}))}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.settingsForm.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.settingsForm.value),this.close()}}ne.\u0275fac=function(n){return new(n||ne)(t.Y36(r.qu),t.Y36(t.sBO))},ne.\u0275cmp=t.Xpm({type:ne,selectors:[["app-message-template-edit-dialog"]],inputs:{value:"value",messageTypes:"messageTypes",title:"title",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:4,vars:3,consts:[["nzCentered","",3,"nzTitle","nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["modalFooter",""],["messageTemplateTip",""],["nz-form","",3,"nzLayout","formGroup"],[1,"setting-item","input"],["nzFor","messageTitle","nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],[1,"setting-control","input"],["type","text","nz-input","","formControlName","messageTitle"],[1,"setting-item","switch"],["nzFor","messageType","nzNoColon","",1,"setting-label"],[1,"setting-control","select"],["formControlName","messageType",3,"nzOptions"],[1,"setting-item","textarea"],[1,"setting-control","textarea"],["nz-input","","wrap","off","formControlName","messageContent",3,"rows"],["href","https://github.com/acgnhiki/blrec/wiki/MessageTemplate","_blank",""],["nz-button","","nzType","default",3,"click"],["nz-button","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,es,19,6,"ng-container",1),t.YNc(2,ns,4,1,"ng-template",null,2,t.W1O),t.qZA()),2&n&&t.Q6J("nzTitle",e.title)("nzVisible",e.visible)("nzOkDisabled",e.settingsForm.invalid)},dependencies:[r._Y,r.Fj,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp,zt.Vq,_.du,_.Hf,Q.ix,I.w,dt.dQ],styles:["textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}"],changeDetection:0});class _t{}_t.\u0275fac=function(n){return new(n||_t)},_t.\u0275mod=t.oAB({type:_t}),_t.\u0275inj=t.cJS({providers:[$,K,X,j,tt,et,it,nt],imports:[p.ez,ht,r.u5,r.UX,ge.j,en.KJ,nn.vh,l.U5,O.o7,U.m,Oe.Wr,G.aF,sn,zt.LV,_.Qp,Q.sL,lt.PV,pi,oe.b1,ue.cg,di.S,H.HQ,bi,Pi.m]}),t.B6R(A,[ne],[])}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[548],{2548:(ns,xe,c)=>{c.r(xe),c.d(xe,{SettingsModule:()=>_t});var p=c(6895),r=c(433),ge=c(5681),en=c(5655),nn=c(1971),l=c(6704),O=c(5635),U=c(1243),Oe=c(8213),G=c(8521),t=c(4650),ue=c(7570),on=c(3353),Ct=c(445);let sn=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,on.ud,ue.cg]}),i})();var zt=c(8e3),_=c(5156),Q=c(6616),lt=c(1102),Me=c(4383),ct=c(6287),D=c(655),E=c(3187),be=c(7579),ln=c(9770),ie=c(9646),cn=c(6451),gn=c(9751),un=c(1135),mn=c(5698),Pe=c(3900),gt=c(2722),ut=c(3303),Te=c(4788),u=c(3679);const V=["*"];function bn(i,n){1&i&&t.Hsn(0)}const Pn=["nz-list-item-actions",""];function Tn(i,n){}function wn(i,n){1&i&&t._UZ(0,"em",3)}function Fn(i,n){if(1&i&&(t.TgZ(0,"li"),t.YNc(1,Tn,0,0,"ng-template",1),t.YNc(2,wn,1,0,"em",2),t.qZA()),2&i){const e=n.$implicit,o=n.last;t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(1),t.Q6J("ngIf",!o)}}function Sn(i,n){}const we=function(i,n){return{$implicit:i,index:n}};function yn(i,n){if(1&i&&(t.ynx(0),t.YNc(1,Sn,0,0,"ng-template",9),t.BQk()),2&i){const e=n.$implicit,o=n.index,a=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",a.nzRenderItem)("ngTemplateOutletContext",t.WLB(2,we,e,o))}}function An(i,n){if(1&i&&(t.TgZ(0,"div",7),t.YNc(1,yn,2,5,"ng-container",8),t.Hsn(2,4),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function kn(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzHeader)}}function Dn(i,n){if(1&i&&(t.TgZ(0,"nz-list-header"),t.YNc(1,kn,2,1,"ng-container",10),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzHeader)}}function En(i,n){1&i&&t._UZ(0,"div"),2&i&&t.Udp("min-height",53,"px")}function Zn(i,n){}function Nn(i,n){if(1&i&&(t.TgZ(0,"div",13),t.YNc(1,Zn,0,0,"ng-template",9),t.qZA()),2&i){const e=n.$implicit,o=n.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,we,e,o))}}function Bn(i,n){if(1&i&&(t.TgZ(0,"div",11),t.YNc(1,Nn,2,12,"div",12),t.qZA()),2&i){const e=t.oxw();t.Q6J("nzGutter",e.nzGrid.gutter||null),t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function Un(i,n){if(1&i&&t._UZ(0,"nz-list-empty",14),2&i){const e=t.oxw();t.Q6J("nzNoResult",e.nzNoResult)}}function In(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzFooter)}}function Jn(i,n){if(1&i&&(t.TgZ(0,"nz-list-footer"),t.YNc(1,In,2,1,"ng-container",10),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzFooter)}}function Qn(i,n){}function Vn(i,n){}function Ln(i,n){if(1&i&&(t.TgZ(0,"nz-list-pagination"),t.YNc(1,Vn,0,0,"ng-template",6),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzPagination)}}const qn=[[["nz-list-header"]],[["nz-list-footer"],["","nz-list-footer",""]],[["nz-list-load-more"],["","nz-list-load-more",""]],[["nz-list-pagination"],["","nz-list-pagination",""]],"*"],Yn=["nz-list-header","nz-list-footer, [nz-list-footer]","nz-list-load-more, [nz-list-load-more]","nz-list-pagination, [nz-list-pagination]","*"];function Wn(i,n){if(1&i&&t._UZ(0,"ul",6),2&i){const e=t.oxw(2);t.Q6J("nzActions",e.nzActions)}}function Rn(i,n){if(1&i&&(t.YNc(0,Wn,1,1,"ul",5),t.Hsn(1)),2&i){const e=t.oxw();t.Q6J("ngIf",e.nzActions&&e.nzActions.length>0)}}function Gn(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(3);t.xp6(1),t.Oqu(e.nzContent)}}function Hn(i,n){if(1&i&&(t.ynx(0),t.YNc(1,Gn,2,1,"ng-container",8),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzContent)}}function $n(i,n){if(1&i&&(t.Hsn(0,1),t.Hsn(1,2),t.YNc(2,Hn,2,1,"ng-container",7)),2&i){const e=t.oxw();t.xp6(2),t.Q6J("ngIf",e.nzContent)}}function Kn(i,n){1&i&&t.Hsn(0,3)}function Xn(i,n){}function jn(i,n){}function ti(i,n){}function ei(i,n){}function ni(i,n){if(1&i&&(t.YNc(0,Xn,0,0,"ng-template",9),t.YNc(1,jn,0,0,"ng-template",9),t.YNc(2,ti,0,0,"ng-template",9),t.YNc(3,ei,0,0,"ng-template",9)),2&i){const e=t.oxw(),o=t.MAs(3),a=t.MAs(5),s=t.MAs(1);t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}function ii(i,n){}function oi(i,n){}function ai(i,n){}function ri(i,n){if(1&i&&(t.TgZ(0,"nz-list-item-extra"),t.YNc(1,ai,0,0,"ng-template",9),t.qZA()),2&i){const e=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra)}}function si(i,n){}function li(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"div",10),t.YNc(2,ii,0,0,"ng-template",9),t.YNc(3,oi,0,0,"ng-template",9),t.qZA(),t.YNc(4,ri,2,1,"nz-list-item-extra",7),t.YNc(5,si,0,0,"ng-template",9),t.BQk()),2&i){const e=t.oxw(),o=t.MAs(3),a=t.MAs(1),s=t.MAs(5);t.xp6(2),t.Q6J("ngTemplateOutlet",o),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngIf",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}const ci=[[["nz-list-item-actions"],["","nz-list-item-actions",""]],[["nz-list-item-meta"],["","nz-list-item-meta",""]],"*",[["nz-list-item-extra"],["","nz-list-item-extra",""]]],gi=["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 de=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item-extra"],["","nz-list-item-extra",""]],hostAttrs:[1,"ant-list-item-extra"],exportAs:["nzListItemExtra"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Se=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item-action"]],viewQuery:function(e,o){if(1&e&&t.Gf(t.Rgc,5),2&e){let a;t.iGM(a=t.CRH())&&(o.templateRef=a.first)}},exportAs:["nzListItemAction"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.YNc(0,bn,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),i})(),ye=(()=>{class i{constructor(e,o,a){this.ngZone=e,this.nzActions=[],this.actions=[],this.inputActionChanges$=new be.x,this.contentChildrenChanges$=(0,ln.P)(()=>this.nzListItemActions?(0,ie.of)(null):this.ngZone.onStable.pipe((0,mn.q)(1),this.enterZone(),(0,Pe.w)(()=>this.contentChildrenChanges$))),(0,cn.T)(this.contentChildrenChanges$,this.inputActionChanges$).pipe((0,gt.R)(a)).subscribe(()=>{this.actions=this.nzActions.length?this.nzActions:this.nzListItemActions.map(s=>s.templateRef),o.detectChanges()})}ngOnChanges(){this.inputActionChanges$.next(null)}enterZone(){return e=>new gn.y(o=>e.subscribe({next:a=>this.ngZone.run(()=>o.next(a))}))}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(ut.kn))},i.\u0275cmp=t.Xpm({type:i,selectors:[["ul","nz-list-item-actions",""]],contentQueries:function(e,o,a){if(1&e&&t.Suo(a,Se,4),2&e){let s;t.iGM(s=t.CRH())&&(o.nzListItemActions=s)}},hostAttrs:[1,"ant-list-item-action"],inputs:{nzActions:"nzActions"},exportAs:["nzListItemActions"],features:[t._Bn([ut.kn]),t.TTD],attrs:Pn,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,o){1&e&&t.YNc(0,Fn,3,2,"li",0),2&e&&t.Q6J("ngForOf",o.actions)},dependencies:[p.sg,p.O5,p.tP],encapsulation:2,changeDetection:0}),i})(),he=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,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,o){1&e&&t._UZ(0,"nz-embed-empty",0),2&e&&t.Q6J("nzComponentName","list")("specificContent",o.nzNoResult)},dependencies:[Te.gB],encapsulation:2,changeDetection:0}),i})(),_e=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-header"]],hostAttrs:[1,"ant-list-header"],exportAs:["nzListHeader"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),fe=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-footer"]],hostAttrs:[1,"ant-list-footer"],exportAs:["nzListFooter"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Ce=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-pagination"]],hostAttrs:[1,"ant-list-pagination"],exportAs:["nzListPagination"],ngContentSelectors:V,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),i})(),Ae=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275dir=t.lG2({type:i,selectors:[["nz-list-load-more"]],exportAs:["nzListLoadMoreDirective"]}),i})(),ve=(()=>{class i{constructor(e){this.directionality=e,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 un.X(this.nzItemLayout),this.destroy$=new be.x}get itemLayoutNotify$(){return this.itemLayoutNotifySource.asObservable()}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe((0,gt.R)(this.destroy$)).subscribe(e=>{this.dir=e})}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 i.\u0275fac=function(e){return new(e||i)(t.Y36(Ct.Is,8))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list"],["","nz-list",""]],contentQueries:function(e,o,a){if(1&e&&(t.Suo(a,fe,5),t.Suo(a,Ce,5),t.Suo(a,Ae,5)),2&e){let s;t.iGM(s=t.CRH())&&(o.nzListFooterComponent=s.first),t.iGM(s=t.CRH())&&(o.nzListPaginationComponent=s.first),t.iGM(s=t.CRH())&&(o.nzListLoadMoreDirective=s.first)}},hostAttrs:[1,"ant-list"],hostVars:16,hostBindings:function(e,o){2&e&&t.ekj("ant-list-rtl","rtl"===o.dir)("ant-list-vertical","vertical"===o.nzItemLayout)("ant-list-lg","large"===o.nzSize)("ant-list-sm","small"===o.nzSize)("ant-list-split",o.nzSplit)("ant-list-bordered",o.nzBordered)("ant-list-loading",o.nzLoading)("ant-list-something-after-last-item",o.hasSomethingAfterLastItem)},inputs:{nzDataSource:"nzDataSource",nzBordered:"nzBordered",nzGrid:"nzGrid",nzHeader:"nzHeader",nzFooter:"nzFooter",nzItemLayout:"nzItemLayout",nzRenderItem:"nzRenderItem",nzLoading:"nzLoading",nzLoadMore:"nzLoadMore",nzPagination:"nzPagination",nzSize:"nzSize",nzSplit:"nzSplit",nzNoResult:"nzNoResult"},exportAs:["nzList"],features:[t.TTD],ngContentSelectors:Yn,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,o){if(1&e&&(t.F$t(qn),t.YNc(0,An,3,1,"ng-template",null,0,t.W1O),t.YNc(2,Dn,2,1,"nz-list-header",1),t.Hsn(3),t.TgZ(4,"nz-spin",2),t.ynx(5),t.YNc(6,En,1,2,"div",3),t.YNc(7,Bn,2,2,"div",4),t.YNc(8,Un,1,1,"nz-list-empty",5),t.BQk(),t.qZA(),t.YNc(9,Jn,2,1,"nz-list-footer",1),t.Hsn(10,1),t.YNc(11,Qn,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",o.nzHeader),t.xp6(2),t.Q6J("nzSpinning",o.nzLoading),t.xp6(2),t.Q6J("ngIf",o.nzLoading&&o.nzDataSource&&0===o.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",o.nzGrid&&o.nzDataSource)("ngIfElse",a),t.xp6(1),t.Q6J("ngIf",!o.nzLoading&&o.nzDataSource&&0===o.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",o.nzFooter),t.xp6(2),t.Q6J("ngTemplateOutlet",o.nzLoadMore),t.xp6(2),t.Q6J("ngIf",o.nzPagination)}},dependencies:[p.sg,p.O5,p.tP,ge.W,u.t3,u.SK,ct.f,_e,fe,Ce,he],encapsulation:2,changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzBordered",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzLoading",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzSplit",void 0),i})(),ke=(()=>{class i{constructor(e,o,a,s){this.parentComp=a,this.cdr=s,this.nzActions=[],this.nzExtra=null,this.nzNoFlex=!1,o.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 i.\u0275fac=function(e){return new(e||i)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(ve),t.Y36(t.sBO))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-list-item"],["","nz-list-item",""]],contentQueries:function(e,o,a){if(1&e&&t.Suo(a,de,5),2&e){let s;t.iGM(s=t.CRH())&&(o.listItemExtraDirective=s.first)}},hostVars:2,hostBindings:function(e,o){2&e&&t.ekj("ant-list-item-no-flex",o.nzNoFlex)},inputs:{nzActions:"nzActions",nzContent:"nzContent",nzExtra:"nzExtra",nzNoFlex:"nzNoFlex"},exportAs:["nzListItem"],ngContentSelectors:gi,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,o){if(1&e&&(t.F$t(ci),t.YNc(0,Rn,2,1,"ng-template",null,0,t.W1O),t.YNc(2,$n,3,1,"ng-template",null,1,t.W1O),t.YNc(4,Kn,1,0,"ng-template",null,2,t.W1O),t.YNc(6,ni,4,4,"ng-template",null,3,t.W1O),t.YNc(8,li,6,4,"ng-container",4)),2&e){const a=t.MAs(7);t.xp6(8),t.Q6J("ngIf",o.isVerticalAndExtra)("ngIfElse",a)}},dependencies:[p.O5,p.tP,ct.f,ye,de],encapsulation:2,changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzNoFlex",void 0),i})(),pi=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,ge.j,u.Jb,Me.Rt,ct.T,Te.Xo]}),i})();var oe=c(9562),di=c(2577),H=c(6675),hi=c(4968),ae=c(9300),_i=c(2539),mt=c(2536),De=c(4903);const Ee=["*"],fi=["collapseHeader"];function Ci(i,n){if(1&i&&(t.ynx(0),t._UZ(1,"span",7),t.BQk()),2&i){const e=n.$implicit,o=t.oxw(2);t.xp6(1),t.Q6J("nzType",e||"right")("nzRotate",o.nzActive?90:0)}}function vi(i,n){if(1&i&&(t.TgZ(0,"div"),t.YNc(1,Ci,2,2,"ng-container",3),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExpandedIcon)}}function zi(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw();t.xp6(1),t.Oqu(e.nzHeader)}}function xi(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.BQk()),2&i){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzExtra)}}function Oi(i,n){if(1&i&&(t.TgZ(0,"div",8),t.YNc(1,xi,2,1,"ng-container",3),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExtra)}}const Ze="collapse";let Ne=(()=>{class i{constructor(e,o,a,s){this.nzConfigService=e,this.cdr=o,this.directionality=a,this.destroy$=s,this._nzModuleName=Ze,this.nzAccordion=!1,this.nzBordered=!0,this.nzGhost=!1,this.nzExpandIconPosition="left",this.dir="ltr",this.listOfNzCollapsePanelComponent=[],this.nzConfigService.getConfigChangeEventForComponent(Ze).pipe((0,gt.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe((0,gt.R)(this.destroy$)).subscribe(e=>{this.dir=e,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(o=>o!==e).forEach(o=>{o.nzActive&&(o.nzActive=!1,o.nzActiveChange.emit(o.nzActive),o.markForCheck())}),e.nzActive=!e.nzActive,e.nzActiveChange.emit(e.nzActive)}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(mt.jY),t.Y36(t.sBO),t.Y36(Ct.Is,8),t.Y36(ut.kn))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-collapse"]],hostAttrs:[1,"ant-collapse"],hostVars:10,hostBindings:function(e,o){2&e&&t.ekj("ant-collapse-icon-position-left","left"===o.nzExpandIconPosition)("ant-collapse-icon-position-right","right"===o.nzExpandIconPosition)("ant-collapse-ghost",o.nzGhost)("ant-collapse-borderless",!o.nzBordered)("ant-collapse-rtl","rtl"===o.dir)},inputs:{nzAccordion:"nzAccordion",nzBordered:"nzBordered",nzGhost:"nzGhost",nzExpandIconPosition:"nzExpandIconPosition"},exportAs:["nzCollapse"],features:[t._Bn([ut.kn])],ngContentSelectors:Ee,decls:1,vars:0,template:function(e,o){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzAccordion",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzBordered",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzGhost",void 0),i})();const Be="collapsePanel";let Mi=(()=>{class i{constructor(e,o,a,s,g,m){this.nzConfigService=e,this.ngZone=o,this.cdr=a,this.destroy$=s,this.nzCollapseComponent=g,this.noAnimation=m,this._nzModuleName=Be,this.nzActive=!1,this.nzDisabled=!1,this.nzShowArrow=!0,this.nzActiveChange=new t.vpe,this.nzConfigService.getConfigChangeEventForComponent(Be).pipe((0,gt.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}markForCheck(){this.cdr.markForCheck()}ngOnInit(){this.nzCollapseComponent.addPanel(this),this.ngZone.runOutsideAngular(()=>(0,hi.R)(this.collapseHeader.nativeElement,"click").pipe((0,ae.h)(()=>!this.nzDisabled),(0,gt.R)(this.destroy$)).subscribe(()=>{this.ngZone.run(()=>{this.nzCollapseComponent.click(this),this.cdr.markForCheck()})}))}ngOnDestroy(){this.nzCollapseComponent.removePanel(this)}}return i.\u0275fac=function(e){return new(e||i)(t.Y36(mt.jY),t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(ut.kn),t.Y36(Ne,1),t.Y36(De.P,8))},i.\u0275cmp=t.Xpm({type:i,selectors:[["nz-collapse-panel"]],viewQuery:function(e,o){if(1&e&&t.Gf(fi,7),2&e){let a;t.iGM(a=t.CRH())&&(o.collapseHeader=a.first)}},hostAttrs:[1,"ant-collapse-item"],hostVars:6,hostBindings:function(e,o){2&e&&t.ekj("ant-collapse-no-arrow",!o.nzShowArrow)("ant-collapse-item-active",o.nzActive)("ant-collapse-item-disabled",o.nzDisabled)},inputs:{nzActive:"nzActive",nzDisabled:"nzDisabled",nzShowArrow:"nzShowArrow",nzExtra:"nzExtra",nzHeader:"nzHeader",nzExpandedIcon:"nzExpandedIcon"},outputs:{nzActiveChange:"nzActiveChange"},exportAs:["nzCollapsePanel"],features:[t._Bn([ut.kn])],ngContentSelectors:Ee,decls:8,vars:8,consts:[["role","button",1,"ant-collapse-header"],["collapseHeader",""],[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,o){1&e&&(t.F$t(),t.TgZ(0,"div",0,1),t.YNc(2,vi,2,1,"div",2),t.YNc(3,zi,2,1,"ng-container",3),t.YNc(4,Oi,2,1,"div",4),t.qZA(),t.TgZ(5,"div",5)(6,"div",6),t.Hsn(7),t.qZA()()),2&e&&(t.uIk("aria-expanded",o.nzActive),t.xp6(2),t.Q6J("ngIf",o.nzShowArrow),t.xp6(1),t.Q6J("nzStringTemplateOutlet",o.nzHeader),t.xp6(1),t.Q6J("ngIf",o.nzExtra),t.xp6(1),t.ekj("ant-collapse-content-active",o.nzActive),t.Q6J("@.disabled",!(null==o.noAnimation||!o.noAnimation.nzNoAnimation))("@collapseMotion",o.nzActive?"expanded":"hidden"))},dependencies:[p.O5,lt.Ls,ct.f],encapsulation:2,data:{animation:[_i.J_]},changeDetection:0}),(0,D.gn)([(0,E.yF)()],i.prototype,"nzActive",void 0),(0,D.gn)([(0,E.yF)()],i.prototype,"nzDisabled",void 0),(0,D.gn)([(0,mt.oS)(),(0,E.yF)()],i.prototype,"nzShowArrow",void 0),i})(),bi=(()=>{class i{}return i.\u0275fac=function(e){return new(e||i)},i.\u0275mod=t.oAB({type:i}),i.\u0275inj=t.cJS({imports:[Ct.vT,p.ez,lt.PV,ct.T,De.g]}),i})();var Pi=c(4466),w=c(262),F=c(4007),Z=c(324),L=c(387),S=c(5136);class ${constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["output","logging","biliApi","header","danmaku","recorder","postprocessing","space"]).pipe((0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get settings:",o),this.notification.error("\u83b7\u53d6\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}$.\u0275fac=function(n){return new(n||$)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},$.\u0275prov=t.Yz7({token:$,factory:$.\u0275fac});var T=c(4004);class K{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["emailNotification"]).pipe((0,T.U)(o=>o.emailNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get email notification settings:",o),this.notification.error("\u83b7\u53d6\u90ae\u4ef6\u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}K.\u0275fac=function(n){return new(n||K)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},K.\u0275prov=t.Yz7({token:K,factory:K.\u0275fac});class X{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["serverchanNotification"]).pipe((0,T.U)(o=>o.serverchanNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get ServerChan notification settings:",o),this.notification.error("\u83b7\u53d6 ServerChan \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}X.\u0275fac=function(n){return new(n||X)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},X.\u0275prov=t.Yz7({token:X,factory:X.\u0275fac});class j{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["pushdeerNotification"]).pipe((0,T.U)(o=>o.pushdeerNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get PushDeer notification settings:",o),this.notification.error("\u83b7\u53d6 pushdeer \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}j.\u0275fac=function(n){return new(n||j)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},j.\u0275prov=t.Yz7({token:j,factory:j.\u0275fac});class tt{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["pushplusNotification"]).pipe((0,T.U)(o=>o.pushplusNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get pushplus notification settings:",o),this.notification.error("\u83b7\u53d6 pushplus \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}tt.\u0275fac=function(n){return new(n||tt)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},tt.\u0275prov=t.Yz7({token:tt,factory:tt.\u0275fac});class et{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["telegramNotification"]).pipe((0,T.U)(o=>o.telegramNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get telegram notification settings:",o),this.notification.error("\u83b7\u53d6 telegram \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}et.\u0275fac=function(n){return new(n||et)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},et.\u0275prov=t.Yz7({token:et,factory:et.\u0275fac});class nt{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["webhooks"]).pipe((0,T.U)(o=>o.webhooks),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get webhook settings:",o),this.notification.error("\u83b7\u53d6 Webhook \u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}nt.\u0275fac=function(n){return new(n||nt)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},nt.\u0275prov=t.Yz7({token:nt,factory:nt.\u0275fac});var v=c(6582);class it{constructor(n,e,o){this.logger=n,this.notification=e,this.settingService=o}resolve(n,e){return this.settingService.getSettings(["barkNotification"]).pipe((0,T.U)(o=>o.barkNotification),(0,F.X)(3,300),(0,w.K)(o=>{throw this.logger.error("Failed to get bark notification settings:",o),this.notification.error("\u83b7\u53d6 bark \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",o.message,{nzDuration:0}),o}))}}it.\u0275fac=function(n){return new(n||it)(t.LFG(Z.Kf),t.LFG(L.zb),t.LFG(S.R))},it.\u0275prov=t.Yz7({token:it,factory:it.\u0275fac});var Ue=c(5026),Ti=c(5363),wi=c(4986),Ie=c(4704),b=c(2340);const x="RouterScrollService",Je="defaultViewport",Qe="customViewport";class pt{constructor(n,e,o,a){this.router=n,this.activatedRoute=e,this.viewportScroller=o,this.logger=a,this.addQueue=[],this.addBeforeNavigationQueue=[],this.removeQueue=[],this.routeStrategies=[],this.scrollDefaultViewport=!0,this.customViewportToScroll=null,b.N.traceRouterScrolling&&this.logger.trace(`${x}:: constructor`),b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Subscribing to router events`);const s=this.router.events.pipe((0,ae.h)(g=>g instanceof v.OD||g instanceof v.m2),(0,T.U)(g=>g),(0,Ue.R)((g,m)=>{b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Updating the known scroll positions`);const h={...g.positions};return m instanceof v.OD&&this.scrollDefaultViewport&&(b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Storing the scroll position of the default viewport`),h[`${m.id}-${Je}`]=this.viewportScroller.getScrollPosition()),m instanceof v.OD&&this.customViewportToScroll&&(b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Storing the scroll position of the custom viewport`),h[`${m.id}-${Qe}`]=this.customViewportToScroll.scrollTop),{event:m,positions:h,trigger:m instanceof v.OD?m.navigationTrigger:g.trigger,idToRestore:m instanceof v.OD&&m.restoredState&&m.restoredState.navigationId+1||g.idToRestore,routeData:this.activatedRoute.firstChild?.routeConfig?.data}},{event:{},positions:{},idToRestore:-1}),(0,ae.h)(g=>!!g.trigger),(0,Ti.Q)(wi.z));this.scrollPositionRestorationSubscription=s.subscribe(g=>{const m=this.routeStrategies.find(ft=>g.event.url.indexOf(ft.partialRoute)>-1),h=m&&m.behaviour===Ie.g.KEEP_POSITION||!1,k=g.routeData&&g.routeData.scrollBehavior&&g.routeData.scrollBehavior===Ie.g.KEEP_POSITION||!1,J=h||k;if(g.event instanceof v.m2){this.processRemoveQueue(this.removeQueue);const ft=g.trigger&&"imperative"===g.trigger||!1,ce=!J||ft;b.N.traceRouterScrolling&&(this.logger.trace(`${x}:: Existing strategy with keep position behavior? `,h),this.logger.trace(`${x}:: Route data with keep position behavior? `,k),this.logger.trace(`${x}:: Imperative trigger? `,ft),this.logger.debug(`${x}:: Should scroll? `,ce)),ce?(this.scrollDefaultViewport&&(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Scrolling the default viewport`),this.viewportScroller.scrollToPosition([0,0])),this.customViewportToScroll&&(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Scrolling a custom viewport: `,this.customViewportToScroll),this.customViewportToScroll.scrollTop=0)):(b.N.traceRouterScrolling&&this.logger.debug(`${x}:: Not scrolling`),this.scrollDefaultViewport&&this.viewportScroller.scrollToPosition(g.positions[`${g.idToRestore}-${Je}`]),this.customViewportToScroll&&(this.customViewportToScroll.scrollTop=g.positions[`${g.idToRestore}-${Qe}`])),this.processRemoveQueue(this.addBeforeNavigationQueue.map(es=>es.partialRoute),!0),this.processAddQueue(this.addQueue),this.addQueue=[],this.removeQueue=[],this.addBeforeNavigationQueue=[]}else this.processAddQueue(this.addBeforeNavigationQueue)})}addStrategyOnceBeforeNavigationForPartialRoute(n,e){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Adding a strategy once for before navigation towards [${n}]: `,e),this.addBeforeNavigationQueue.push({partialRoute:n,behaviour:e,onceBeforeNavigation:!0})}addStrategyForPartialRoute(n,e){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Adding a strategy for partial route: [${n}]`,e),this.addQueue.push({partialRoute:n,behaviour:e})}removeStrategyForPartialRoute(n){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Removing strategory for: [${n}]: `),this.removeQueue.push(n)}setCustomViewportToScroll(n){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Setting a custom viewport to scroll: `,n),this.customViewportToScroll=n}disableScrollDefaultViewport(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Disabling scrolling the default viewport`),this.scrollDefaultViewport=!1}enableScrollDefaultViewPort(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: Enabling scrolling the default viewport`),this.scrollDefaultViewport=!0}processAddQueue(n){for(const e of n)-1===this.routeStrategyPosition(e.partialRoute)&&this.routeStrategies.push(e)}processRemoveQueue(n,e=!1){for(const o of n){const a=this.routeStrategyPosition(o);!e&&a>-1&&this.routeStrategies[a].onceBeforeNavigation||a>-1&&this.routeStrategies.splice(a,1)}}routeStrategyPosition(n){return this.routeStrategies.map(e=>e.partialRoute).indexOf(n)}ngOnDestroy(){b.N.traceRouterScrolling&&this.logger.trace(`${x}:: ngOnDestroy`),this.scrollPositionRestorationSubscription&&this.scrollPositionRestorationSubscription.unsubscribe()}}pt.\u0275fac=function(n){return new(n||pt)(t.LFG(v.F0),t.LFG(v.gz),t.LFG(p.EM),t.LFG(Z.Kf))},pt.\u0275prov=t.Yz7({token:pt,factory:pt.\u0275fac,providedIn:"root"});var q=c(4670),Fi=c(3496),Si=c(1149),yi=c(7242);const M=function Ai(i,n){var e={};return n=(0,yi.Z)(n,3),(0,Si.Z)(i,function(o,a,s){(0,Fi.Z)(e,a,n(o,a,s))}),e};var re=c(8505),ki=c(4884),Di=c(4116),Ve=c(4825),Le=c(4177),qe=c(8706),Ei=c(5202),Zi=c(1986),Ni=c(7583),Ji=Object.prototype.hasOwnProperty;var Li=c(1854),qi=c(2134),se=c(9651);function P(i){const n="result"in i;return M(i.diff,()=>n)}class z{constructor(n,e){this.message=n,this.settingService=e}syncSettings(n,e,o,a=!0){return o.pipe((0,Ue.R)(([,s],g)=>[s,g,(0,qi.e5)(g,s,a)],[e,e,{}]),(0,ae.h)(([,,s])=>!function Qi(i){if(null==i)return!0;if((0,qe.Z)(i)&&((0,Le.Z)(i)||"string"==typeof i||"function"==typeof i.splice||(0,Ei.Z)(i)||(0,Ni.Z)(i)||(0,Ve.Z)(i)))return!i.length;var n=(0,Di.Z)(i);if("[object Map]"==n||"[object Set]"==n)return!i.size;if((0,Zi.Z)(i))return!(0,ki.Z)(i).length;for(var e in i)if(Ji.call(i,e))return!1;return!0}(s)),(0,Pe.w)(([s,g,m])=>this.settingService.changeSettings({[n]:m}).pipe((0,F.X)(3,300),(0,re.b)(h=>{console.assert((0,Li.Z)(h[n],g),"result settings should equal current settings",{curr:g,result:h[n]})},h=>{this.message.error(`\u8bbe\u7f6e\u51fa\u9519: ${h.message}`)}),(0,T.U)(h=>({prev:s,curr:g,diff:m,result:h[n]})),(0,w.K)(h=>(0,ie.of)({prev:s,curr:g,diff:m,error:h})))),(0,re.b)(s=>console.debug(`${n} settings sync detail:`,s)))}}z.\u0275fac=function(n){return new(n||z)(t.LFG(se.dD),t.LFG(S.R))},z.\u0275prov=t.Yz7({token:z,factory:z.\u0275fac,providedIn:"root"});var d=c(4960);class y{get actionable(){return this.directive?.valueAccessor instanceof U.i}constructor(){}onClick(n){n.target===n.currentTarget&&(n.preventDefault(),n.stopPropagation(),this.directive?.valueAccessor instanceof U.i&&this.directive.control.setValue(!this.directive.control.value))}}y.\u0275fac=function(n){return new(n||y)},y.\u0275dir=t.lG2({type:y,selectors:[["","appSwitchActionable",""]],contentQueries:function(n,e,o){if(1&n&&t.Suo(o,r.u,5),2&n){let a;t.iGM(a=t.CRH())&&(e.directive=a.first)}},hostVars:2,hostBindings:function(n,e){1&n&&t.NdJ("click",function(a){return e.onClick(a)}),2&n&&t.ekj("actionable",e.actionable)}});class xt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.intervalOptions=[{label:"\u4e0d\u68c0\u6d4b",value:0},{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}],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},{label:"20 GB",value:1024**3*20}],this.settingsForm=n.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("space",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}xt.\u0275fac=function(n){return new(n||xt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},xt.\u0275cmp=t.Xpm({type:xt,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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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.TgZ(6,"nz-form-item",1)(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.TgZ(11,"nz-form-item",6)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.checkInterval?e.checkIntervalControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.intervalOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.spaceThreshold?e.spaceThresholdControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.thresholdOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recycleRecords?e.recycleRecordsControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,zt.Vq,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var I=c(7044);class Ot{}Ot.\u0275fac=function(n){return new(n||Ot)},Ot.\u0275cmp=t.Xpm({type:Ot,selectors:[["app-notification-settings"]],decls:30,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","pushdeer-notification",1,"setting-item"],["routerLink","pushplus-notification",1,"setting-item"],["routerLink","telegram-notification",1,"setting-item"],["routerLink","bark-notification",1,"setting-item"]],template:function(n,e){1&n&&(t.TgZ(0,"a",0)(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.TgZ(5,"a",4)(6,"span",1),t._uU(7,"ServerChan \u901a\u77e5"),t.qZA(),t.TgZ(8,"span",2),t._UZ(9,"i",3),t.qZA()(),t.TgZ(10,"a",5)(11,"span",1),t._uU(12,"PushDeer \u901a\u77e5"),t.qZA(),t.TgZ(13,"span",2),t._UZ(14,"i",3),t.qZA()(),t.TgZ(15,"a",6)(16,"span",1),t._uU(17,"pushplus \u901a\u77e5"),t.qZA(),t.TgZ(18,"span",2),t._UZ(19,"i",3),t.qZA()(),t.TgZ(20,"a",7)(21,"span",1),t._uU(22,"telegram \u901a\u77e5"),t.qZA(),t.TgZ(23,"span",2),t._UZ(24,"i",3),t.qZA()(),t.TgZ(25,"a",8)(26,"span",1),t._uU(27,"Bark \u901a\u77e5"),t.qZA(),t.TgZ(28,"span",2),t._UZ(29,"i",3),t.qZA()())},dependencies:[v.rH,I.w,lt.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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var Yi=Math.ceil,Wi=Math.max;var Hi=c(3093),Ye=c(6667),Mt=c(1999);var Xi=/\s/;var eo=/^\s+/;const io=function no(i){return i&&i.slice(0,function ji(i){for(var n=i.length;n--&&Xi.test(i.charAt(n)););return n}(i)+1).replace(eo,"")};var oo=c(6460),ao=/^[-+]0x[0-9a-f]+$/i,ro=/^0b[01]+$/i,so=/^0o[0-7]+$/i,lo=parseInt;const ze=function mo(i){return i?Infinity===(i=function co(i){if("number"==typeof i)return i;if((0,oo.Z)(i))return NaN;if((0,Mt.Z)(i)){var n="function"==typeof i.valueOf?i.valueOf():i;i=(0,Mt.Z)(n)?n+"":n}if("string"!=typeof i)return 0===i?i:+i;i=io(i);var e=ro.test(i);return e||so.test(i)?lo(i.slice(2),e?2:8):ao.test(i)?NaN:+i}(i))||-Infinity===i?17976931348623157e292*(i<0?-1:1):i==i?i:0:0===i?i:0},_o=function po(i){return function(n,e,o){return o&&"number"!=typeof o&&function $i(i,n,e){if(!(0,Mt.Z)(e))return!1;var o=typeof n;return!!("number"==o?(0,qe.Z)(e)&&(0,Ye.Z)(n,e.length):"string"==o&&n in e)&&(0,Hi.Z)(e[n],i)}(n,e,o)&&(e=o=void 0),n=ze(n),void 0===e?(e=n,n=0):e=ze(e),function Ri(i,n,e,o){for(var a=-1,s=Wi(Yi((n-i)/(e||1)),0),g=Array(s);s--;)g[o?s:++a]=i,i+=e;return g}(n,e,o=void 0===o?n<e?1:-1:ze(o),i)}}();var ot=(()=>{return(i=ot||(ot={}))[i.EACCES=13]="EACCES",i[i.ENOTDIR=20]="ENOTDIR",ot;var i})(),fo=c(529),Co=c(7930);class Y{constructor(n,e){this.http=n,this.url=e}validateDir(n){const e=this.url.makeApiUrl("/api/v1/validation/dir");return this.http.post(e,{path:n})}validateCookie(n){const e=this.url.makeApiUrl("/api/v1/validation/cookie");return this.http.post(e,{cookie:n})}}function vo(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u4fdd\u5b58\u4f4d\u7f6e "),t.BQk())}function zo(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u662f\u4e00\u4e2a\u76ee\u5f55 "),t.BQk())}function xo(i,n){1&i&&(t.ynx(0),t._uU(1," \u6ca1\u6709\u8bfb\u5199\u6743\u9650 "),t.BQk())}function Oo(i,n){1&i&&(t.ynx(0),t._uU(1," \u672a\u80fd\u8fdb\u884c\u9a8c\u8bc1 "),t.BQk())}function Mo(i,n){if(1&i&&(t.YNc(0,vo,2,0,"ng-container",6),t.YNc(1,zo,2,0,"ng-container",6),t.YNc(2,xo,2,0,"ng-container",6),t.YNc(3,Oo,2,0,"ng-container",6)),2&i){const e=n.$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 bo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,Mo,4,4,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e)}}Y.\u0275fac=function(n){return new(n||Y)(t.LFG(fo.eN),t.LFG(Co.i))},Y.\u0275prov=t.Yz7({token:Y,factory:Y.\u0275fac,providedIn:"root"});class bt{constructor(n,e,o){this.changeDetector=e,this.validationService=o,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.logDirAsyncValidator=a=>this.validationService.validateDir(a.value).pipe((0,T.U)(s=>{switch(s.code){case ot.ENOTDIR:return{error:!0,notADirectory:!0};case ot.EACCES:return{error:!0,noPermissions:!0};default:return null}}),(0,w.K)(()=>(0,ie.of)({error:!0,failedToValidate:!0}))),this.settingsForm=n.group({logDir:["",[r.kI.required],[this.logDirAsyncValidator]]})}get control(){return this.settingsForm.get("logDir")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}}bt.\u0275fac=function(n){return new(n||bt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y))},bt.\u0275cmp=t.Xpm({type:bt,selectors:[["app-logdir-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\u65e5\u5fd7\u6587\u4ef6\u5b58\u653e\u76ee\u5f55","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","","nzValidatingTip","\u6b63\u5728\u9a8c\u8bc1...",3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","logDir"],["errorTip",""],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,bo,7,2,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Pt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.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.backupOptions=_o(0,91).map(a=>({label:a.toString(),value:a})),this.settingsForm=n.group({logDir:[""],consoleLogLevel:[""],backupCount:[""]})}get logDirControl(){return this.settingsForm.get("logDir")}get consoleLogLevelControl(){return this.settingsForm.get("consoleLogLevel")}get backupCountControl(){return this.settingsForm.get("backupCount")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("logging",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Pt.\u0275fac=function(n){return new(n||Pt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Pt.\u0275cmp=t.Xpm({type:Pt,selectors:[["app-logging-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:19,vars:11,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["logDirEditDialog",""],["appSwitchActionable","",1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","consoleLogLevel",3,"nzOptions"],[1,"setting-item"],["formControlName","backupCount",3,"nzOptions"]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u65e5\u5fd7\u6587\u4ef6\u5b58\u653e\u76ee\u5f55"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-logdir-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.logDirControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",7)(10,"nz-form-label",8),t._uU(11,"\u7ec8\u7aef\u65e5\u5fd7\u8f93\u51fa\u7ea7\u522b"),t.qZA(),t.TgZ(12,"nz-form-control",9),t._UZ(13,"nz-select",10),t.qZA()(),t.TgZ(14,"nz-form-item",11)(15,"nz-form-label",8),t._uU(16,"\u65e5\u5fd7\u6587\u4ef6\u5907\u4efd\u6570\u91cf"),t.qZA(),t.TgZ(17,"nz-form-control",9),t._UZ(18,"nz-select",12),t.qZA()()()}2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.logDir?e.logDirControl:"warning"),t.xp6(2),t.hij("",e.logDirControl.value," "),t.xp6(1),t.Q6J("value",e.logDirControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.consoleLogLevel?e.consoleLogLevelControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.logLevelOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.backupCount?e.backupCountControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.backupOptions))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,zt.Vq,y,bt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Tt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({danmuUname:[""],recordGiftSend:[""],recordFreeGifts:[""],recordGuardBuy:[""],recordSuperChat:[""],saveRawDanmaku:[""]})}get danmuUnameControl(){return this.settingsForm.get("danmuUname")}get recordGiftSendControl(){return this.settingsForm.get("recordGiftSend")}get recordFreeGiftsControl(){return this.settingsForm.get("recordFreeGifts")}get recordGuardBuyControl(){return this.settingsForm.get("recordGuardBuy")}get recordSuperChatControl(){return this.settingsForm.get("recordSuperChat")}get saveRawDanmakuControl(){return this.settingsForm.get("saveRawDanmaku")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("danmaku",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Po(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8: \u6ca1\u51fa\u9519\u5c31\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(2,"br"),t._uU(3," \u8c28\u614e: \u6ca1\u51fa\u9519\u4e14\u6ca1\u8b66\u544a\u624d\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(4,"br"),t._uU(5," \u4ece\u4e0d: \u603b\u662f\u4fdd\u7559\u6e90\u6587\u4ef6"),t._UZ(6,"br"),t.qZA())}function To(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"label",13),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(1),t.Q6J("nzValue",e.value),t.xp6(1),t.Oqu(e.label)}}Tt.\u0275fac=function(n){return new(n||Tt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Tt.\u0275cmp=t.Xpm({type:Tt,selectors:[["app-danmaku-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:13,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","recordGiftSend"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u514d\u8d39\u793c\u7269\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordFreeGifts"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55\u4e0a\u8230\u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordGuardBuy"],["nzNoColon","","nzTooltipTitle","\u8bb0\u5f55 Super Chat \u4fe1\u606f\u5230\u5f39\u5e55\u6587\u4ef6\u91cc",1,"setting-label"],["formControlName","recordSuperChat"],["nzNoColon","","nzTooltipTitle","\u53d1\u9001\u8005: \u5f39\u5e55\u5185\u5bb9",1,"setting-label"],["formControlName","danmuUname"],["nzNoColon","","nzTooltipTitle","\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55\u5230 JSON lines \u6587\u4ef6\uff0c\u4e3b\u8981\u7528\u4e8e\u5206\u6790\u8c03\u8bd5\u3002",1,"setting-label"],["formControlName","saveRawDanmaku"]],template:function(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"\u8bb0\u5f55\u793c\u7269"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA()(),t.TgZ(6,"nz-form-item",1)(7,"nz-form-label",5),t._uU(8,"\u8bb0\u5f55\u514d\u8d39\u793c\u7269"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-switch",6),t.qZA()(),t.TgZ(11,"nz-form-item",1)(12,"nz-form-label",7),t._uU(13,"\u8bb0\u5f55\u4e0a\u8230"),t.qZA(),t.TgZ(14,"nz-form-control",3),t._UZ(15,"nz-switch",8),t.qZA()(),t.TgZ(16,"nz-form-item",1)(17,"nz-form-label",9),t._uU(18,"\u8bb0\u5f55 Super Chat"),t.qZA(),t.TgZ(19,"nz-form-control",3),t._UZ(20,"nz-switch",10),t.qZA()(),t.TgZ(21,"nz-form-item",1)(22,"nz-form-label",11),t._uU(23,"\u5f39\u5e55\u524d\u52a0\u7528\u6237\u540d"),t.qZA(),t.TgZ(24,"nz-form-control",3),t._UZ(25,"nz-switch",12),t.qZA()(),t.TgZ(26,"nz-form-item",1)(27,"nz-form-label",13),t._uU(28,"\u4fdd\u5b58\u539f\u59cb\u5f39\u5e55"),t.qZA(),t.TgZ(29,"nz-form-control",3),t._UZ(30,"nz-switch",14),t.qZA()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordGiftSend?e.recordGiftSendControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordFreeGifts?e.recordFreeGiftsControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordGuardBuy?e.recordGuardBuyControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.recordSuperChat?e.recordSuperChatControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.danmuUname?e.danmuUnameControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.saveRawDanmaku?e.saveRawDanmakuControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class wt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.deleteStrategies=d.rc,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({injectExtraMetadata:[""],remuxToMp4:[""],deleteSource:[""]})}get injectExtraMetadataControl(){return this.settingsForm.get("injectExtraMetadata")}get remuxToMp4Control(){return this.settingsForm.get("remuxToMp4")}get deleteSourceControl(){return this.settingsForm.get("deleteSource")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("postprocessing",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}wt.\u0275fac=function(n){return new(n||wt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},wt.\u0275cmp=t.Xpm({type:wt,selectors:[["app-post-processing-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:19,vars:11,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u6dfb\u52a0\u5173\u952e\u5e27\u7b49\u5143\u6570\u636e\u4f7f\u5b9a\u4f4d\u64ad\u653e\u548c\u62d6\u8fdb\u5ea6\u6761\u4e0d\u4f1a\u5361\u987f",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","injectExtraMetadata",3,"nzDisabled"],["nzNoColon","","nzTooltipTitle","\u8c03\u7528 ffmpeg \u8fdb\u884c\u8f6c\u6362\uff0c\u9700\u8981\u5b89\u88c5 ffmpeg \u3002",1,"setting-label"],["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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"flv \u6dfb\u52a0\u5143\u6570\u636e"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA()(),t.TgZ(6,"nz-form-item",1)(7,"nz-form-label",5),t._uU(8,"\u8f6c\u5c01\u88c5\u4e3a mp4"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-switch",6),t.qZA()(),t.TgZ(11,"nz-form-item",7)(12,"nz-form-label",8),t._uU(13,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),t.qZA(),t.YNc(14,Po,7,0,"ng-template",null,9,t.W1O),t.TgZ(16,"nz-form-control",10)(17,"nz-radio-group",11),t.YNc(18,To,3,2,"ng-container",12),t.qZA()()()()),2&n){const o=t.MAs(15);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.injectExtraMetadata?e.injectExtraMetadataControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",e.remuxToMp4Control.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.remuxToMp4?e.remuxToMp4Control:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.deleteSource?e.deleteSourceControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",!e.remuxToMp4Control.value),t.xp6(1),t.Q6J("ngForOf",e.deleteStrategies)}},dependencies:[p.sg,r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,G.Of,G.Bq,G.Dg,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var W=c(3523);function wo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u9009\u62e9\u8981\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u683c\u5f0f "),t._UZ(2,"br"),t.TgZ(3,"b"),t._uU(4,"FLV:"),t.qZA(),t._uU(5," flv \u6d41\u5728\u7f51\u7edc\u4e0d\u7a33\u5b9a\u7684\u60c5\u51b5\u4e0b\u5bb9\u6613\u4e2d\u65ad\u4e22\u5931\u6570\u636e\u6216\u5f55\u5236\u5230\u4e8c\u538b\u753b\u8d28\u3002\u6ca1\u6709 flv \u6d41\u7684\u76f4\u64ad\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 fmp4 \u6d41\u3002 "),t._UZ(6,"br"),t.TgZ(7,"b"),t._uU(8,"HLS (fmp4):"),t.qZA(),t._uU(9," hls \u6d41\u57fa\u672c\u4e0d\u53d7\u7f51\u7edc\u6ce2\u52a8\u5f71\u54cd\uff0c\u4f46\u4e0d\u662f\u6240\u6709\u76f4\u64ad\u95f4\u90fd\u652f\u6301\u3002\u6709 flv \u6d41\u7684\u76f4\u64ad\uff0c\u5728\u8bbe\u5b9a\u7684\u7b49\u5f85\u65f6\u95f4\u5185\u6ca1\u6709 fmp4 \u6d41\u4f1a\u81ea\u52a8\u5207\u6362\u5f55\u5236 flv \u6d41\u3002 "),t._UZ(10,"br"),t.TgZ(11,"b"),t._uU(12,"P.S."),t.qZA(),t._UZ(13,"br"),t._uU(14," WEB \u7aef\u76f4\u64ad\u64ad\u653e\u5668\u662f Hls7Player \u7684\u76f4\u64ad\u95f4\u652f\u6301\u5f55\u5236 fmp4 \u6d41, fMp4Player \u5219\u4e0d\u652f\u6301\u3002 "),t.qZA())}function Fo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u5982\u679c\u8d85\u8fc7\u6240\u8bbe\u7f6e\u7684\u7b49\u5f85\u65f6\u95f4 fmp4 \u6d41\u8fd8\u6ca1\u6709\u5c31\u5207\u6362\u4e3a\u5f55\u5236 flv \u6d41 "),t._UZ(2,"br"),t._uU(3," fmp4 \u6d41\u5728\u521a\u63a8\u6d41\u662f\u6ca1\u6709\u7684\uff0c\u8981\u8fc7\u4e00\u4f1a\u624d\u6709\u3002 "),t._UZ(4,"br"),t._uU(5," fmp4 \u6d41\u51fa\u73b0\u7684\u65f6\u95f4\u548c\u76f4\u64ad\u5ef6\u8fdf\u6709\u5173\uff0c\u4e00\u822c\u90fd\u5728 10 \u79d2\u5185\uff0c\u4f46\u4e5f\u6709\u5ef6\u8fdf\u6bd4\u8f83\u5927\u8d85\u8fc7 1 \u5206\u949f\u7684\u3002 "),t._UZ(6,"br"),t._uU(7," \u63a8\u8350\u5168\u5c40\u8bbe\u7f6e\u4e3a 10 \u79d2\uff0c\u4e2a\u522b\u5ef6\u8fdf\u6bd4\u8f83\u5927\u7684\u76f4\u64ad\u95f4\u5355\u72ec\u8bbe\u7f6e\u3002 "),t.qZA())}function So(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",2),t._uU(2,"fmp4 \u6d41\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.YNc(3,Fo,8,0,"ng-template",null,19,t.W1O),t.TgZ(5,"nz-form-control",4),t._UZ(6,"nz-select",20),t.qZA()()),2&i){const e=t.MAs(4),o=t.oxw();t.xp6(1),t.Q6J("nzTooltipTitle",e),t.xp6(4),t.Q6J("nzWarningTip",o.syncFailedWarningTip)("nzValidateStatus",o.syncStatus.fmp4StreamTimeout?o.fmp4StreamTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",o.fmp4StreamTimeoutOptions)}}function yo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u9ed8\u8ba4: \u6bcf\u4e2a\u5206\u5272\u7684\u5f55\u64ad\u6587\u4ef6\u5bf9\u5e94\u4fdd\u5b58\u4e00\u4e2a\u5c01\u9762\u6587\u4ef6\uff0c\u4e0d\u7ba1\u5c01\u9762\u662f\u5426\u76f8\u540c\u3002"),t._UZ(2,"br"),t._uU(3," \u53bb\u91cd: \u76f8\u540c\u7684\u5c01\u9762\u53ea\u4fdd\u5b58\u4e00\u6b21"),t._UZ(4,"br"),t._uU(5," P.S. "),t._UZ(6,"br"),t._uU(7," \u5224\u65ad\u662f\u5426\u76f8\u540c\u662f\u4f9d\u636e\u5c01\u9762\u6570\u636e\u7684 sha1\uff0c\u53ea\u5728\u5355\u6b21\u5f55\u5236\u5185\u6709\u6548\u3002 "),t.qZA())}function Ao(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"label",21),t._uU(2),t.qZA(),t.BQk()),2&i){const e=n.$implicit;t.xp6(1),t.Q6J("nzValue",e.value),t.xp6(1),t.Oqu(e.label)}}function ko(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",22),t._uU(2,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),t.qZA(),t.TgZ(3,"nz-form-control",4),t._UZ(4,"nz-select",23),t.qZA()()),2&i){const e=t.oxw();t.xp6(3),t.Q6J("nzWarningTip",e.syncStatus.readTimeout?"\u65e0\u7f1d\u62fc\u63a5\u4f1a\u5931\u6548\uff01":e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.readTimeout&&e.readTimeoutControl.value<=3?e.readTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.readTimeoutOptions)}}function Do(i,n){if(1&i&&(t.TgZ(0,"nz-form-item",1)(1,"nz-form-label",24),t._uU(2,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),t.qZA(),t.TgZ(3,"nz-form-control",4),t._UZ(4,"nz-select",25),t.qZA()()),2&i){const e=t.oxw();t.xp6(3),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.bufferSize?e.bufferSizeControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.bufferOptions)}}class Ft{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.streamFormatOptions=(0,W.Z)(d.tp),this.recordingModeOptions=(0,W.Z)(d.kV),this.fmp4StreamTimeoutOptions=(0,W.Z)(d.D4),this.qualityOptions=(0,W.Z)(d.O6),this.readTimeoutOptions=(0,W.Z)(d.D4),this.disconnectionTimeoutOptions=(0,W.Z)(d.$w),this.bufferOptions=(0,W.Z)(d.Rc),this.coverSaveStrategies=(0,W.Z)(d.J_),this.settingsForm=n.group({streamFormat:[""],recordingMode:[""],qualityNumber:[""],fmp4StreamTimeout:[""],readTimeout:[""],disconnectionTimeout:[""],bufferSize:[""],saveCover:[""],coverSaveStrategy:[""]})}get streamFormatControl(){return this.settingsForm.get("streamFormat")}get recordingModeControl(){return this.settingsForm.get("recordingMode")}get qualityNumberControl(){return this.settingsForm.get("qualityNumber")}get fmp4StreamTimeoutControl(){return this.settingsForm.get("fmp4StreamTimeout")}get readTimeoutControl(){return this.settingsForm.get("readTimeout")}get disconnectionTimeoutControl(){return this.settingsForm.get("disconnectionTimeout")}get bufferSizeControl(){return this.settingsForm.get("bufferSize")}get saveCoverControl(){return this.settingsForm.get("saveCover")}get coverSaveStrategyControl(){return this.settingsForm.get("coverSaveStrategy")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("recorder",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Eo(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 User Agent "),t.BQk())}function Zo(i,n){1&i&&t.YNc(0,Eo,2,0,"ng-container",6),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function No(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"textarea",4),t.YNc(5,Zo,1,1,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzWarningTip",o.warningTip)("nzValidateStatus",o.control.valid&&o.control.value.trim()!==o.value?"warning":o.control)("nzErrorTip",e),t.xp6(1),t.Q6J("rows",3)}}Ft.\u0275fac=function(n){return new(n||Ft)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Ft.\u0275cmp=t.Xpm({type:Ft,selectors:[["app-recorder-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:34,vars:21,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],["streamFormatTip",""],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","streamFormat",3,"nzOptions"],["class","setting-item",4,"ngIf"],["nzNoColon","","nzTooltipTitle","\u6240\u9009\u753b\u8d28\u4e0d\u5b58\u5728\u5c06\u4ee5\u539f\u753b\u4ee3\u66ff",1,"setting-label"],["formControlName","qualityNumber",3,"nzOptions"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u5f55\u64ad\u6587\u4ef6\u5b8c\u6210\u65f6\u4fdd\u5b58\u5f53\u524d\u76f4\u64ad\u95f4\u7684\u5c01\u9762",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","saveCover"],["coverSaveStrategyTip",""],[1,"setting-control","radio",3,"nzWarningTip","nzValidateStatus"],["formControlName","coverSaveStrategy",3,"nzDisabled"],[4,"ngFor","ngForOf"],["nzNoColon","","nzTooltipTitle","\u65ad\u7f51\u8d85\u8fc7\u7b49\u5f85\u65f6\u95f4\u5c31\u7ed3\u675f\u5f55\u5236\uff0c\u5982\u679c\u7f51\u7edc\u6062\u590d\u540e\u4ecd\u672a\u4e0b\u64ad\u4f1a\u81ea\u52a8\u91cd\u65b0\u5f00\u59cb\u5f55\u5236\u3002",1,"setting-label"],["formControlName","disconnectionTimeout",3,"nzOptions"],["fmp4StreamTimeoutTip",""],["formControlName","fmp4StreamTimeout",3,"nzOptions"],["nz-radio-button","",3,"nzValue"],["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\u8f83\u591a\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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"\u76f4\u64ad\u6d41\u683c\u5f0f"),t.qZA(),t.YNc(4,wo,15,0,"ng-template",null,3,t.W1O),t.TgZ(6,"nz-form-control",4),t._UZ(7,"nz-select",5),t.qZA()(),t.YNc(8,So,7,4,"nz-form-item",6),t.TgZ(9,"nz-form-item",1)(10,"nz-form-label",7),t._uU(11,"\u753b\u8d28"),t.qZA(),t.TgZ(12,"nz-form-control",4),t._UZ(13,"nz-select",8),t.qZA()(),t.TgZ(14,"nz-form-item",9)(15,"nz-form-label",10),t._uU(16,"\u4fdd\u5b58\u5c01\u9762"),t.qZA(),t.TgZ(17,"nz-form-control",11),t._UZ(18,"nz-switch",12),t.qZA()(),t.TgZ(19,"nz-form-item",1)(20,"nz-form-label",2),t._uU(21,"\u5c01\u9762\u4fdd\u5b58\u7b56\u7565"),t.qZA(),t.YNc(22,yo,8,0,"ng-template",null,13,t.W1O),t.TgZ(24,"nz-form-control",14)(25,"nz-radio-group",15),t.YNc(26,Ao,3,2,"ng-container",16),t.qZA()()(),t.YNc(27,ko,5,3,"nz-form-item",6),t.TgZ(28,"nz-form-item",1)(29,"nz-form-label",17),t._uU(30,"\u65ad\u7f51\u7b49\u5f85\u65f6\u95f4"),t.qZA(),t.TgZ(31,"nz-form-control",4),t._UZ(32,"nz-select",18),t.qZA()(),t.YNc(33,Do,5,3,"nz-form-item",6),t.qZA()),2&n){const o=t.MAs(5),a=t.MAs(23);t.Q6J("formGroup",e.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.streamFormat?e.streamFormatControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.streamFormatOptions),t.xp6(1),t.Q6J("ngIf","fmp4"===e.streamFormatControl.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.qualityNumber?e.qualityNumberControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.qualityOptions),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.saveCover?e.saveCoverControl:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.coverSaveStrategy?e.coverSaveStrategyControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",!e.saveCoverControl.value),t.xp6(1),t.Q6J("ngForOf",e.coverSaveStrategies),t.xp6(1),t.Q6J("ngIf","flv"===e.streamFormatControl.value),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.disconnectionTimeout?e.disconnectionTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",e.disconnectionTimeoutOptions),t.xp6(1),t.Q6J("ngIf","flv"===e.streamFormatControl.value)}},dependencies:[p.sg,p.O5,r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,G.Of,G.Bq,G.Dg,zt.Vq,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class St{constructor(n,e){this.changeDetector=e,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=n.group({userAgent:["",[r.kI.required]]})}get control(){return this.settingsForm.get("userAgent")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}}St.\u0275fac=function(n){return new(n||St)(t.Y36(r.qu),t.Y36(t.sBO))},St.\u0275cmp=t.Xpm({type:St,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(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,No,7,5,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var dt=c(1664);function Bo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.qZA()()(),t.BQk()),2&i){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)}}function Uo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",6),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.testCookie())}),t._uU(1," \u6d4b\u8bd5 "),t.qZA(),t.TgZ(2,"button",7),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",""===e.control.value.trim()),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}class yt{constructor(n,e,o,a){this.changeDetector=e,this.validationService=o,this.message=a,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=n.group({cookie:[""]})}get control(){return this.settingsForm.get("cookie")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),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()}testCookie(){this.validationService.validateCookie(this.control.value).subscribe(n=>{0===n.code?this.message.success(`uid: ${n.data?.mid}, uname: ${n.data?.uname}`):this.message.error(`${n.code}: ${n.message}`)})}}yt.\u0275fac=function(n){return new(n||yt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y),t.Y36(se.dD))},yt.\u0275cmp=t.Xpm({type:yt,selectors:[["app-cookie-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:1,consts:[["nzTitle","\u4fee\u6539 Cookie","nzCentered","",3,"nzVisible","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzWarningTip","nzValidateStatus"],["wrap","soft","nz-input","","formControlName","cookie",3,"rows"],["nz-button","","nzType","primary",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzType","primary","nzDanger","",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,Bo,5,4,"ng-container",1),t.YNc(2,Uo,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)},dependencies:[r._Y,r.Fj,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class At{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({userAgent:["",[r.kI.required]],cookie:[""]})}get userAgentControl(){return this.settingsForm.get("userAgent")}get cookieControl(){return this.settingsForm.get("cookie")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("header",this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}At.\u0275fac=function(n){return new(n||At)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},At.\u0275cmp=t.Xpm({type:At,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(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"User Agent"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-user-agent-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.userAgentControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(16);return t.KtG(s.open())}),t.TgZ(10,"nz-form-label",2),t._uU(11,"Cookie"),t.qZA(),t.TgZ(12,"nz-form-control",3)(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-cookie-edit-dialog",5,7),t.NdJ("confirm",function(s){return e.cookieControl.setValue(s)}),t.qZA()()()()}2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.userAgent?e.userAgentControl:"warning"),t.xp6(2),t.hij("",e.userAgentControl.value," "),t.xp6(1),t.Q6J("value",e.userAgentControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.cookie?e.cookieControl:"warning"),t.xp6(2),t.hij("",e.cookieControl.value," "),t.xp6(1),t.Q6J("value",e.cookieControl.value))},dependencies:[r._Y,r.JL,r.sg,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,St,yt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var at=c(9089),Io=c(6457),Jo=c(4501);function Qo(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u4fdd\u5b58\u4f4d\u7f6e "),t.BQk())}function Vo(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u662f\u4e00\u4e2a\u76ee\u5f55 "),t.BQk())}function Lo(i,n){1&i&&(t.ynx(0),t._uU(1," \u6ca1\u6709\u8bfb\u5199\u6743\u9650 "),t.BQk())}function qo(i,n){1&i&&(t.ynx(0),t._uU(1," \u672a\u80fd\u8fdb\u884c\u9a8c\u8bc1 "),t.BQk())}function Yo(i,n){if(1&i&&(t.YNc(0,Qo,2,0,"ng-container",6),t.YNc(1,Vo,2,0,"ng-container",6),t.YNc(2,Lo,2,0,"ng-container",6),t.YNc(3,qo,2,0,"ng-container",6)),2&i){const e=n.$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 Wo(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item")(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,Yo,4,4,"ng-template",null,5,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e)}}class kt{constructor(n,e,o){this.changeDetector=e,this.validationService=o,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.outDirAsyncValidator=a=>this.validationService.validateDir(a.value).pipe((0,T.U)(s=>{switch(s.code){case ot.ENOTDIR:return{error:!0,notADirectory:!0};case ot.EACCES:return{error:!0,noPermissions:!0};default:return null}}),(0,w.K)(()=>(0,ie.of)({error:!0,failedToValidate:!0}))),this.settingsForm=n.group({outDir:["",[r.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(n){this.visible=n,this.visibleChange.emit(n),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()}}function Ro(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),t.BQk())}function Go(i,n){1&i&&(t.ynx(0),t._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),t.BQk())}function Ho(i,n){if(1&i&&(t.YNc(0,Ro,2,0,"ng-container",12),t.YNc(1,Go,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function $o(i,n){if(1&i&&(t.TgZ(0,"tr")(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.qZA()()),2&i){const e=n.$implicit;t.xp6(2),t.Oqu(e.name),t.xp6(2),t.Oqu(e.desc)}}function Ko(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"input",5),t.YNc(5,Ho,2,2,"ng-template",null,6,t.W1O),t.qZA()(),t.TgZ(7,"nz-collapse")(8,"nz-collapse-panel",7)(9,"nz-table",8,9)(11,"thead")(12,"tr")(13,"th"),t._uU(14,"\u53d8\u91cf"),t.qZA(),t.TgZ(15,"th"),t._uU(16,"\u8bf4\u660e"),t.qZA()()(),t.TgZ(17,"tbody"),t.YNc(18,$o,5,2,"tr",10),t.qZA()(),t.TgZ(19,"p",11)(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.BQk()),2&i){const e=t.MAs(6),o=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)("nzPageSize",11)("nzShowPagination",!1)("nzSize","small"),t.xp6(9),t.Q6J("ngForOf",o.data)}}function Xo(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",14),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",13),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){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)}}kt.\u0275fac=function(n){return new(n||kt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(Y))},kt.\u0275cmp=t.Xpm({type:kt,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\u5b58\u653e\u76ee\u5f55","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","","nzValidatingTip","\u6b63\u5728\u9a8c\u9a8c...",3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","outDir"],["errorTip",""],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Wo,7,2,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Dt{constructor(n,e){this.changeDetector=e,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.pathTemplatePattern=d._m,this.pathTemplateDefault=d.ip,this.pathTemplateVariables=d.Dr,this.settingsForm=n.group({pathTemplate:["",[r.kI.required,r.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(n){this.visible=n,this.visibleChange.emit(n),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)}}function jo(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u5927\u5c0f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1a\u6570\u5b57 + \u5355\u4f4d(GB, MB, KB, B) "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"0 B"),t.qZA(),t._UZ(8,"br"),t.qZA())}function ta(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8\u5206\u5272\u6587\u4ef6\u4ee5\u9650\u5236\u5f55\u64ad\u6587\u4ef6\u65f6\u957f "),t._UZ(2,"br"),t._uU(3," \u683c\u5f0f\uff1aHH:MM:SS "),t._UZ(4,"br"),t._uU(5," \u4e0d\u81ea\u52a8\u5206\u5272\u6587\u4ef6\u8bbe\u7f6e\u4e3a "),t.TgZ(6,"strong"),t._uU(7,"00:00:00"),t.qZA(),t._UZ(8,"br"),t.qZA())}Dt.\u0275fac=function(n){return new(n||Dt)(t.Y36(r.qu),t.Y36(t.sBO))},Dt.\u0275cmp=t.Xpm({type:Dt,selectors:[["app-path-template-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u6587\u4ef6\u8def\u5f84\u6a21\u677f","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["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","nzPageSize","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(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,Ko,22,8,"ng-container",1),t.YNc(2,Xo,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.sg,p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.c5,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,H.N8,H.Uo,H._C,H.Om,H.p0,H.$Z,Mi,Ne],styles:[".footnote[_ngcontent-%COMP%]{margin-top:1em;margin-bottom:0}"],changeDetection:0});class Et{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({outDir:[""],pathTemplate:[""],filesizeLimit:["",[r.kI.required,r.kI.min(0),r.kI.max(0xf9ff5c28f5)]],durationLimit:["",[r.kI.required,r.kI.min(0),r.kI.max(359999)]]})}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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("output",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Et.\u0275fac=function(n){return new(n||Et)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Et.\u0275cmp=t.Xpm({type:Et,selectors:[["app-output-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:15,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"],["filesizeLimitTip",""],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","filesizeLimit"],["durationLimitTip",""],["formControlName","durationLimit"]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(8);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u5b58\u653e\u76ee\u5f55"),t.qZA(),t.TgZ(4,"nz-form-control",3)(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-outdir-edit-dialog",5,6),t.NdJ("confirm",function(s){return e.outDirControl.setValue(s)}),t.qZA()()(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(16);return t.KtG(s.open())}),t.TgZ(10,"nz-form-label",2),t._uU(11,"\u8def\u5f84\u6a21\u677f"),t.qZA(),t.TgZ(12,"nz-form-control",3)(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-path-template-edit-dialog",5,7),t.NdJ("confirm",function(s){return e.pathTemplateControl.setValue(s)}),t.qZA()()(),t.TgZ(17,"nz-form-item",8)(18,"nz-form-label",9),t._uU(19,"\u5927\u5c0f\u9650\u5236"),t.qZA(),t.YNc(20,jo,9,0,"ng-template",null,10,t.W1O),t.TgZ(22,"nz-form-control",11),t._UZ(23,"app-input-filesize",12),t.qZA()(),t.TgZ(24,"nz-form-item",8)(25,"nz-form-label",9),t._uU(26,"\u65f6\u957f\u9650\u5236"),t.qZA(),t.YNc(27,ta,9,0,"ng-template",null,13,t.W1O),t.TgZ(29,"nz-form-control",11),t._UZ(30,"app-input-duration",14),t.qZA()()()}if(2&n){const o=t.MAs(21),a=t.MAs(28);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.outDir?e.outDirControl:"warning"),t.xp6(2),t.hij("",e.outDirControl.value," "),t.xp6(1),t.Q6J("value",e.outDirControl.value),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.pathTemplate?e.pathTemplateControl:"warning"),t.xp6(2),t.hij("",e.pathTemplateControl.value," "),t.xp6(1),t.Q6J("value",e.pathTemplateControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.filesizeLimit?e.filesizeLimitControl:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.durationLimit?e.durationLimitControl:"warning")}},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,Io.i,Jo.q,kt,Dt],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Zt{}Zt.\u0275fac=function(n){return new(n||Zt)},Zt.\u0275cmp=t.Xpm({type:Zt,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(n,e){1&n&&(t.TgZ(0,"a",0)(1,"span",1),t._uU(2,"Webhooks"),t.qZA(),t.TgZ(3,"span",2),t._UZ(4,"i",3),t.qZA()())},dependencies:[v.rH,I.w,lt.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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Nt{validate(n){return(i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null})(n)}}function ea(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function na(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function ia(i,n){if(1&i&&(t.YNc(0,ea,2,0,"ng-container",7),t.YNc(1,na,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function oa(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,ia,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function aa(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBaseApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Nt.\u0275fac=function(n){return new(n||Nt)},Nt.\u0275dir=t.lG2({type:Nt,selectors:[["","appBaseUrlValidator",""]],features:[t._Bn([{provide:r.Cf,useExisting:Nt,multi:!0}])]});class Bt{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBaseApiUrl=d.QL,this.settingsForm=n.group({baseApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("baseApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBaseApiUrl)}}function ra(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function sa(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function la(i,n){if(1&i&&(t.YNc(0,ra,2,0,"ng-container",7),t.YNc(1,sa,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function ca(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,la,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function ga(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBaseLiveApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Bt.\u0275fac=function(n){return new(n||Bt)(t.Y36(r.qu),t.Y36(t.sBO))},Bt.\u0275cmp=t.Xpm({type:Bt,selectors:[["app-base-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u4e3b\u7ad9 API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","baseApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,oa,7,3,"ng-container",1),t.YNc(2,aa,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Ut{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBaseLiveApiUrl=d.gZ,this.settingsForm=n.group({baseLiveApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("baseLiveApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBaseLiveApiUrl)}}function ua(i,n){1&i&&(t.ynx(0),t._uU(1," \u4e0d\u80fd\u4e3a\u7a7a "),t.BQk())}function ma(i,n){if(1&i&&(t.ynx(0),t._uU(1),t.ALo(2,"json"),t.BQk()),2&i){const e=t.oxw().$implicit;t.xp6(1),t.hij(" \u8f93\u5165\u65e0\u6548: ",t.lcZ(2,1,e.getError("baseUrl").value)," ")}}function pa(i,n){if(1&i&&(t.YNc(0,ua,2,0,"ng-container",7),t.YNc(1,ma,3,3,"ng-container",7)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("baseUrl"))}}function da(i,n){if(1&i&&(t.ynx(0),t.TgZ(1,"form",3)(2,"nz-form-item")(3,"nz-form-control",4),t._UZ(4,"textarea",5),t.YNc(5,pa,2,2,"ng-template",null,6,t.W1O),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(6),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("rows",5)}}function ha(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",8),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.restoreDefault())}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",9),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",10),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.defaultBasePlayInfoApiUrl),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}Ut.\u0275fac=function(n){return new(n||Ut)(t.Y36(r.qu),t.Y36(t.sBO))},Ut.\u0275cmp=t.Xpm({type:Ut,selectors:[["app-base-live-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u76f4\u64ad API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","baseLiveApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,ca,7,3,"ng-container",1),t.YNc(2,ga,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class It{constructor(n,e){this.changeDetector=e,this.value=[],this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.defaultBasePlayInfoApiUrl=d.gZ,this.settingsForm=n.group({basePlayInfoApiUrls:["",[r.kI.required,i=>{const o=i.value.split("\n").map(a=>a.trim()).filter(a=>!!a).filter(a=>!/^https?:\/\/\S+$/.test(a));return o.length>0?{baseUrl:{value:o}}:null}]]})}get control(){return this.settingsForm.get("basePlayInfoApiUrls")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value.join("\n")),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){const e=this.control.value.split("\n").map(o=>o.trim()).filter(o=>!!o);this.confirm.emit(e),this.close()}restoreDefault(){this.control.setValue(this.defaultBasePlayInfoApiUrl)}}function _a(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1,"\u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u4e3b\u7ad9 API \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002"),t.qZA(),t.TgZ(2,"p"),t._uU(3,"\u8bf7\u6c42\u65b9\u5f0f\uff1a\u5148\u7528\u7b2c\u4e00\u4e2a\u53d1\u9001\u8bf7\u6c42\uff0c\u51fa\u9519\u5c31\u7528\u7b2c\u4e8c\u4e2a\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002"),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u7f13\u89e3\u8bf7\u6c42\u8fc7\u591a\u88ab\u98ce\u63a7"),t.qZA())}function fa(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u76f4\u64ad API (\u76f4\u64ad\u6d41 API getRoomPlayInfo \u9664\u5916) \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002 "),t.qZA(),t.TgZ(2,"p"),t._uU(3,"\u8bf7\u6c42\u65b9\u5f0f\uff1a\u5148\u7528\u7b2c\u4e00\u4e2a\u53d1\u9001\u8bf7\u6c42\uff0c\u51fa\u9519\u5c31\u7528\u7b2c\u4e8c\u4e2a\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002"),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u7f13\u89e3\u8bf7\u6c42\u8fc7\u591a\u88ab\u98ce\u63a7"),t.qZA())}function Ca(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bbe\u7f6e\u5185\u5bb9\uff1a\u53d1\u9001\u76f4\u64ad\u6d41 API (getRoomPlayInfo) \u8bf7\u6c42\u6240\u7528\u7684\u4e3b\u673a\u7684\u5730\u5740\uff0c\u4e00\u884c\u4e00\u4e2a\u3002 "),t.qZA(),t.TgZ(2,"p"),t._uU(3," \u8bf7\u6c42\u65b9\u5f0f\uff1a\u540c\u65f6\u5e76\u53d1\u5411\u5168\u90e8 API \u4e3b\u673a\u53d1\u9001\u8bf7\u6c42\uff08\u4ece\u5168\u90e8\u6210\u529f\u7684\u8bf7\u6c42\u7ed3\u679c\u4e2d\u63d0\u53d6\u76f4\u64ad\u6d41\u8d28\u91cf\u8f83\u597d\u7684\u76f4\u64ad\u6d41\u5730\u5740\uff09 "),t.qZA(),t.TgZ(4,"p"),t._uU(5,"\u4e3b\u8981\u76ee\u7684\uff1a\u6539\u53d8\u5f55\u5236\u7684\u76f4\u64ad\u6d41\u7684 CDN"),t.qZA(),t.TgZ(6,"p"),t._uU(7," P.S\uff1a\u56fd\u5916 IP \u7684\u8bf7\u6c42\u7ed3\u679c\u6ca1\u6709 HLS(fmp4) \u6d41\uff0c\u8981\u540c\u65f6\u652f\u6301 fmp4 \u548c flv \u53ef\u4ee5\u6df7\u7528\u56fd\u5185\u548c\u56fd\u5916\u7684 API \u4e3b\u673a\u3002 "),t.qZA())}It.\u0275fac=function(n){return new(n||It)(t.Y36(r.qu),t.Y36(t.sBO))},It.\u0275cmp=t.Xpm({type:It,selectors:[["app-base-play-info-api-url-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:3,vars:2,consts:[["nzTitle","\u4fee\u6539\u76f4\u64ad\u6d41 API \u4e3b\u673a\u5730\u5740","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange"],[4,"nzModalContent"],[3,"nzModalFooter"],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["wrap","soft","nz-input","","required","","formControlName","basePlayInfoApiUrls",3,"rows"],["errorTip",""],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzDanger","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a}),t.YNc(1,da,7,3,"ng-container",1),t.YNc(2,ha,6,2,"ng-template",2),t.qZA()),2&n&&t.Q6J("nzVisible",e.visible)("nzOkDisabled",e.control.invalid||e.control.value.trim()===e.value)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.Fd,O.Zp,_.du,_.Uh,_.Hf,Q.ix,I.w,dt.dQ,p.Ts],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Jt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({baseApiUrls:[[]],baseLiveApiUrls:[[]],basePlayInfoApiUrls:[[]]})}get baseApiUrlsControl(){return this.settingsForm.get("baseApiUrls")}get baseLiveApiUrlsControl(){return this.settingsForm.get("baseLiveApiUrls")}get basePlayInfoApiUrlsControl(){return this.settingsForm.get("basePlayInfoApiUrls")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("biliApi",this.settings,this.settingsForm.valueChanges,!1).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Jt.\u0275fac=function(n){return new(n||Jt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Jt.\u0275cmp=t.Xpm({type:Jt,selectors:[["app-bili-api-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:31,vars:16,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label",3,"nzTooltipTitle"],["baseApiUrlsTip",""],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["baseApiUrlsEditDialog",""],["baseLiveApiUrlsTip",""],["baseLiveApiUrlsEditDialog",""],["basePalyInfoApiUrlTip",""],["basePlayInfoApiUrlsEditDialog",""]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"form",0)(1,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(10);return t.KtG(s.open())}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u4e3b\u7ad9 API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(4,_a,6,0,"ng-template",null,3,t.W1O),t.TgZ(6,"nz-form-control",4)(7,"nz-form-text",5),t._uU(8),t.qZA(),t.TgZ(9,"app-base-api-url-edit-dialog",6,7),t.NdJ("confirm",function(s){return e.baseApiUrlsControl.setValue(s)}),t.qZA()()(),t.TgZ(11,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(20);return t.KtG(s.open())}),t.TgZ(12,"nz-form-label",2),t._uU(13,"\u76f4\u64ad API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(14,fa,6,0,"ng-template",null,8,t.W1O),t.TgZ(16,"nz-form-control",4)(17,"nz-form-text",5),t._uU(18),t.qZA(),t.TgZ(19,"app-base-live-api-url-edit-dialog",6,9),t.NdJ("confirm",function(s){return e.baseLiveApiUrlsControl.setValue(s)}),t.qZA()()(),t.TgZ(21,"nz-form-item",1),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(30);return t.KtG(s.open())}),t.TgZ(22,"nz-form-label",2),t._uU(23,"\u76f4\u64ad\u6d41 API \u4e3b\u673a\u5730\u5740"),t.qZA(),t.YNc(24,Ca,8,0,"ng-template",null,10,t.W1O),t.TgZ(26,"nz-form-control",4)(27,"nz-form-text",5),t._uU(28),t.qZA(),t.TgZ(29,"app-base-play-info-api-url-edit-dialog",6,11),t.NdJ("confirm",function(s){return e.basePlayInfoApiUrlsControl.setValue(s)}),t.qZA()()()()}if(2&n){const o=t.MAs(5),a=t.MAs(15),s=t.MAs(25);t.Q6J("formGroup",e.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",o),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.baseApiUrls?e.baseApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.baseApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.baseApiUrlsControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.baseLiveApiUrls?e.baseLiveApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.baseLiveApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.baseLiveApiUrlsControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",s),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.basePlayInfoApiUrls?e.basePlayInfoApiUrlsControl:"warning"),t.xp6(2),t.hij("",e.basePlayInfoApiUrlsControl.value," "),t.xp6(1),t.Q6J("value",e.basePlayInfoApiUrlsControl.value)}},dependencies:[r._Y,r.JL,r.sg,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,l.EF,Bt,Ut,It],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}nz-form-control[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}"],changeDetection:0});const va=["innerContent"];class Qt{constructor(n,e,o,a){this.changeDetector=n,this.route=e,this.logger=o,this.routerScrollService=a}ngOnInit(){this.route.data.subscribe(n=>{this.settings=n.settings,this.changeDetector.markForCheck()})}ngAfterViewInit(){this.innerContent?this.routerScrollService.setCustomViewportToScroll(this.innerContent.nativeElement):this.logger.error("The content element could not be found!")}}Qt.\u0275fac=function(n){return new(n||Qt)(t.Y36(t.sBO),t.Y36(v.gz),t.Y36(Z.Kf),t.Y36(pt))},Qt.\u0275cmp=t.Xpm({type:Qt,selectors:[["app-settings"]],viewQuery:function(n,e){if(1&n&&t.Gf(va,5),2&n){let o;t.iGM(o=t.CRH())&&(e.innerContent=o.first)}},decls:24,vars:8,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","BILI API"],["name","\u7f51\u7edc\u8bf7\u6c42"],["name","\u65e5\u5fd7"],["name","\u901a\u77e5"],["name","Webhook"]],template:function(n,e){1&n&&(t.TgZ(0,"div",0,1)(2,"div",2)(3,"div",3)(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-bili-api-settings",5),t.qZA(),t.TgZ(16,"app-page-section",11),t._UZ(17,"app-header-settings",5),t.qZA(),t.TgZ(18,"app-page-section",12),t._UZ(19,"app-logging-settings",5),t.qZA(),t.TgZ(20,"app-page-section",13),t._UZ(21,"app-notification-settings"),t.qZA(),t.TgZ(22,"app-page-section",14),t._UZ(23,"app-webhook-settings"),t.qZA()()()()),2&n&&(t.xp6(5),t.Q6J("settings",e.settings.output),t.xp6(2),t.Q6J("settings",e.settings.recorder),t.xp6(2),t.Q6J("settings",e.settings.danmaku),t.xp6(2),t.Q6J("settings",e.settings.postprocessing),t.xp6(2),t.Q6J("settings",e.settings.space),t.xp6(2),t.Q6J("settings",e.settings.biliApi),t.xp6(2),t.Q6J("settings",e.settings.header),t.xp6(2),t.Q6J("settings",e.settings.logging))},dependencies:[q.g,xt,Ot,Pt,Tt,wt,Ft,At,Et,Zt,Jt],styles:[".inner-content[_ngcontent-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f1f1;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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.inner-content[_ngcontent-%COMP%]{padding-top:0}"]});var za=c(7298),xa=c(6198),Ge=c(3449),Oa=c(2168);const ba=function Ma(i,n,e,o){if(!(0,Mt.Z)(i))return i;for(var a=-1,s=(n=(0,Ge.Z)(n,i)).length,g=s-1,m=i;null!=m&&++a<s;){var h=(0,Oa.Z)(n[a]),k=e;if("__proto__"===h||"constructor"===h||"prototype"===h)return i;if(a!=g){var J=m[h];void 0===(k=o?o(J,h,m):void 0)&&(k=(0,Mt.Z)(J)?J:(0,Ye.Z)(n[a+1])?[]:{})}(0,xa.Z)(m,h,k),m=m[h]}return i};var wa=c(5867);const Sa=function Fa(i,n){return function Pa(i,n,e){for(var o=-1,a=n.length,s={};++o<a;){var g=n[o],m=(0,za.Z)(i,g);e(m,g)&&ba(s,(0,Ge.Z)(g,i),m)}return s}(i,n,function(e,o){return(0,wa.Z)(i,o)})};var ya=c(6623),He=c(8492),$e=He.Z?He.Z.isConcatSpreadable:void 0;const ka=function Aa(i){return(0,Le.Z)(i)||(0,Ve.Z)(i)||!!($e&&i&&i[$e])},Da=function Ke(i,n,e,o,a){var s=-1,g=i.length;for(e||(e=ka),a||(a=[]);++s<g;){var m=i[s];n>0&&e(m)?n>1?Ke(m,n-1,e,o,a):(0,ya.Z)(a,m):o||(a[a.length]=m)}return a},Za=function Ea(i){return null!=i&&i.length?Da(i,1):[]},Ba=function Na(i,n,e){switch(e.length){case 0:return i.call(n);case 1:return i.call(n,e[0]);case 2:return i.call(n,e[0],e[1]);case 3:return i.call(n,e[0],e[1],e[2])}return i.apply(n,e)};var Xe=Math.max;const Qa=function Ja(i){return function(){return i}};var je=c(2370),Va=c(9940),Ya=800,Wa=16,Ra=Date.now;const $a=function Ga(i){var n=0,e=0;return function(){var o=Ra(),a=Wa-(o-e);if(e=o,a>0){if(++n>=Ya)return arguments[0]}else n=0;return i.apply(void 0,arguments)}}(je.Z?function(i,n){return(0,je.Z)(i,"toString",{configurable:!0,enumerable:!1,value:Qa(n),writable:!0})}:Va.Z),f=function Ka(i){return $a(function Ua(i,n,e){return n=Xe(void 0===n?i.length-1:n,0),function(){for(var o=arguments,a=-1,s=Xe(o.length-n,0),g=Array(s);++a<s;)g[a]=o[n+a];a=-1;for(var m=Array(n+1);++a<n;)m[a]=o[a];return m[n]=e(g),Ba(i,this,m)}}(i,void 0,Za),i+"")}(function(i,n){return null==i?{}:Sa(i,n)});var C=c(8760),rt=c(5545),st=c(7512);class N{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settingsForm.value,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}N.\u0275fac=function(n){return new(n||N)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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.TgZ(6,"nz-form-item",1)(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.TgZ(11,"nz-form-item",1)(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.TgZ(16,"nz-form-item",1)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyBegan?e.notifyBeganControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyEnded?e.notifyEndedControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifyError?e.notifyErrorControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.notifySpace?e.notifySpaceControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});var ja=c(6422);function tr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function er(i,n){1&i&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function nr(i,n){if(1&i&&(t.YNc(0,tr,2,0,"ng-container",17),t.YNc(1,er,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}function ir(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u6388\u6743\u7801\uff01 "),t.BQk())}function or(i,n){1&i&&t.YNc(0,ir,2,0,"ng-container",17),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function ar(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u4e3b\u673a\uff01 "),t.BQk())}function rr(i,n){1&i&&t.YNc(0,ar,2,0,"ng-container",17),2&i&&t.Q6J("ngIf",n.$implicit.hasError("required"))}function sr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u7aef\u53e3\uff01 "),t.BQk())}function lr(i,n){1&i&&(t.ynx(0),t._uU(1," SMTP \u7aef\u53e3\u65e0\u6548\uff01 "),t.BQk())}function cr(i,n){if(1&i&&(t.YNc(0,sr,2,0,"ng-container",17),t.YNc(1,lr,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function gr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function ur(i,n){1&i&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function mr(i,n){if(1&i&&(t.YNc(0,gr,2,0,"ng-container",17),t.YNc(1,ur,2,0,"ng-container",17)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}class Vt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({srcAddr:["",[r.kI.required,r.kI.email]],dstAddr:["",[r.kI.required,r.kI.email]],authCode:["",[r.kI.required]],smtpHost:["",[r.kI.required]],smtpPort:["",[r.kI.required,r.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=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("emailNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm),(0,T.U)(n=>(0,ja.Z)(n,(e,o,a)=>{o="smtpPort"===a?parseInt(o):o,Reflect.set(e,a,o)},{})))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}Vt.\u0275fac=function(n){return new(n||Vt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Vt.\u0275cmp=t.Xpm({type:Vt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,nr,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(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,or,1,1,"ng-template",null,8,t.W1O),t.qZA()(),t.TgZ(15,"nz-form-item",1)(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,rr,1,1,"ng-template",null,11,t.W1O),t.qZA()(),t.TgZ(22,"nz-form-item",1)(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,cr,2,2,"ng-template",null,14,t.W1O),t.qZA()(),t.TgZ(29,"nz-form-item",1)(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,mr,2,2,"ng-template",null,5,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14),s=t.MAs(21),g=t.MAs(28);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.srcAddrControl.valid&&!e.syncStatus.srcAddr?"warning":e.srcAddrControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.authCodeControl.valid&&!e.syncStatus.authCode?"warning":e.authCodeControl),t.xp6(7),t.Q6J("nzErrorTip",s)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.smtpHostControl.valid&&!e.syncStatus.smtpHost?"warning":e.smtpHostControl),t.xp6(7),t.Q6J("nzErrorTip",g)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.smtpPortControl.valid&&!e.syncStatus.smtpPort?"warning":e.smtpPortControl),t.xp6(7),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.dstAddrControl.valid&&!e.syncStatus.dstAddr?"warning":e.dstAddrControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.c5,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:6em!important;width:6em!important}"],changeDetection:0});class B{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({enabled:[""]})}get enabledControl(){return this.settingsForm.get("enabled")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settings,this.settingsForm.valueChanges).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}B.\u0275fac=function(n){return new(n||B)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},B.\u0275cmp=t.Xpm({type:B,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(n,e){1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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()()()),2&n&&(t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.syncStatus.enabled?e.enabledControl:"warning"))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,U.i,y],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class A{constructor(n,e,o){this.changeDetector=n,this.message=e,this.settingService=o}ngOnInit(){switch(this.keyOfSettings){case"emailNotification":this.messageTypes=["text","html"];break;case"serverchanNotification":this.messageTypes=["markdown"];break;case"pushdeerNotification":this.messageTypes=["markdown","text"];break;case"pushplusNotification":this.messageTypes=["markdown","text","html"];break;case"telegramNotification":this.messageTypes=["markdown","html"]}}ngOnChanges(n){this.updateCommonSettings()}changeBeganMessageTemplateSettings(n){this.changeMessageTemplateSettings({beganMessageType:n.messageType,beganMessageTitle:n.messageTitle,beganMessageContent:n.messageContent}).subscribe()}changeEndedMessageTemplateSettings(n){this.changeMessageTemplateSettings({endedMessageType:n.messageType,endedMessageTitle:n.messageTitle,endedMessageContent:n.messageContent}).subscribe()}changeSpaceMessageTemplateSettings(n){this.changeMessageTemplateSettings({spaceMessageType:n.messageType,spaceMessageTitle:n.messageTitle,spaceMessageContent:n.messageContent}).subscribe()}changeErrorMessageTemplateSettings(n){this.changeMessageTemplateSettings({errorMessageType:n.messageType,errorMessageTitle:n.messageTitle,errorMessageContent:n.messageContent}).subscribe()}changeMessageTemplateSettings(n){return this.settingService.changeSettings({[this.keyOfSettings]:n}).pipe((0,F.X)(3,300),(0,re.b)(e=>{this.message.success("\u4fee\u6539\u6d88\u606f\u6a21\u677f\u8bbe\u7f6e\u6210\u529f"),this.settings={...this.settings,...e[this.keyOfSettings]},this.updateCommonSettings(),this.changeDetector.markForCheck()},e=>{this.message.error(`\u4fee\u6539\u6d88\u606f\u6a21\u677f\u8bbe\u7f6e\u51fa\u9519: ${e.message}`)}))}updateCommonSettings(){this.beganMessageTemplateSettings={messageType:this.settings.beganMessageType,messageTitle:this.settings.beganMessageTitle,messageContent:this.settings.beganMessageContent},this.endedMessageTemplateSettings={messageType:this.settings.endedMessageType,messageTitle:this.settings.endedMessageTitle,messageContent:this.settings.endedMessageContent},this.spaceMessageTemplateSettings={messageType:this.settings.spaceMessageType,messageTitle:this.settings.spaceMessageTitle,messageContent:this.settings.spaceMessageContent},this.errorMessageTemplateSettings={messageType:this.settings.errorMessageType,messageTitle:this.settings.errorMessageTitle,messageContent:this.settings.errorMessageContent}}}function pr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}A.\u0275fac=function(n){return new(n||A)(t.Y36(t.sBO),t.Y36(se.dD),t.Y36(S.R))},A.\u0275cmp=t.Xpm({type:A,selectors:[["app-message-template-settings"]],inputs:{settings:"settings",keyOfSettings:"keyOfSettings"},features:[t.TTD],decls:20,vars:12,consts:[[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"title","value","messageTypes","confirm"],["beganMessageTemplateEditDialog",""],["endedMessageTemplateEditDialog",""],["errorMessageTemplateEditDialog",""],["spaceMessageTemplateEditDialog",""]],template:function(n,e){if(1&n){const o=t.EpF();t.TgZ(0,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(4);return t.KtG(s.open())}),t.TgZ(1,"span",1),t._uU(2,"\u5f00\u64ad\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(3,"app-message-template-edit-dialog",2,3),t.NdJ("confirm",function(s){return e.changeBeganMessageTemplateSettings(s)}),t.qZA(),t.TgZ(5,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(9);return t.KtG(s.open())}),t.TgZ(6,"span",1),t._uU(7,"\u4e0b\u64ad\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(8,"app-message-template-edit-dialog",2,4),t.NdJ("confirm",function(s){return e.changeEndedMessageTemplateSettings(s)}),t.qZA(),t.TgZ(10,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(14);return t.KtG(s.open())}),t.TgZ(11,"span",1),t._uU(12,"\u5f02\u5e38\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(13,"app-message-template-edit-dialog",2,5),t.NdJ("confirm",function(s){return e.changeErrorMessageTemplateSettings(s)}),t.qZA(),t.TgZ(15,"a",0),t.NdJ("click",function(){t.CHM(o);const s=t.MAs(19);return t.KtG(s.open())}),t.TgZ(16,"span",1),t._uU(17,"\u7a7a\u95f4\u4e0d\u8db3\u6d88\u606f\u6a21\u677f"),t.qZA()(),t.TgZ(18,"app-message-template-edit-dialog",2,6),t.NdJ("confirm",function(s){return e.changeSpaceMessageTemplateSettings(s)}),t.qZA()}2&n&&(t.xp6(3),t.Q6J("title","\u4fee\u6539\u5f00\u64ad\u6d88\u606f\u6a21\u677f")("value",e.beganMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u4e0b\u64ad\u6d88\u606f\u6a21\u677f")("value",e.endedMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u5f02\u5e38\u6d88\u606f\u6a21\u677f")("value",e.errorMessageTemplateSettings)("messageTypes",e.messageTypes),t.xp6(5),t.Q6J("title","\u4fee\u6539\u7a7a\u95f4\u4e0d\u8db3\u6d88\u606f\u6a21\u677f")("value",e.spaceMessageTemplateSettings)("messageTypes",e.messageTypes))},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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Lt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.emailSettings=f(e,C.gP),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function dr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 sendkey\uff01 "),t.BQk())}function hr(i,n){1&i&&(t.ynx(0),t._uU(1," sendkey \u65e0\u6548 "),t.BQk())}function _r(i,n){if(1&i&&(t.YNc(0,dr,2,0,"ng-container",6),t.YNc(1,hr,2,0,"ng-container",6)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Lt.\u0275fac=function(n){return new(n||Lt)(t.Y36(t.sBO),t.Y36(v.gz))},Lt.\u0275cmp=t.Xpm({type:Lt,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,pr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Vt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class qt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({sendkey:["",[r.kI.required,r.kI.pattern(/^[a-zA-Z\d]+$/)]]})}get sendkeyControl(){return this.settingsForm.get("sendkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("serverchanNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function fr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}qt.\u0275fac=function(n){return new(n||qt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},qt.\u0275cmp=t.Xpm({type:qt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,_r,2,2,"ng-template",null,5,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.sendkeyControl.valid&&!e.syncStatus.sendkey?"warning":e.sendkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class Yt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.serverchanSettings=f(e,C.gq),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Cr(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function vr(i,n){1&i&&t.YNc(0,Cr,2,0,"ng-container",9),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}function zr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 pushkey\uff01 "),t.BQk())}function xr(i,n){1&i&&(t.ynx(0),t._uU(1," pushkey \u65e0\u6548 "),t.BQk())}function Or(i,n){if(1&i&&(t.YNc(0,zr,2,0,"ng-container",9),t.YNc(1,xr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Yt.\u0275fac=function(n){return new(n||Yt)(t.Y36(t.sBO),t.Y36(v.gz))},Yt.\u0275cmp=t.Xpm({type:Yt,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,fr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,qt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Wt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({server:["",[r.kI.pattern(/^https?:\/\/.+/)]],pushkey:["",[r.kI.required,r.kI.pattern(/^PDU\d+T[a-zA-Z\d]{32}(,PDU\d+T[a-zA-Z\d]{32}){0,99}$/)]]})}get serverControl(){return this.settingsForm.get("server")}get pushkeyControl(){return this.settingsForm.get("pushkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("pushdeerNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Mr(i,n){if(1&i&&(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-pushdeer-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.pushdeerSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Wt.\u0275fac=function(n){return new(n||Wt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Wt.\u0275cmp=t.Xpm({type:Wt,selectors:[["app-pushdeer-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:15,vars:7,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u670d\u52a1\u5668 https://api2.pushdeer.com","nz-input","","formControlName","server"],["serverErrorTip",""],["nzFor","pushkey","nzNoColon","","nzRequired","",1,"setting-label"],["id","pushkey","type","text","placeholder","\u591a\u4e2a key \u7528 , \u9694\u5f00\uff0c\u5728\u7ebf\u7248\u6700\u591a 10 \u4e2a\uff0c\u81ea\u67b6\u7248\u9ed8\u8ba4\u6700\u591a 100 \u4e2a\u3002","required","","nz-input","","formControlName","pushkey"],["pushkeyErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"server"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,vr,1,1,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"pushkey"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Or,2,2,"ng-template",null,8,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.pushkeyControl.valid&&!e.syncStatus.pushkey?"warning":e.pushkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class Rt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.pushdeerSettings=f(e,C.jK),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function br(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 token\uff01 "),t.BQk())}function Pr(i,n){1&i&&(t.ynx(0),t._uU(1," token \u65e0\u6548 "),t.BQk())}function Tr(i,n){if(1&i&&(t.YNc(0,br,2,0,"ng-container",9),t.YNc(1,Pr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Rt.\u0275fac=function(n){return new(n||Rt)(t.Y36(t.sBO),t.Y36(v.gz))},Rt.\u0275cmp=t.Xpm({type:Rt,selectors:[["app-pushdeer-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","PushDeer \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","pushdeerNotification",3,"settings"],["name","PushDeer"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Mr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Wt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Gt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({token:["",[r.kI.required,r.kI.pattern(/^[a-z\d]{32}$/)]],topic:[""]})}get tokenControl(){return this.settingsForm.get("token")}get topicControl(){return this.settingsForm.get("topic")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("pushplusNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function wr(i,n){if(1&i&&(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(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){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),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Gt.\u0275fac=function(n){return new(n||Gt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Gt.\u0275cmp=t.Xpm({type:Gt,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(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,Tr,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(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()()()),2&n){const o=t.MAs(7);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.tokenControl.valid&&!e.syncStatus.token?"warning":e.tokenControl),t.xp6(7),t.Q6J("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.topicControl.valid&&!e.syncStatus.topic?"warning":e.topicControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:4em!important;width:4em!important}"],changeDetection:0});class Ht{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.pushplusSettings=f(e,C.q1),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Fr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 token\uff01 "),t.BQk())}function Sr(i,n){1&i&&(t.ynx(0),t._uU(1," token \u65e0\u6548 "),t.BQk())}function yr(i,n){if(1&i&&(t.YNc(0,Fr,2,0,"ng-container",12),t.YNc(1,Sr,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Ar(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 chatid\uff01 "),t.BQk())}function kr(i,n){1&i&&(t.ynx(0),t._uU(1," chatid \u65e0\u6548 "),t.BQk())}function Dr(i,n){if(1&i&&(t.YNc(0,Ar,2,0,"ng-container",12),t.YNc(1,kr,2,0,"ng-container",12)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Er(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function Zr(i,n){1&i&&t.YNc(0,Er,2,0,"ng-container",12),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}Ht.\u0275fac=function(n){return new(n||Ht)(t.Y36(t.sBO),t.Y36(v.gz))},Ht.\u0275cmp=t.Xpm({type:Ht,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"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,wr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Gt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class $t{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({token:["",[r.kI.required,r.kI.pattern(/^[0-9]{8,10}:[a-zA-Z0-9_-]{35}$/)]],chatid:["",[r.kI.required,r.kI.pattern(/^(-|[0-9]){0,}$/)]],server:["",[r.kI.pattern(/^https?:\/\/[a-zA-Z0-9-_.]+(:[0-9]+)?/)]]})}get tokenControl(){return this.settingsForm.get("token")}get chatidControl(){return this.settingsForm.get("chatid")}get serverControl(){return this.settingsForm.get("server")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("telegramNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Nr(i,n){if(1&i&&(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-telegram-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.telegramSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}$t.\u0275fac=function(n){return new(n||$t)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},$t.\u0275cmp=t.Xpm({type:$t,selectors:[["app-telegram-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:22,vars:10,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","chatid","nzNoColon","","nzRequired","",1,"setting-label"],["id","chatid","type","text","required","","nz-input","","formControlName","chatid"],["chatidErrorTip",""],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u63a5\u53e3 https://api.telegram.org","nz-input","","formControlName","server"],["serverErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(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,yr,2,2,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"chatid"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Dr,2,2,"ng-template",null,8,t.W1O),t.qZA()(),t.TgZ(15,"nz-form-item",1)(16,"nz-form-label",9),t._uU(17,"server"),t.qZA(),t.TgZ(18,"nz-form-control",3),t._UZ(19,"input",10),t.YNc(20,Zr,1,1,"ng-template",null,11,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14),s=t.MAs(21);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.tokenControl.valid&&!e.syncStatus.token?"warning":e.tokenControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.chatidControl.valid&&!e.syncStatus.chatid?"warning":e.chatidControl),t.xp6(7),t.Q6J("nzErrorTip",s)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:4em!important;width:4em!important}"],changeDetection:0});class Kt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.telegramSettings=f(e,C.wA),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Br(i,n){1&i&&(t.ynx(0),t._uU(1," server \u65e0\u6548 "),t.BQk())}function Ur(i,n){1&i&&t.YNc(0,Br,2,0,"ng-container",9),2&i&&t.Q6J("ngIf",n.$implicit.hasError("pattern"))}function Ir(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 pushkey\uff01 "),t.BQk())}function Jr(i,n){1&i&&(t.ynx(0),t._uU(1," pushkey \u65e0\u6548 "),t.BQk())}function Qr(i,n){if(1&i&&(t.YNc(0,Ir,2,0,"ng-container",9),t.YNc(1,Jr,2,0,"ng-container",9)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}Kt.\u0275fac=function(n){return new(n||Kt)(t.Y36(t.sBO),t.Y36(v.gz))},Kt.\u0275cmp=t.Xpm({type:Kt,selectors:[["app-telegram-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","telegram \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","telegramNotification",3,"settings"],["name","telegram"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Nr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,$t,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});class Xt{constructor(n,e,o){this.changeDetector=e,this.settingsSyncService=o,this.syncFailedWarningTip=d.yT,this.settingsForm=n.group({server:["",[r.kI.pattern(/^https?:\/\/.+/)]],pushkey:["",[r.kI.required,r.kI.pattern(/^[a-zA-Z\d]+$/)]]})}get serverControl(){return this.settingsForm.get("server")}get pushkeyControl(){return this.settingsForm.get("pushkey")}ngOnChanges(){this.syncStatus=M(this.settings,()=>!0),console.log(this.settings),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("barkNotification",this.settings,this.settingsForm.valueChanges.pipe((0,at.Sc)(this.settingsForm))).subscribe(n=>{this.syncStatus={...this.syncStatus,...P(n)},this.changeDetector.markForCheck()})}}function Vr(i,n){if(1&i&&(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-bark-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-message-template-settings",2),t.qZA()),2&i){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.barkSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings),t.xp6(2),t.Q6J("settings",e.messageTemplateSettings)}}Xt.\u0275fac=function(n){return new(n||Xt)(t.Y36(r.qu),t.Y36(t.sBO),t.Y36(z))},Xt.\u0275cmp=t.Xpm({type:Xt,selectors:[["app-bark-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:15,vars:7,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","server","nzNoColon","",1,"setting-label","align-required"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","server","type","url","placeholder","\u9ed8\u8ba4\u4e3a\u5b98\u65b9\u670d\u52a1\u5668\uff0c\u5982\u679c\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u4e14url\u5e26\u8def\u5f84\uff0curl\u672b\u5c3e\u8bf7\u52a0\u4e0a/","nz-input","","formControlName","server"],["serverErrorTip",""],["nzFor","pushkey","nzNoColon","","nzRequired","",1,"setting-label"],["id","pushkey","type","text","placeholder","","required","","nz-input","","formControlName","pushkey"],["pushkeyErrorTip",""],[4,"ngIf"]],template:function(n,e){if(1&n&&(t.TgZ(0,"form",0)(1,"nz-form-item",1)(2,"nz-form-label",2),t._uU(3,"server"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,Ur,1,1,"ng-template",null,5,t.W1O),t.qZA()(),t.TgZ(8,"nz-form-item",1)(9,"nz-form-label",6),t._uU(10,"pushkey"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Qr,2,2,"ng-template",null,8,t.W1O),t.qZA()()()),2&n){const o=t.MAs(7),a=t.MAs(14);t.Q6J("formGroup",e.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",o)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.serverControl.valid&&!e.syncStatus.server?"warning":e.serverControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",e.syncFailedWarningTip)("nzValidateStatus",e.pushkeyControl.valid&&!e.syncStatus.pushkey?"warning":e.pushkeyControl)}},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0});class jt{constructor(n,e){this.changeDetector=n,this.route=e}ngOnInit(){this.route.data.subscribe(n=>{const e=n.settings;this.barkSettings=f(e,C.LV),this.notifierSettings=f(e,C._1),this.notificationSettings=f(e,C.X),this.messageTemplateSettings=f(e,C.tI),this.changeDetector.markForCheck()})}}function Lr(i,n){1&i&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 url\uff01 "),t.BQk())}function qr(i,n){1&i&&(t.ynx(0),t._uU(1," url \u65e0\u6548\uff01 "),t.BQk())}function Yr(i,n){if(1&i&&(t.YNc(0,Lr,2,0,"ng-container",29),t.YNc(1,qr,2,0,"ng-container",29)),2&i){const e=n.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Wr(i,n){if(1&i){const e=t.EpF();t.ynx(0),t.TgZ(1,"form",2)(2,"nz-form-item",3)(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,Yr,2,2,"ng-template",null,7,t.W1O),t.qZA()(),t.TgZ(9,"div",8)(10,"h2"),t._uU(11,"\u4e8b\u4ef6"),t.qZA(),t.TgZ(12,"nz-form-item",3)(13,"nz-form-control",9)(14,"label",10),t.NdJ("nzCheckedChange",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.setAllChecked(a))}),t._uU(15,"\u5168\u9009"),t.qZA()()(),t.TgZ(16,"nz-form-item",3)(17,"nz-form-control",11)(18,"label",12),t._uU(19,"\u5f00\u64ad"),t.qZA()()(),t.TgZ(20,"nz-form-item",3)(21,"nz-form-control",11)(22,"label",13),t._uU(23,"\u4e0b\u64ad"),t.qZA()()(),t.TgZ(24,"nz-form-item",3)(25,"nz-form-control",11)(26,"label",14),t._uU(27,"\u76f4\u64ad\u95f4\u4fe1\u606f\u6539\u53d8"),t.qZA()()(),t.TgZ(28,"nz-form-item",3)(29,"nz-form-control",11)(30,"label",15),t._uU(31,"\u5f55\u5236\u5f00\u59cb"),t.qZA()()(),t.TgZ(32,"nz-form-item",3)(33,"nz-form-control",11)(34,"label",16),t._uU(35,"\u5f55\u5236\u5b8c\u6210"),t.qZA()()(),t.TgZ(36,"nz-form-item",3)(37,"nz-form-control",11)(38,"label",17),t._uU(39,"\u5f55\u5236\u53d6\u6d88"),t.qZA()()(),t.TgZ(40,"nz-form-item",3)(41,"nz-form-control",11)(42,"label",18),t._uU(43,"\u89c6\u9891\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(44,"nz-form-item",3)(45,"nz-form-control",11)(46,"label",19),t._uU(47,"\u89c6\u9891\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(48,"nz-form-item",3)(49,"nz-form-control",11)(50,"label",20),t._uU(51,"\u5f39\u5e55\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(52,"nz-form-item",3)(53,"nz-form-control",11)(54,"label",21),t._uU(55,"\u5f39\u5e55\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(56,"nz-form-item",3)(57,"nz-form-control",11)(58,"label",22),t._uU(59,"\u539f\u59cb\u5f39\u5e55\u6587\u4ef6\u521b\u5efa"),t.qZA()()(),t.TgZ(60,"nz-form-item",3)(61,"nz-form-control",11)(62,"label",23),t._uU(63,"\u539f\u59cb\u5f39\u5e55\u6587\u4ef6\u5b8c\u6210"),t.qZA()()(),t.TgZ(64,"nz-form-item",3)(65,"nz-form-control",11)(66,"label",24),t._uU(67,"\u76f4\u64ad\u5c01\u9762\u4e0b\u8f7d\u5b8c\u6210"),t.qZA()()(),t.TgZ(68,"nz-form-item",3)(69,"nz-form-control",11)(70,"label",25),t._uU(71,"\u89c6\u9891\u540e\u5904\u7406\u5b8c\u6210"),t.qZA()()(),t.TgZ(72,"nz-form-item",3)(73,"nz-form-control",11)(74,"label",26),t._uU(75,"\u6587\u4ef6\u540e\u5904\u7406\u5b8c\u6210"),t.qZA()()(),t.TgZ(76,"nz-form-item",3)(77,"nz-form-control",11)(78,"label",27),t._uU(79,"\u786c\u76d8\u7a7a\u95f4\u4e0d\u8db3"),t.qZA()()(),t.TgZ(80,"nz-form-item",3)(81,"nz-form-control",11)(82,"label",28),t._uU(83,"\u7a0b\u5e8f\u51fa\u73b0\u5f02\u5e38"),t.qZA()()()()(),t.BQk()}if(2&i){const e=t.MAs(8),o=t.oxw();t.xp6(1),t.Q6J("formGroup",o.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",e),t.xp6(9),t.Q6J("nzChecked",o.allChecked)("nzIndeterminate",o.indeterminate)}}jt.\u0275fac=function(n){return new(n||jt)(t.Y36(t.sBO),t.Y36(v.gz))},jt.\u0275cmp=t.Xpm({type:jt,selectors:[["app-bark-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","Bark \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","barkNotification",3,"settings"],["name","Bark"],[3,"settings"],["name","\u4e8b\u4ef6"],["name","\u6d88\u606f"]],template:function(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Vr,8,4,"ng-template",1),t.qZA())},dependencies:[rt.Y,st.q,q.g,N,Xt,B,A],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}"],changeDetection:0});const Rr={url:"",liveBegan:!0,liveEnded:!0,roomChange:!0,recordingStarted:!0,recordingFinished:!0,recordingCancelled:!0,videoFileCreated:!0,videoFileCompleted:!0,danmakuFileCreated:!0,danmakuFileCompleted:!0,rawDanmakuFileCreated:!0,rawDanmakuFileCompleted:!0,coverImageDownloaded:!0,videoPostprocessingCompleted:!0,postprocessingCompleted:!0,spaceNoEnough:!0,errorOccurred:!0};class te{constructor(n,e){this.changeDetector=e,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=n.group({url:["",[r.kI.required,r.kI.pattern(/^https?:\/\/.*$/)]],liveBegan:[""],liveEnded:[""],roomChange:[""],recordingStarted:[""],recordingFinished:[""],recordingCancelled:[""],videoFileCreated:[""],videoFileCompleted:[""],danmakuFileCreated:[""],danmakuFileCompleted:[""],rawDanmakuFileCreated:[""],rawDanmakuFileCompleted:[""],coverImageDownloaded:[""],videoPostprocessingCompleted:[""],postprocessingCompleted:[""],spaceNoEnough:[""],errorOccurred:[""]}),this.checkboxControls=Object.entries(this.settingsForm.controls).filter(([o])=>"url"!==o).map(([,o])=>o),this.checkboxControls.forEach(o=>o.valueChanges.subscribe(()=>this.updateAllChecked()))}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.settingsForm.reset(),this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){void 0===this.settings&&(this.settings={...Rr}),this.settingsForm.setValue(this.settings),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.settingsForm.value),this.close()}setAllChecked(n){this.indeterminate=!1,this.allChecked=n,this.checkboxControls.forEach(e=>e.setValue(n))}updateAllChecked(){const n=this.checkboxControls.map(e=>e.value);this.allChecked=n.every(e=>e),this.indeterminate=!this.allChecked&&n.some(e=>e)}}te.\u0275fac=function(n){return new(n||te)(t.Y36(r.qu),t.Y36(t.sBO))},te.\u0275cmp=t.Xpm({type:te,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","recordingStarted"],["nz-checkbox","","formControlName","recordingFinished"],["nz-checkbox","","formControlName","recordingCancelled"],["nz-checkbox","","formControlName","videoFileCreated"],["nz-checkbox","","formControlName","videoFileCompleted"],["nz-checkbox","","formControlName","danmakuFileCreated"],["nz-checkbox","","formControlName","danmakuFileCompleted"],["nz-checkbox","","formControlName","rawDanmakuFileCreated"],["nz-checkbox","","formControlName","rawDanmakuFileCompleted"],["nz-checkbox","","formControlName","coverImageDownloaded"],["nz-checkbox","","formControlName","videoPostprocessingCompleted"],["nz-checkbox","","formControlName","postprocessingCompleted"],["nz-checkbox","","formControlName","spaceNoEnough"],["nz-checkbox","","formControlName","errorOccurred"],[4,"ngIf"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,Wr,84,4,"ng-container",1),t.qZA()),2&n&&t.Q6J("nzTitle",e.title)("nzOkText",e.okButtonText)("nzVisible",e.visible)("nzOkDisabled",e.settingsForm.invalid)},dependencies:[p.O5,r._Y,r.Fj,r.JJ,r.JL,r.Q7,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp,Oe.Ie,_.du,_.Hf],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:700;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{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;height:60px}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]:not(:first-child){height:61px}.setting-label[_ngcontent-%COMP%]{padding:0!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:-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}.setting-control.textarea[_ngcontent-%COMP%]::-webkit-scrollbar, .setting-value.textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}@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;width:100%;max-height:3em;overflow:hidden}.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});var tn=c(3325);function Gr(i,n){1&i&&t._UZ(0,"nz-list-empty")}function Hr(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"nz-list-item",9)(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)(7,"ul",14)(8,"li",15),t.NdJ("click",function(){const s=t.CHM(e).index,g=t.oxw();return t.KtG(g.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,g=t.oxw();return t.KtG(g.remove.emit(s))}),t._uU(11,"\u5220\u9664"),t.qZA()()()()}if(2&i){const e=n.$implicit,o=t.MAs(6);t.xp6(2),t.Oqu(e.url),t.xp6(1),t.Q6J("nzDropdownMenu",o)}}class ee{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}}function $r(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"app-page-section")(1,"app-webhook-list",3),t.NdJ("add",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.addWebhook())})("edit",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.editWebhook(a))})("remove",function(a){t.CHM(e);const s=t.oxw();return t.KtG(s.removeWebhook(a))})("clear",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.clearWebhook())}),t.qZA()()}if(2&i){const e=t.oxw();t.xp6(1),t.Q6J("data",e.webhooks)("addable",e.canAdd)}}ee.\u0275fac=function(n){return new(n||ee)},ee.\u0275cmp=t.Xpm({type:ee,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(n,e){1&n&&(t.TgZ(0,"nz-list",0)(1,"nz-list-header",1)(2,"h3"),t._uU(3),t.qZA(),t.TgZ(4,"div",2)(5,"button",3),t.NdJ("click",function(){return e.clear.emit()}),t._UZ(6,"i",4),t.qZA(),t.TgZ(7,"button",5),t.NdJ("click",function(){return e.add.emit()}),t._UZ(8,"i",6),t.qZA()()(),t.YNc(9,Gr,1,0,"nz-list-empty",7),t.YNc(10,Hr,12,2,"nz-list-item",8),t.qZA()),2&n&&(t.xp6(3),t.Oqu(e.header),t.xp6(2),t.Q6J("disabled",e.data.length<=0||!e.clearable),t.xp6(2),t.Q6J("disabled",!e.addable),t.xp6(2),t.Q6J("ngIf",e.data.length<=0),t.xp6(1),t.Q6J("ngForOf",e.data))},dependencies:[p.sg,p.O5,Q.ix,I.w,lt.Ls,ve,_e,he,ke,tn.wO,tn.r9,oe.cm,oe.RR,oe.wA,ue.SY],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});class R{constructor(n,e,o,a,s){this.changeDetector=n,this.route=e,this.message=o,this.modal=a,this.settingService=s,this.dialogTitle="",this.dialogOkButtonText="",this.dialogVisible=!1,this.editingIndex=-1}get canAdd(){return this.webhooks.length<R.MAX_WEBHOOKS}ngOnInit(){this.route.data.subscribe(n=>{this.webhooks=n.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(n){const e=this.webhooks.filter((o,a)=>a!==n);this.changeSettings(e).subscribe(()=>this.reset())}editWebhook(n){this.editingIndex=n,this.editingSettings={...this.webhooks[n]},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((n,e)=>{this.changeSettings([]).subscribe(n,e)})})}onDialogCanceled(){this.reset()}onDialogConfirmed(n){let e;-1===this.editingIndex?e=[...this.webhooks,n]:(e=[...this.webhooks],e[this.editingIndex]=n),this.changeSettings(e).subscribe(()=>this.reset())}reset(){this.editingIndex=-1,delete this.editingSettings}changeSettings(n){return this.settingService.changeSettings({webhooks:n}).pipe((0,F.X)(3,300),(0,re.b)(e=>{this.webhooks=e.webhooks,this.changeDetector.markForCheck()},e=>{this.message.error(`Webhook \u8bbe\u7f6e\u51fa\u9519: ${e.message}`)}))}}R.MAX_WEBHOOKS=50,R.\u0275fac=function(n){return new(n||R)(t.Y36(t.sBO),t.Y36(v.gz),t.Y36(se.dD),t.Y36(_.Sf),t.Y36(S.R))},R.\u0275cmp=t.Xpm({type:R,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(n,e){1&n&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,$r,2,2,"ng-template",1),t.qZA(),t.TgZ(2,"app-webhook-edit-dialog",2),t.NdJ("visibleChange",function(a){return e.dialogVisible=a})("cancel",function(){return e.onDialogCanceled()})("confirm",function(a){return e.onDialogConfirmed(a)}),t.qZA()),2&n&&(t.xp6(2),t.Q6J("title",e.dialogTitle)("okButtonText",e.dialogOkButtonText)("settings",e.editingSettings)("visible",e.dialogVisible))},dependencies:[rt.Y,st.q,q.g,te,ee],changeDetection:0});const Kr=[{path:"email-notification",component:Lt,resolve:{settings:K}},{path:"serverchan-notification",component:Yt,resolve:{settings:X}},{path:"pushdeer-notification",component:Rt,resolve:{settings:j}},{path:"pushplus-notification",component:Ht,resolve:{settings:tt}},{path:"telegram-notification",component:Kt,resolve:{settings:et}},{path:"bark-notification",component:jt,resolve:{settings:it}},{path:"webhooks",component:R,resolve:{settings:nt}},{path:"",component:Qt,resolve:{settings:$}}];class ht{}function Xr(i,n){1&i&&(t.TgZ(0,"p"),t._uU(1," \u8bed\u6cd5\u3001\u53d8\u91cf\u53c2\u8003 "),t.TgZ(2,"a",16),t._uU(3,"wiki"),t.qZA()(),t.TgZ(4,"p"),t._uU(5,"\u7a7a\u503c\u5c06\u4f7f\u7528\u9ed8\u8ba4\u6d88\u606f\u6a21\u677f"),t.qZA())}function jr(i,n){if(1&i&&(t.ynx(0),t.YNc(1,Xr,6,0,"ng-template",null,3,t.W1O),t.TgZ(3,"form",4)(4,"nz-form-item",5)(5,"nz-form-label",6),t._uU(6," \u6d88\u606f\u6807\u9898 "),t.qZA(),t.TgZ(7,"nz-form-control",7),t._UZ(8,"input",8),t.qZA()(),t.TgZ(9,"nz-form-item",9)(10,"nz-form-label",10),t._uU(11," \u6d88\u606f\u7c7b\u578b "),t.qZA(),t.TgZ(12,"nz-form-control",11),t._UZ(13,"nz-select",12),t.qZA()(),t.TgZ(14,"nz-form-item",13)(15,"nz-form-label",6),t._uU(16," \u6d88\u606f\u5185\u5bb9 "),t.qZA(),t.TgZ(17,"nz-form-control",14),t._UZ(18,"textarea",15),t.qZA()()(),t.BQk()),2&i){const e=t.MAs(2),o=t.oxw();t.xp6(3),t.Q6J("nzLayout","vertical")("formGroup",o.settingsForm),t.xp6(2),t.Q6J("nzTooltipTitle",e),t.xp6(8),t.Q6J("nzOptions",o.MESSAGE_TYPE_OPTIONS),t.xp6(2),t.Q6J("nzTooltipTitle",e),t.xp6(3),t.Q6J("rows",10)}}function ts(i,n){if(1&i){const e=t.EpF();t.TgZ(0,"button",17),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleCancel())}),t._uU(1,"\u53d6\u6d88"),t.qZA(),t.TgZ(2,"button",18),t.NdJ("click",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.handleConfirm())}),t._uU(3," \u786e\u5b9a "),t.qZA()}if(2&i){const e=t.oxw();t.xp6(2),t.Q6J("disabled",e.settingsForm.invalid)}}ht.\u0275fac=function(n){return new(n||ht)},ht.\u0275mod=t.oAB({type:ht}),ht.\u0275inj=t.cJS({imports:[v.Bz.forChild(Kr),v.Bz]});class ne{constructor(n,e){this.changeDetector=e,this.messageTypes=[],this.title="\u4fee\u6539\u6d88\u606f\u6a21\u677f",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.MESSAGE_TYPE_OPTIONS=[],this.settingsForm=n.group({messageType:[""],messageTitle:[""],messageContent:[""]})}get messageTypeControl(){return this.settingsForm.get("messageType")}get messageTitleControl(){return this.settingsForm.get("messageTitle")}get messageContentControl(){return this.settingsForm.get("messageContent")}ngOnInit(){this.MESSAGE_TYPE_OPTIONS=Array.from(new Set(this.messageTypes)).map(n=>({label:n,value:n}))}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(n){this.visible=n,this.visibleChange.emit(n),this.changeDetector.markForCheck()}setValue(){this.settingsForm.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.settingsForm.value),this.close()}}ne.\u0275fac=function(n){return new(n||ne)(t.Y36(r.qu),t.Y36(t.sBO))},ne.\u0275cmp=t.Xpm({type:ne,selectors:[["app-message-template-edit-dialog"]],inputs:{value:"value",messageTypes:"messageTypes",title:"title",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:4,vars:3,consts:[["nzCentered","",3,"nzTitle","nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["modalFooter",""],["messageTemplateTip",""],["nz-form","",3,"nzLayout","formGroup"],[1,"setting-item","input"],["nzFor","messageTitle","nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],[1,"setting-control","input"],["type","text","nz-input","","formControlName","messageTitle"],[1,"setting-item","switch"],["nzFor","messageType","nzNoColon","",1,"setting-label"],[1,"setting-control","select"],["formControlName","messageType",3,"nzOptions"],[1,"setting-item","textarea"],[1,"setting-control","textarea"],["nz-input","","wrap","off","formControlName","messageContent",3,"rows"],["href","https://github.com/acgnhiki/blrec/wiki/MessageTemplate","_blank",""],["nz-button","","nzType","default",3,"click"],["nz-button","","nzType","default",3,"disabled","click"]],template:function(n,e){1&n&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(a){return e.visible=a})("nzOnOk",function(){return e.handleConfirm()})("nzOnCancel",function(){return e.handleCancel()}),t.YNc(1,jr,19,6,"ng-container",1),t.YNc(2,ts,4,1,"ng-template",null,2,t.W1O),t.qZA()),2&n&&t.Q6J("nzTitle",e.title)("nzVisible",e.visible)("nzOkDisabled",e.settingsForm.invalid)},dependencies:[r._Y,r.Fj,r.JJ,r.JL,r.sg,r.u,u.t3,u.SK,l.Lr,l.Nx,l.iK,l.Fd,O.Zp,zt.Vq,_.du,_.Hf,Q.ix,I.w,dt.dQ],styles:["textarea[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px;height:4px}"],changeDetection:0});class _t{}_t.\u0275fac=function(n){return new(n||_t)},_t.\u0275mod=t.oAB({type:_t}),_t.\u0275inj=t.cJS({providers:[$,K,X,j,tt,et,it,nt],imports:[p.ez,ht,r.u5,r.UX,ge.j,en.KJ,nn.vh,l.U5,O.o7,U.m,Oe.Wr,G.aF,sn,zt.LV,_.Qp,Q.sL,lt.PV,pi,oe.b1,ue.cg,di.S,H.HQ,bi,Pi.m]}),t.B6R(A,[ne],[])}}]);
\ No newline at end of file
diff --git a/src/blrec/data/webapp/index.html b/src/blrec/data/webapp/index.html
index 629a2a1..deb0058 100644
--- a/src/blrec/data/webapp/index.html
+++ b/src/blrec/data/webapp/index.html
@@ -10,6 +10,6 @@
 <body>
   <app-root></app-root>
   <noscript>Please enable JavaScript to continue using this application.</noscript>
-<script src="runtime.bad8d115055bada4.js" type="module"></script><script src="polyfills.4e5433063877ea34.js" type="module"></script><script src="main.f21b7d831ad9cafb.js" type="module"></script>
+<script src="runtime.8688afa20dbe5cc7.js" type="module"></script><script src="polyfills.4e5433063877ea34.js" type="module"></script><script src="main.f21b7d831ad9cafb.js" type="module"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/src/blrec/data/webapp/ngsw.json b/src/blrec/data/webapp/ngsw.json
index 2a997df..b0e6c3c 100644
--- a/src/blrec/data/webapp/ngsw.json
+++ b/src/blrec/data/webapp/ngsw.json
@@ -1,6 +1,6 @@
 {
   "configVersion": 1,
-  "timestamp": 1697282115210,
+  "timestamp": 1697949101780,
   "index": "/index.html",
   "assetGroups": [
     {
@@ -12,17 +12,17 @@
       },
       "urls": [
         "/103.4a2aea63cc3bf42b.js",
-        "/287.5c768f00dcd24631.js",
+        "/287.63ace7ac80c3d9f2.js",
         "/386.2404f3bc252e1df3.js",
         "/503.6553f508f4a9247d.js",
-        "/548.73ee5c2419f2617e.js",
+        "/548.f8a3199ca2412e0d.js",
         "/688.7032fddba7983cf6.js",
         "/common.1fc175bce139f4df.js",
         "/index.html",
         "/main.f21b7d831ad9cafb.js",
         "/manifest.webmanifest",
         "/polyfills.4e5433063877ea34.js",
-        "/runtime.bad8d115055bada4.js",
+        "/runtime.8688afa20dbe5cc7.js",
         "/styles.ae81e04dfa5b2860.css"
       ],
       "patterns": []
@@ -1635,10 +1635,10 @@
   "dataGroups": [],
   "hashTable": {
     "/103.4a2aea63cc3bf42b.js": "2711817f2977bfdc18c34fee4fe9385fe012bb22",
-    "/287.5c768f00dcd24631.js": "4cd0f85040b1a482bf9796575738afdd2dcda00e",
+    "/287.63ace7ac80c3d9f2.js": "7a52c7715de66142dae39668a3a0fb0f9ee4bb50",
     "/386.2404f3bc252e1df3.js": "f937945645579b9651be2666f70cec2c5de4e367",
     "/503.6553f508f4a9247d.js": "0878ea0e91bfd5458dd55875561e91060ecb0837",
-    "/548.73ee5c2419f2617e.js": "93153313f106aed86859050288e59e6c19e3d4cf",
+    "/548.f8a3199ca2412e0d.js": "58ae6ac139c0b62ed266313e7a75a8266770387f",
     "/688.7032fddba7983cf6.js": "eae55044529782a51b7e534365255bbfa5522b05",
     "/assets/animal/panda.js": "fec2868bb3053dd2da45f96bbcb86d5116ed72b1",
     "/assets/animal/panda.svg": "bebd302cdc601e0ead3a6d2710acf8753f3d83b1",
@@ -3234,11 +3234,11 @@
     "/assets/twotone/warning.js": "fb2d7ea232f3a99bf8f080dbc94c65699232ac01",
     "/assets/twotone/warning.svg": "8c7a2d3e765a2e7dd58ac674870c6655cecb0068",
     "/common.1fc175bce139f4df.js": "af1775164711ec49e5c3a91ee45bd77509c17c54",
-    "/index.html": "8dc97bacb089295cf14011c3c3e21b14ba7108a1",
+    "/index.html": "28dc5eb629ca29943d45677dac7fded24c0362c3",
     "/main.f21b7d831ad9cafb.js": "fc51efa446c2ac21ee17e165217dd3faeacc5290",
     "/manifest.webmanifest": "62c1cb8c5ad2af551a956b97013ab55ce77dd586",
     "/polyfills.4e5433063877ea34.js": "68159ab99e0608976404a17132f60b5ceb6f12d2",
-    "/runtime.bad8d115055bada4.js": "a679fb0193729e75a72e77d0551dc85e080d9b41",
+    "/runtime.8688afa20dbe5cc7.js": "602d7051e97524a7becae76c8e76e7db29370b2b",
     "/styles.ae81e04dfa5b2860.css": "5933b4f1c4d8fcc1891b68940ee78af4091472b7"
   },
   "navigationUrls": [
diff --git a/src/blrec/data/webapp/runtime.bad8d115055bada4.js b/src/blrec/data/webapp/runtime.8688afa20dbe5cc7.js
similarity index 56%
rename from src/blrec/data/webapp/runtime.bad8d115055bada4.js
rename to src/blrec/data/webapp/runtime.8688afa20dbe5cc7.js
index 2a3db33..e1e0aef 100644
--- a/src/blrec/data/webapp/runtime.bad8d115055bada4.js
+++ b/src/blrec/data/webapp/runtime.8688afa20dbe5cc7.js
@@ -1 +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](t,t.exports,r),t.exports}r.m=v,e=[],r.O=(n,t,f,o)=>{if(!t){var a=1/0;for(i=0;i<e.length;i++){for(var[t,f,o]=e[i],c=!0,u=0;u<t.length;u++)(!1&o||a>=o)&&Object.keys(r.O).every(b=>r.O[b](t[u]))?t.splice(u--,1):(c=!1,o<a&&(a=o));if(c){e.splice(i--,1);var d=f();void 0!==d&&(n=d)}}return n}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,f,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)+"."+{103:"4a2aea63cc3bf42b",287:"5c768f00dcd24631",386:"2404f3bc252e1df3",503:"6553f508f4a9247d",548:"73ee5c2419f2617e",592:"1fc175bce139f4df",688:"7032fddba7983cf6"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="blrec:";r.l=(t,f,o,i)=>{if(e[t])e[t].push(f);else{var a,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==t||l.getAttribute("data-webpack")==n+o){a=l;break}}a||(c=!0,(a=document.createElement("script")).type="module",a.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]=[f];var s=(g,b)=>{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(h=>h(b)),g)return g(b)},p=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),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(f,o)=>{var i=r.o(e,f)?e[f]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=f){var a=new Promise((l,s)=>i=e[f]=[l,s]);o.push(i[2]=a);var c=r.p+r.u(f),u=new Error;r.l(c,l=>{if(r.o(e,f)&&(0!==(i=e[f])&&(e[f]=void 0),i)){var s=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;u.message="Loading chunk "+f+" failed.\n("+s+": "+p+")",u.name="ChunkLoadError",u.type=s,u.request=p,i[1](u)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,o)=>{var u,d,[i,a,c]=o,l=0;if(i.some(p=>0!==e[p])){for(u in a)r.o(a,u)&&(r.m[u]=a[u]);if(c)var s=c(r)}for(f&&f(o);l<i.length;l++)r.o(e,d=i[l])&&e[d]&&e[d][0](),e[d]=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
+(()=>{"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](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],c=!0,u=0;u<t.length;u++)(!1&o||a>=o)&&Object.keys(r.O).every(b=>r.O[b](t[u]))?t.splice(u--,1):(c=!1,o<a&&(a=o));if(c){e.splice(f--,1);var d=i();void 0!==d&&(n=d)}}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)+"."+{103:"4a2aea63cc3bf42b",287:"63ace7ac80c3d9f2",386:"2404f3bc252e1df3",503:"6553f508f4a9247d",548:"f8a3199ca2412e0d",592:"1fc175bce139f4df",688:"7032fddba7983cf6"}[e]+".js",r.miniCssF=e=>{},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,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==t||l.getAttribute("data-webpack")==n+o){a=l;break}}a||(c=!0,(a=document.createElement("script")).type="module",a.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,b)=>{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(h=>h(b)),g)return g(b)},p=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),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),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((l,s)=>f=e[i]=[l,s]);o.push(f[2]=a);var c=r.p+r.u(i),u=new Error;r.l(c,l=>{if(r.o(e,i)&&(0!==(f=e[i])&&(e[i]=void 0),f)){var s=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;u.message="Loading chunk "+i+" failed.\n("+s+": "+p+")",u.name="ChunkLoadError",u.type=s,u.request=p,f[1](u)}},"chunk-"+i,i)}else e[i]=0},r.O.j=i=>0===e[i];var n=(i,o)=>{var u,d,[f,a,c]=o,l=0;if(f.some(p=>0!==e[p])){for(u in a)r.o(a,u)&&(r.m[u]=a[u]);if(c)var s=c(r)}for(i&&i(o);l<f.length;l++)r.o(e,d=f[l])&&e[d]&&e[d][0](),e[d]=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/disk_space/space_reclaimer.py b/src/blrec/disk_space/space_reclaimer.py
index 9736c4d..a146c68 100644
--- a/src/blrec/disk_space/space_reclaimer.py
+++ b/src/blrec/disk_space/space_reclaimer.py
@@ -22,7 +22,19 @@ logger = logging.getLogger(__name__)
 
 class SpaceReclaimer(SpaceEventListener, SwitchableMixin):
     _SUFFIX_SET = frozenset(
-        ('.flv', '.mp4', '.ts', '.m4s', '.m3u8' '.xml', '.jsonl', '.jpg')
+        (
+            '.flv',
+            '.mp4',
+            '.ts',
+            '.m4s',
+            '.m3u8',
+            '.xml',
+            '.json',
+            '.meta',
+            '.jsonl',
+            '.jpg',
+            '.png',
+        )
     )
 
     def __init__(
diff --git a/src/blrec/flv/operators/analyse.py b/src/blrec/flv/operators/analyse.py
index dc8d1aa..c136c9d 100644
--- a/src/blrec/flv/operators/analyse.py
+++ b/src/blrec/flv/operators/analyse.py
@@ -103,6 +103,7 @@ class MetaDataDict:
 class Analyser:
     def __init__(self) -> None:
         self._metadatas: Subject[Optional[MetaData]] = Subject()
+        self._duration_updated: Subject[float] = Subject()
         self._reset()
 
     def _reset(self) -> None:
@@ -135,6 +136,10 @@ class Analyser:
     def metadatas(self) -> Observable[Optional[MetaData]]:
         return self._metadatas
 
+    @property
+    def duration_updated(self) -> Observable[float]:
+        return self._duration_updated
+
     def __call__(self, source: FLVStream) -> FLVStream:
         return self._analyse(source)
 
@@ -307,6 +312,7 @@ class Analyser:
         self._size_of_tags += tag.tag_size
         self._size_of_data += tag.data_size
         self._last_timestamp = tag.timestamp
+        self._duration_updated.on_next(self._last_timestamp / 1000)
 
     def _analyse_audio_tag(self, tag: AudioTag) -> None:
         if not self._audio_analysed:
diff --git a/src/blrec/flv/operators/helpers.py b/src/blrec/flv/operators/helpers.py
index 4a0c981..c88d4c8 100644
--- a/src/blrec/flv/operators/helpers.py
+++ b/src/blrec/flv/operators/helpers.py
@@ -31,7 +31,7 @@ def from_file(
     path: str, *, backup_timestamp: bool = False, restore_timestamp: bool = False
 ) -> FLVStream:
     return from_stream(
-        open(path, 'rb'),
+        open(path, 'rb'),  # type: ignore
         complete_on_eof=True,
         backup_timestamp=backup_timestamp,
         restore_timestamp=restore_timestamp,
diff --git a/src/blrec/flv/operators/parse.py b/src/blrec/flv/operators/parse.py
index 994ba57..695cda9 100644
--- a/src/blrec/flv/operators/parse.py
+++ b/src/blrec/flv/operators/parse.py
@@ -36,7 +36,7 @@ def parse(
                 try:
                     try:
                         reader = FlvReader(
-                            stream,
+                            stream,  # type: ignore
                             backup_timestamp=backup_timestamp,
                             restore_timestamp=restore_timestamp,
                         )
diff --git a/src/blrec/flv/operators/probe.py b/src/blrec/flv/operators/probe.py
index 009a447..943a54e 100644
--- a/src/blrec/flv/operators/probe.py
+++ b/src/blrec/flv/operators/probe.py
@@ -7,7 +7,7 @@ from typing import List, Optional, cast
 from reactivex import Observable, Subject, abc
 from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
 
-from ...utils.ffprobe import StreamProfile, ffprobe
+from ...utils.ffprobe import StreamProfile, ffprobe_on
 from ..common import find_aac_header_tag, find_avc_header_tag
 from ..io import FlvWriter
 from ..models import FlvHeader, FlvTag
@@ -99,4 +99,4 @@ class Prober:
         def on_error(e: Exception) -> None:
             logger.warning(f'Failed to probe stream by ffprobe: {repr(e)}')
 
-        ffprobe(bytes_io.getvalue()).subscribe(on_next, on_error)
+        ffprobe_on(bytes_io.getvalue()).subscribe(on_next, on_error)
diff --git a/src/blrec/hls/helpler.py b/src/blrec/hls/helpler.py
new file mode 100644
index 0000000..c4773c2
--- /dev/null
+++ b/src/blrec/hls/helpler.py
@@ -0,0 +1,12 @@
+import os
+
+__all__ = ('name_of', 'sequence_number_of')
+
+
+def name_of(uri: str) -> str:
+    name, _ext = os.path.splitext(uri)
+    return name
+
+
+def sequence_number_of(uri: str) -> int:
+    return int(name_of(uri))
diff --git a/src/blrec/hls/metadata_dumper.py b/src/blrec/hls/metadata_dumper.py
index 72e45ed..3068e12 100644
--- a/src/blrec/hls/metadata_dumper.py
+++ b/src/blrec/hls/metadata_dumper.py
@@ -18,17 +18,17 @@ logger = logging.getLogger(__name__)
 class MetadataDumper(SwitchableMixin):
     def __init__(
         self,
-        playlist_dumper: hls_ops.PlaylistDumper,
+        segment_dumper: hls_ops.SegmentDumper,
         metadata_provider: Callable[[Dict[str, Any]], Dict[str, Any]],
     ) -> None:
         super().__init__()
-        self._playlist_dumper = playlist_dumper
+        self._segment_dumper = segment_dumper
         self._metadata_provider = metadata_provider
         self._metadata: Dict[str, Any] = {}
 
     def _do_enable(self) -> None:
-        self._file_opened_subscription = self._playlist_dumper.file_opened.subscribe(
-            self._on_playlist_file_opened
+        self._file_opened_subscription = self._segment_dumper.file_opened.subscribe(
+            self._on_video_file_opened
         )
         logger.debug('Enabled metadata dumper')
 
@@ -39,13 +39,13 @@ class MetadataDumper(SwitchableMixin):
         self._metadata.clear()
         logger.debug('Disabled metadata dumper')
 
-    def _on_playlist_file_opened(self, args: Tuple[str, int]) -> None:
-        playlist_path, _ = args
+    def _on_video_file_opened(self, args: Tuple[str, int]) -> None:
+        video_path, _timestamp = args
         metadata = self._metadata_provider({})
-        self._dump_metadata(playlist_path, metadata)
+        self._dump_metadata(video_path, metadata)
 
-    def _dump_metadata(self, playlist_path: str, metadata: Dict[str, Any]) -> None:
-        path = record_metadata_path(playlist_path)
+    def _dump_metadata(self, video_path: str, metadata: Dict[str, Any]) -> None:
+        path = record_metadata_path(video_path)
         logger.debug(f"Dumping metadata to file: '{path}'")
 
         with open(path, 'wt', encoding='utf8') as file:
diff --git a/src/blrec/hls/operators/__init__.py b/src/blrec/hls/operators/__init__.py
index a21cd32..27afc7b 100644
--- a/src/blrec/hls/operators/__init__.py
+++ b/src/blrec/hls/operators/__init__.py
@@ -1,14 +1,19 @@
+from .analyser import Analyser, MetaData
+from .cutter import Cutter
+from .limiter import Limiter
 from .playlist_dumper import PlaylistDumper
 from .playlist_fetcher import PlaylistFetcher
 from .playlist_resolver import PlaylistResolver
 from .prober import Prober, StreamProfile
 from .segment_dumper import SegmentDumper
 from .segment_fetcher import InitSectionData, SegmentData, SegmentFetcher
-from .segment_parser import SegmentParser
-from .segment_remuxer import SegmentRemuxer
 
 __all__ = (
+    'Analyser',
+    'Cutter',
     'InitSectionData',
+    'Limiter',
+    'MetaData',
     'PlaylistDumper',
     'PlaylistFetcher',
     'PlaylistResolver',
@@ -16,7 +21,5 @@ __all__ = (
     'SegmentData',
     'SegmentDumper',
     'SegmentFetcher',
-    'SegmentParser',
-    'SegmentRemuxer',
     'StreamProfile',
 )
diff --git a/src/blrec/hls/operators/analyser.py b/src/blrec/hls/operators/analyser.py
new file mode 100644
index 0000000..4539288
--- /dev/null
+++ b/src/blrec/hls/operators/analyser.py
@@ -0,0 +1,91 @@
+from __future__ import annotations
+
+import logging
+from typing import Optional, Union
+
+import attr
+from reactivex import Observable, abc
+from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
+
+from .prober import Prober, StreamProfile
+from .segment_fetcher import InitSectionData, SegmentData
+from .playlist_dumper import PlaylistDumper
+from .segment_dumper import SegmentDumper
+
+__all__ = ('Analyser', 'MetaData')
+
+logger = logging.getLogger(__name__)
+
+
+@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True)
+class MetaData:
+    duration: float
+    filesize: int
+    width: int
+    height: int
+
+
+class Analyser:
+    def __init__(
+        self,
+        playlist_dumper: PlaylistDumper,
+        segment_dumper: SegmentDumper,
+        prober: Prober,
+    ) -> None:
+        self._playlist_dumper = playlist_dumper
+        self._segment_dumper = segment_dumper
+        self._prober = prober
+
+        self._reset()
+        self._prober.profiles.subscribe(self._on_profile_updated)
+
+    def _reset(self) -> None:
+        self._video_width: int = 0
+        self._video_height: int = 0
+
+    def _on_profile_updated(self, profile: StreamProfile) -> None:
+        video_profile = profile['streams'][0]
+        assert video_profile['codec_type'] == 'video'
+        self._video_width = video_profile['width']
+        self._video_height = video_profile['height']
+
+    def make_metadata(self) -> MetaData:
+        return MetaData(
+            duration=self._playlist_dumper.duration,
+            filesize=self._segment_dumper.filesize,
+            width=self._video_width,
+            height=self._video_height,
+        )
+
+    def __call__(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        return self._analyse(source)
+
+    def _analyse(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        def subscribe(
+            observer: abc.ObserverBase[Union[InitSectionData, SegmentData]],
+            scheduler: Optional[abc.SchedulerBase] = None,
+        ) -> abc.DisposableBase:
+            disposed = False
+            subscription = SerialDisposable()
+
+            self._reset()
+
+            def on_next(item: Union[InitSectionData, SegmentData]) -> None:
+                observer.on_next(item)
+
+            def dispose() -> None:
+                nonlocal disposed
+                disposed = True
+                self._reset()
+
+            subscription.disposable = source.subscribe(
+                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
+            )
+
+            return CompositeDisposable(subscription, Disposable(dispose))
+
+        return Observable(subscribe)
diff --git a/src/blrec/hls/operators/cutter.py b/src/blrec/hls/operators/cutter.py
new file mode 100644
index 0000000..e9ebbc7
--- /dev/null
+++ b/src/blrec/hls/operators/cutter.py
@@ -0,0 +1,90 @@
+from __future__ import annotations
+
+import logging
+from typing import Optional, Tuple, Union
+
+from reactivex import Observable, abc
+from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
+
+from .segment_fetcher import InitSectionData, SegmentData
+from .playlist_dumper import PlaylistDumper
+
+__all__ = ('Cutter',)
+
+
+logger = logging.getLogger(__name__)
+
+
+class Cutter:
+    def __init__(
+        self, playlist_dumper: PlaylistDumper, min_duration: float = 5.0
+    ) -> None:
+        self._playlist_dumper = playlist_dumper
+        self._min_duration = min_duration  # seconds
+
+        self._cutting: bool
+        self._triggered: bool
+        self._reset()
+
+        def on_open(args: Tuple[str, int]) -> None:
+            self._cutting = False
+
+        self._playlist_dumper.file_opened.subscribe(on_open)
+
+    def _reset(self) -> None:
+        self._cutting = False
+        self._triggered = False
+
+    def is_cutting(self) -> bool:
+        return self._cutting
+
+    def can_cut_stream(self) -> bool:
+        if self._triggered or self._cutting:
+            return False
+        return self._playlist_dumper.duration >= self._min_duration
+
+    def cut_stream(self) -> bool:
+        if self.can_cut_stream():
+            self._triggered = True
+            return True
+        return False
+
+    def _add_flag(self, item: Union[InitSectionData, SegmentData]) -> None:
+        item.segment.custom_parser_values['split'] = True
+
+    def __call__(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        return self._cut(source)
+
+    def _cut(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        def subscribe(
+            observer: abc.ObserverBase[Union[InitSectionData, SegmentData]],
+            scheduler: Optional[abc.SchedulerBase] = None,
+        ) -> abc.DisposableBase:
+            disposed = False
+            subscription = SerialDisposable()
+
+            self._reset()
+
+            def on_next(item: Union[InitSectionData, SegmentData]) -> None:
+                if self._triggered:
+                    self._add_flag(item)
+                    self._cutting = True
+                    self._triggered = False
+
+                observer.on_next(item)
+
+            def dispose() -> None:
+                nonlocal disposed
+                disposed = True
+
+            subscription.disposable = source.subscribe(
+                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
+            )
+
+            return CompositeDisposable(subscription, Disposable(dispose))
+
+        return Observable(subscribe)
diff --git a/src/blrec/hls/operators/limiter.py b/src/blrec/hls/operators/limiter.py
new file mode 100644
index 0000000..85ac7a6
--- /dev/null
+++ b/src/blrec/hls/operators/limiter.py
@@ -0,0 +1,93 @@
+from __future__ import annotations
+
+import logging
+from typing import Optional, Union
+
+from reactivex import Observable, abc
+from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
+
+from .segment_fetcher import InitSectionData, SegmentData
+from .playlist_dumper import PlaylistDumper
+from .segment_dumper import SegmentDumper
+
+__all__ = ('Limiter',)
+
+
+logger = logging.getLogger(__name__)
+
+
+class Limiter:
+    def __init__(
+        self,
+        playlist_dumper: PlaylistDumper,
+        segment_dumper: SegmentDumper,
+        *,
+        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._playlist_dumper = playlist_dumper
+        self._segment_dumper = segment_dumper
+
+        self.filesize_limit = filesize_limit
+        self.duration_limit = duration_limit
+
+    def _will_over_limits(self, item: Union[InitSectionData, SegmentData]) -> bool:
+        if (
+            self.filesize_limit > 0
+            and self._segment_dumper.filesize + len(item) >= self.filesize_limit
+        ):
+            logger.debug(
+                'File size will be over the limit: {} + {}'.format(
+                    self._segment_dumper.filesize, len(item)
+                )
+            )
+            return True
+
+        if (
+            self.duration_limit > 0
+            and self._playlist_dumper.duration + float(item.segment.duration)
+            >= self.duration_limit
+        ):
+            logger.debug(
+                'Duration will be over the limit: {} + {}'.format(
+                    self._playlist_dumper.duration, item.segment.duration
+                )
+            )
+            return True
+
+        return False
+
+    def _add_flag(self, item: Union[InitSectionData, SegmentData]) -> None:
+        item.segment.custom_parser_values['split'] = True
+
+    def __call__(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        return self._limit(source)
+
+    def _limit(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
+        def subscribe(
+            observer: abc.ObserverBase[Union[InitSectionData, SegmentData]],
+            scheduler: Optional[abc.SchedulerBase] = None,
+        ) -> abc.DisposableBase:
+            disposed = False
+            subscription = SerialDisposable()
+
+            def on_next(item: Union[InitSectionData, SegmentData]) -> None:
+                if self._will_over_limits(item):
+                    self._add_flag(item)
+                observer.on_next(item)
+
+            def dispose() -> None:
+                nonlocal disposed
+                disposed = True
+
+            subscription.disposable = source.subscribe(
+                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
+            )
+
+            return CompositeDisposable(subscription, Disposable(dispose))
+
+        return Observable(subscribe)
diff --git a/src/blrec/hls/operators/playlist_dumper.py b/src/blrec/hls/operators/playlist_dumper.py
index a5600b4..9101682 100644
--- a/src/blrec/hls/operators/playlist_dumper.py
+++ b/src/blrec/hls/operators/playlist_dumper.py
@@ -2,31 +2,52 @@ from __future__ import annotations
 
 import io
 import logging
-import os
 from copy import deepcopy
 from decimal import Decimal
-from typing import Callable, Optional, Tuple
+from pathlib import PurePath
+from typing import Optional, Tuple, Union
 
 import m3u8
 from reactivex import Observable, Subject, abc
 from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
 
+from ..helpler import sequence_number_of
+from .segment_fetcher import InitSectionData, SegmentData
+from .segment_dumper import SegmentDumper
+
 __all__ = ('PlaylistDumper',)
 
 logger = logging.getLogger(__name__)
 
 
 class PlaylistDumper:
-    def __init__(self, path_provider: Callable[..., Tuple[str, int]]) -> None:
-        self._path_provider = path_provider
+    def __init__(self, segment_dumper: SegmentDumper) -> None:
+        self._segment_dumper = segment_dumper
+
+        def on_open(args: Tuple[str, int]) -> None:
+            self._open_file(*args)
+
+        def on_close(path: str) -> None:
+            self._close_file()
+            self._reset()
+
+        self._segment_dumper.file_opened.subscribe(on_open)
+        self._segment_dumper.file_closed.subscribe(on_close)
+
         self._file_opened: Subject[Tuple[str, int]] = Subject()
         self._file_closed: Subject[str] = Subject()
+        self._duration_updated: Subject[float] = Subject()
+        self._segments_lost: Subject[int] = Subject()
+
         self._reset()
 
     def _reset(self) -> None:
         self._path: str = ''
         self._file: Optional[io.TextIOWrapper] = None
         self._duration: Decimal = Decimal()
+        self._last_segment: Optional[m3u8.Segment] = None
+        self._last_seq_num: Optional[int] = None
+        self._num_of_segments_lost: int = 0
 
     @property
     def path(self) -> str:
@@ -36,6 +57,10 @@ class PlaylistDumper:
     def duration(self) -> float:
         return float(self._duration)
 
+    @property
+    def num_of_segments_lost(self) -> int:
+        return self._num_of_segments_lost
+
     @property
     def file_opened(self) -> Observable[Tuple[str, int]]:
         return self._file_opened
@@ -44,17 +69,27 @@ class PlaylistDumper:
     def file_closed(self) -> Observable[str]:
         return self._file_closed
 
-    def __call__(self, source: Observable[m3u8.M3U8]) -> Observable[m3u8.Segment]:
+    @property
+    def duration_updated(self) -> Observable[float]:
+        return self._duration_updated
+
+    @property
+    def segments_lost(self) -> Observable[int]:
+        return self._segments_lost
+
+    def __call__(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
         return self._dump(source)
 
-    def _open_file(self) -> None:
-        path, timestamp = self._path_provider()
-        root, ext = os.path.splitext(path)
-        os.makedirs(root, exist_ok=True)
-        self._path = os.path.join(root, 'index.m3u8')
+    def _open_file(self, video_path: str, timestamp: int) -> None:
+        path = PurePath(video_path)
+        self._video_file_name = path.name
+        self._path = str(path.with_suffix('.m3u8'))
         self._file = open(self._path, 'wt', encoding='utf8')  # type: ignore
         logger.debug(f'Opened file: {self._path}')
         self._file_opened.on_next((self._path, timestamp))
+        self._header_dumped = False
 
     def _close_file(self) -> None:
         if self._file is not None and not self._file.closed:
@@ -63,97 +98,87 @@ class PlaylistDumper:
             logger.debug(f'Closed file: {self._path}')
             self._file_closed.on_next(self._path)
 
-    def _name_of(self, uri: str) -> str:
-        name, ext = os.path.splitext(uri)
-        return name
+    def _dump_header(self, item: InitSectionData) -> None:
+        if self._header_dumped:
+            return
+        playlist: m3u8.M3U8 = deepcopy(item.segment.custom_parser_values['playlist'])
+        playlist.segments.clear()
+        playlist.is_endlist = False
+        assert self._file is not None
+        self._file.write(playlist.dumps())
+        self._file.flush()
+        self._header_dumped = True
 
-    def _sequence_number_of(self, uri: str) -> int:
-        return int(self._name_of(uri))
-
-    def _replace_uri(self, segment: m3u8.Segment) -> m3u8.Segment:
-        copied_seg = deepcopy(segment)
-        if init_section := getattr(copied_seg, 'init_section', None):
-            init_section.uri = f'segments/{init_section.uri}'
-        uri = segment.uri
-        name = self._name_of(uri)
-        copied_seg.uri = 'segments/%s/%s' % (name[:-3], uri)
-        return copied_seg
-
-    def _replace_all_uri(self, playlist: m3u8.M3U8) -> m3u8.M3U8:
-        copied_playlist = deepcopy(playlist)
-        copied_playlist.segments = m3u8.SegmentList(
-            self._replace_uri(s) for s in copied_playlist.segments
+    def _dump_segment(self, init_item: InitSectionData, item: SegmentData) -> None:
+        seg = self._make_segment(
+            item.segment,
+            self._video_file_name,
+            init_section_byterange=f'{len(init_item)}@{init_item.offset}',
+            segment_byterange=f'{len(item)}@{item.offset}',
         )
-        return copied_playlist
+
+        curr_seq_num = sequence_number_of(item.segment.uri)
+        if self._last_seq_num is not None:
+            if self._last_seq_num + 1 != curr_seq_num:
+                seg.discontinuity = True
+            if self._last_seq_num + 1 < curr_seq_num:
+                self._num_of_segments_lost += curr_seq_num - self._last_seq_num - 1
+                self._segments_lost.on_next(self._num_of_segments_lost)
+
+        assert self._file is not None
+        self._file.write(seg.dumps(self._last_segment) + '\n')
+        self._file.flush()
+
+        self._last_segment = seg
+        self._last_seq_num = curr_seq_num
+
+    def _make_segment(
+        self,
+        segment: m3u8.Segment,
+        uri: str,
+        init_section_byterange: str,
+        segment_byterange: str,
+    ) -> m3u8.Segment:
+        seg = deepcopy(segment)
+        if init_section := getattr(seg, 'init_section', None):
+            init_section.uri = uri
+            init_section.byterange = init_section_byterange
+        seg.uri = uri
+        seg.byterange = segment_byterange
+        seg.title += '|' + segment.uri
+        return seg
 
     def _update_duration(self, segment: m3u8.Segment) -> None:
         self._duration += Decimal(str(segment.duration))
+        self._duration_updated.on_next(float(self._duration))
 
-    def _dump(self, source: Observable[m3u8.M3U8]) -> Observable[m3u8.Segment]:
+    def _dump(
+        self, source: Observable[Union[InitSectionData, SegmentData]]
+    ) -> Observable[Union[InitSectionData, SegmentData]]:
         def subscribe(
-            observer: abc.ObserverBase[m3u8.Segment],
+            observer: abc.ObserverBase[Union[InitSectionData, SegmentData]],
             scheduler: Optional[abc.SchedulerBase] = None,
         ) -> abc.DisposableBase:
             disposed = False
             subscription = SerialDisposable()
+            last_init_item: Optional[InitSectionData] = None
 
-            last_segment: Optional[m3u8.Segment] = None
-            last_sequence_number: Optional[int] = None
-            first_playlist_dumped: bool = False
-
-            self._close_file()
-            self._reset()
-
-            def on_next(playlist: m3u8.M3U8) -> None:
-                nonlocal last_sequence_number, last_segment, first_playlist_dumped
-
-                if playlist.is_endlist:
-                    logger.debug('Playlist ended')
-
+            def on_next(item: Union[InitSectionData, SegmentData]) -> None:
+                nonlocal last_init_item
                 try:
-                    if not first_playlist_dumped:
-                        self._close_file()
-                        self._reset()
-                        self._open_file()
-                        assert self._file is not None
-                        playlist.is_endlist = False
-                        self._file.write(self._replace_all_uri(playlist).dumps())
-                        self._file.flush()
-                        for seg in playlist.segments:
-                            observer.on_next(seg)
-                            self._update_duration(seg)
-                            last_segment = seg
-                            last_sequence_number = self._sequence_number_of(seg.uri)
-                        first_playlist_dumped = True
-                        logger.debug('The first playlist has been dumped')
-                        return
-
-                    assert self._file is not None
-                    for seg in playlist.segments:
-                        num = self._sequence_number_of(seg.uri)
-                        discontinuity = False
-                        if last_sequence_number is not None:
-                            if last_sequence_number >= num:
-                                continue
-                            if last_sequence_number + 1 != num:
-                                logger.warning(
-                                    'Segments discontinuous: '
-                                    f'last sequence number: {last_sequence_number}, '
-                                    f'current sequence number: {num}'
-                                )
-                                discontinuity = True
-                        new_seg = self._replace_uri(seg)
-                        new_seg.discontinuity = discontinuity
-                        new_last_seg = self._replace_uri(last_segment)
-                        self._file.write(new_seg.dumps(new_last_seg) + '\n')
-                        observer.on_next(seg)
-                        self._update_duration(seg)
-                        last_segment = seg
-                        last_sequence_number = num
+                    if isinstance(item, InitSectionData):
+                        self._dump_header(item)
+                        last_init_item = item
+                    else:
+                        assert last_init_item is not None
+                        self._dump_segment(last_init_item, item)
+                        self._update_duration(item.segment)
                 except Exception as e:
                     self._close_file()
                     self._reset()
                     observer.on_error(e)
+                else:
+                    observer.on_next(item)
 
             def on_completed() -> None:
                 self._close_file()
@@ -167,10 +192,9 @@ class PlaylistDumper:
 
             def dispose() -> None:
                 nonlocal disposed
-                nonlocal last_segment, last_sequence_number
+                nonlocal last_init_item
                 disposed = True
-                last_segment = None
-                last_sequence_number = None
+                last_init_item = None
                 self._close_file()
                 self._reset()
 
diff --git a/src/blrec/hls/operators/playlist_fetcher.py b/src/blrec/hls/operators/playlist_fetcher.py
index 4efc6d6..8a8e224 100644
--- a/src/blrec/hls/operators/playlist_fetcher.py
+++ b/src/blrec/hls/operators/playlist_fetcher.py
@@ -49,9 +49,14 @@ class PlaylistFetcher(SupportDebugMixin):
 
             def on_next(url: str) -> None:
                 logger.info(f'Fetching playlist... {url}')
+
                 while not disposed:
                     try:
                         content = self._fetch_playlist(url)
+                    except Exception as e:
+                        logger.warning(f'Failed to fetch playlist: {repr(e)}')
+                        observer.on_error(e)
+                    else:
                         if self._debug:
                             playlist_debug_file.write(content + '\n')
                         playlist = m3u8.loads(content, uri=url)
@@ -59,12 +64,9 @@ class PlaylistFetcher(SupportDebugMixin):
                             url = self._get_best_quality_url(playlist)
                             logger.debug('Playlist changed to variant playlist')
                             on_next(url)
-                    except Exception as e:
-                        logger.warning(f'Failed to fetch playlist: {repr(e)}')
-                        observer.on_error(e)
-                    else:
-                        observer.on_next(playlist)
-                        time.sleep(1)
+                        else:
+                            observer.on_next(playlist)
+                            time.sleep(1)
 
             def dispose() -> None:
                 nonlocal disposed
@@ -96,10 +98,15 @@ class PlaylistFetcher(SupportDebugMixin):
             )
         ),
         wait=wait_exponential(multiplier=0.1, max=1),
-        stop=stop_after_delay(10),
+        stop=stop_after_delay(8),
     )
     def _fetch_playlist(self, url: str) -> str:
-        response = self._session.get(url, headers=self._live.headers, timeout=3)
-        response.raise_for_status()
-        response.encoding = 'utf-8'
-        return response.text
+        try:
+            response = self._session.get(url, headers=self._live.headers, timeout=3)
+            response.raise_for_status()
+        except Exception as e:
+            logger.debug(f'Failed to fetch playlist: {repr(e)}')
+            raise
+        else:
+            response.encoding = 'utf-8'
+            return response.text
diff --git a/src/blrec/hls/operators/playlist_resolver.py b/src/blrec/hls/operators/playlist_resolver.py
index 6d9cda6..1deac56 100644
--- a/src/blrec/hls/operators/playlist_resolver.py
+++ b/src/blrec/hls/operators/playlist_resolver.py
@@ -1,7 +1,6 @@
 from __future__ import annotations
 
 import logging
-import os
 from typing import Optional
 
 import m3u8
@@ -13,6 +12,7 @@ from blrec.core import operators as core_ops
 from blrec.utils import operators as utils_ops
 
 from ..exceptions import NoNewSegments
+from ..helpler import sequence_number_of
 
 __all__ = ('PlaylistResolver',)
 
@@ -23,6 +23,8 @@ logger = logging.getLogger(__name__)
 class PlaylistResolver:
     def __init__(self, stream_url_resolver: core_ops.StreamURLResolver) -> None:
         self._stream_url_resolver = stream_url_resolver
+        self._last_media_sequence: int = 0
+        self._last_sequence_number: Optional[int] = None
 
     def __call__(self, source: Observable[m3u8.M3U8]) -> Observable[m3u8.Segment]:
         return self._solve(source).pipe(
@@ -30,14 +32,10 @@ class PlaylistResolver:
             utils_ops.retry(should_retry=self._should_retry),
         )
 
-    def _name_of(self, uri: str) -> str:
-        name, ext = os.path.splitext(uri)
-        return name
-
-    def _sequence_number_of(self, uri: str) -> int:
-        return int(self._name_of(uri))
-
     def _solve(self, source: Observable[m3u8.M3U8]) -> Observable[m3u8.Segment]:
+        self._last_media_sequence = 0
+        self._last_sequence_number = None
+
         def subscribe(
             observer: abc.ObserverBase[m3u8.Segment],
             scheduler: Optional[abc.SchedulerBase] = None,
@@ -46,29 +44,43 @@ class PlaylistResolver:
             subscription = SerialDisposable()
 
             attempts: int = 0
-            last_sequence_number: Optional[int] = None
 
             def on_next(playlist: m3u8.M3U8) -> None:
-                nonlocal attempts, last_sequence_number
+                nonlocal attempts
+                discontinuity = False
 
                 if playlist.is_endlist:
                     logger.debug('Playlist ended')
 
+                if playlist.media_sequence < self._last_media_sequence:
+                    logger.warning(
+                        'Segments discontinuous: '
+                        f'last media sequence: {self._last_media_sequence}, '
+                        f'current media sequence: {playlist.media_sequence}'
+                    )
+                    discontinuity = True
+                    self._last_sequence_number = None
+                self._last_media_sequence = playlist.media_sequence
+
                 new_segments = []
                 for seg in playlist.segments:
-                    num = self._sequence_number_of(seg.uri)
-                    if last_sequence_number is not None:
-                        if last_sequence_number >= num:
+                    num = sequence_number_of(seg.uri)
+                    if self._last_sequence_number is not None:
+                        if num <= self._last_sequence_number:
                             continue
-                        if last_sequence_number + 1 != num:
+                        if num == self._last_sequence_number + 1:
+                            discontinuity = False
+                        else:
                             logger.warning(
                                 'Segments discontinuous: '
-                                f'last sequence number: {last_sequence_number}, '
+                                f'last sequence number: {self._last_sequence_number}, '
                                 f'current sequence number: {num}'
                             )
-                            seg.discontinuity = True
+                            discontinuity = True
+                    seg.discontinuity = discontinuity
+                    seg.custom_parser_values['playlist'] = playlist
                     new_segments.append(seg)
-                    last_sequence_number = num
+                    self._last_sequence_number = num
 
                 if not new_segments:
                     attempts += 1
@@ -84,9 +96,7 @@ class PlaylistResolver:
 
             def dispose() -> None:
                 nonlocal disposed
-                nonlocal last_sequence_number
                 disposed = True
-                last_sequence_number = None
 
             subscription.disposable = source.subscribe(
                 on_next, observer.on_error, observer.on_completed, scheduler=scheduler
diff --git a/src/blrec/hls/operators/prober.py b/src/blrec/hls/operators/prober.py
index 0157e04..7d42c8e 100644
--- a/src/blrec/hls/operators/prober.py
+++ b/src/blrec/hls/operators/prober.py
@@ -7,7 +7,7 @@ from typing import List, Optional, Union
 from reactivex import Observable, Subject, abc
 from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
 
-from blrec.utils.ffprobe import StreamProfile, ffprobe
+from blrec.utils.ffprobe import StreamProfile, ffprobe_on
 
 from .segment_fetcher import InitSectionData, SegmentData
 
@@ -88,4 +88,4 @@ class Prober:
         def on_error(e: Exception) -> None:
             logger.warning(f'Failed to probe stream by ffprobe: {repr(e)}')
 
-        ffprobe(bytes_io.getvalue()).subscribe(on_next, on_error)
+        ffprobe_on(bytes_io.getvalue()).subscribe(on_next, on_error)
diff --git a/src/blrec/hls/operators/segment_dumper.py b/src/blrec/hls/operators/segment_dumper.py
index 0230707..9e19d11 100644
--- a/src/blrec/hls/operators/segment_dumper.py
+++ b/src/blrec/hls/operators/segment_dumper.py
@@ -1,13 +1,17 @@
+import io
 import logging
-import os
-from typing import Optional, Tuple, Union
+from datetime import datetime, timedelta, timezone
+from pathlib import PurePath
+from typing import Callable, Optional, Tuple, Union
 
+import attr
 from reactivex import Observable, Subject, abc
 from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
 
-from blrec.hls.operators.segment_fetcher import InitSectionData, SegmentData
+from blrec.utils.ffprobe import ffprobe
 
-from .playlist_dumper import PlaylistDumper
+from ..helpler import sequence_number_of
+from .segment_fetcher import InitSectionData, SegmentData
 
 __all__ = ('SegmentDumper',)
 
@@ -15,17 +19,31 @@ logger = logging.getLogger(__name__)
 
 
 class SegmentDumper:
-    def __init__(self, playlist_dumper: PlaylistDumper) -> None:
-        self._playlist_dumper = playlist_dumper
-        self._out_dir: str = ''
-
-        def on_next(args: Tuple[str, int]) -> None:
-            path, timestamp = args
-            self._out_dir = os.path.dirname(path)
-
-        self._playlist_dumper.file_opened.subscribe(on_next)
+    def __init__(
+        self, path_provider: Callable[[Optional[int]], Tuple[str, int]]
+    ) -> None:
+        self._path_provider = path_provider
         self._file_opened: Subject[Tuple[str, int]] = Subject()
         self._file_closed: Subject[str] = Subject()
+        self._reset()
+
+    def _reset(self) -> None:
+        self._path: str = ''
+        self._file: Optional[io.BufferedWriter] = None
+        self._filesize: int = 0
+        self._record_start_time: Optional[int] = None
+
+    @property
+    def path(self) -> str:
+        return self._path
+
+    @property
+    def filesize(self) -> int:
+        return self._filesize
+
+    @property
+    def record_start_time(self) -> Optional[int]:
+        return self._record_start_time
 
     @property
     def file_opened(self) -> Observable[Tuple[str, int]]:
@@ -40,6 +58,84 @@ class SegmentDumper:
     ) -> Observable[Union[InitSectionData, SegmentData]]:
         return self._dump(source)
 
+    def _open_file(self) -> None:
+        assert self._record_start_time is not None
+        path, timestamp = self._path_provider(self._record_start_time)
+        self._path = str(PurePath(path).with_suffix('.m4s'))
+        self._file = open(self._path, 'wb')  # type: ignore
+        logger.debug(f'Opened file: {self._path}')
+        self._file_opened.on_next((self._path, timestamp))
+
+    def _close_file(self) -> None:
+        if self._file is not None and not self._file.closed:
+            self._file.close()
+            logger.debug(f'Closed file: {self._path}')
+            self._file_closed.on_next(self._path)
+
+    def _write_data(self, item: Union[InitSectionData, SegmentData]) -> Tuple[int, int]:
+        assert self._file is not None
+        offset = self._file.tell()
+        size = self._file.write(item.payload)
+        assert size == len(item)
+        return offset, size
+
+    def _update_filesize(self, size: int) -> None:
+        self._filesize += size
+
+    def _set_record_start_time(self, item: Union[InitSectionData, SegmentData]) -> None:
+        seq = sequence_number_of(item.segment.uri)
+        dt = datetime.utcfromtimestamp(seq)
+        tz = timezone(timedelta(hours=8))
+        ts = dt.replace(year=datetime.today().year, tzinfo=tz).timestamp()
+        self._record_start_time = int(ts)
+
+    def _must_split_file(
+        self, prev_init_item: Optional[InitSectionData], curr_init_item: InitSectionData
+    ) -> bool:
+        if prev_init_item is None:
+            curr_profile = ffprobe(curr_init_item.payload)
+            logger.debug(f'current init section profile: {curr_profile}')
+            return True
+
+        prev_profile = ffprobe(prev_init_item.payload)
+        logger.debug(f'previous init section profile: {prev_profile}')
+        curr_profile = ffprobe(curr_init_item.payload)
+        logger.debug(f'current init section profile: {curr_profile}')
+
+        prev_video_profile = prev_profile['streams'][0]
+        prev_audio_profile = prev_profile['streams'][1]
+        assert prev_video_profile['codec_type'] == 'video'
+        assert prev_audio_profile['codec_type'] == 'audio'
+
+        curr_video_profile = curr_profile['streams'][0]
+        curr_audio_profile = curr_profile['streams'][1]
+        assert curr_video_profile['codec_type'] == 'video'
+        assert curr_audio_profile['codec_type'] == 'audio'
+
+        if (
+            prev_video_profile['codec_name'] != curr_video_profile['codec_name']
+            or prev_video_profile['width'] != curr_video_profile['width']
+            or prev_video_profile['height'] != curr_video_profile['height']
+            or prev_video_profile['coded_width'] != curr_video_profile['coded_width']
+            or prev_video_profile['coded_height'] != curr_video_profile['coded_height']
+        ):
+            logger.warning('Video parameters changed')
+            return True
+
+        if (
+            prev_audio_profile['codec_name'] != curr_audio_profile['codec_name']
+            or prev_audio_profile['channels'] != curr_audio_profile['channels']
+            or prev_audio_profile['sample_rate'] != curr_audio_profile['sample_rate']
+            or prev_audio_profile['bit_rate'] != curr_audio_profile['bit_rate']
+        ):
+            logger.warning('Audio parameters changed')
+            return True
+
+        return False
+
+    def _need_split_file(self, item: Union[InitSectionData, SegmentData]) -> bool:
+        return item.segment.custom_parser_values.get('split', False)
+
     def _dump(
         self, source: Observable[Union[InitSectionData, SegmentData]]
     ) -> Observable[Union[InitSectionData, SegmentData]]:
@@ -47,31 +143,63 @@ class SegmentDumper:
             observer: abc.ObserverBase[Union[InitSectionData, SegmentData]],
             scheduler: Optional[abc.SchedulerBase] = None,
         ) -> abc.DisposableBase:
+            disposed = False
             subscription = SerialDisposable()
+            last_init_item: Optional[InitSectionData] = None
 
             def on_next(item: Union[InitSectionData, SegmentData]) -> None:
+                nonlocal last_init_item
+                split_file = False
+
                 if isinstance(item, InitSectionData):
-                    uri = item.init_section.uri
-                    path = os.path.join(self._out_dir, 'segments', uri)
-                else:
-                    uri = item.segment.uri
-                    name, ext = os.path.splitext(uri)
-                    path = os.path.join(self._out_dir, 'segments', name[:-3], uri)
-                os.makedirs(os.path.dirname(path), exist_ok=True)
+                    split_file = self._must_split_file(last_init_item, item)
+                    last_init_item = item
+
+                if not split_file:
+                    split_file = self._need_split_file(item)
+
+                if split_file:
+                    self._close_file()
+                    self._reset()
+                    self._set_record_start_time(item)
+                    self._open_file()
+
                 try:
-                    with open(path, 'wb') as file:
-                        file.write(item.payload)
+                    if split_file and not isinstance(item, InitSectionData):
+                        assert last_init_item is not None
+                        offset, size = self._write_data(last_init_item)
+                        self._update_filesize(size)
+                        observer.on_next(attr.evolve(last_init_item, offset=offset))
+
+                    offset, size = self._write_data(item)
+                    self._update_filesize(size)
+                    observer.on_next(attr.evolve(item, offset=offset))
                 except Exception as e:
-                    logger.error(f'Failed to dump segmemt: {repr(e)}')
+                    logger.error(f'Failed to write data: {repr(e)}')
+                    self._close_file()
+                    self._reset()
                     observer.on_error(e)
-                else:
-                    observer.on_next(item)
+
+            def on_completed() -> None:
+                self._close_file()
+                self._reset()
+                observer.on_completed()
+
+            def on_error(e: Exception) -> None:
+                self._close_file()
+                self._reset()
+                observer.on_error(e)
 
             def dispose() -> None:
-                pass
+                nonlocal disposed
+                nonlocal last_init_item
+                disposed = True
+                last_init_item = None
+                self._close_file()
+                self._reset()
 
             subscription.disposable = source.subscribe(
-                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
+                on_next, on_error, on_completed, scheduler=scheduler
             )
 
             return CompositeDisposable(subscription, Disposable(dispose))
diff --git a/src/blrec/hls/operators/segment_fetcher.py b/src/blrec/hls/operators/segment_fetcher.py
index 93dabee..f1559be 100644
--- a/src/blrec/hls/operators/segment_fetcher.py
+++ b/src/blrec/hls/operators/segment_fetcher.py
@@ -8,7 +8,6 @@ import attr
 import m3u8
 import requests
 import urllib3
-from m3u8.model import InitializationSection
 from reactivex import Observable, abc
 from reactivex import operators as ops
 from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
@@ -36,8 +35,9 @@ logger = logging.getLogger(__name__)
 
 @attr.s(auto_attribs=True, slots=True, frozen=True)
 class InitSectionData:
-    init_section: InitializationSection
+    segment: m3u8.Segment
     payload: bytes
+    offset: int = 0
 
     def __len__(self) -> int:
         return len(self.payload)
@@ -47,6 +47,7 @@ class InitSectionData:
 class SegmentData:
     segment: m3u8.Segment
     payload: bytes
+    offset: int = 0
 
     def __len__(self) -> int:
         return len(self.payload)
@@ -116,9 +117,7 @@ class SegmentFetcher:
                                     f'init section url: {url}'
                                 )
                                 data = _data
-                        observer.on_next(
-                            InitSectionData(init_section=seg.init_section, payload=data)
-                        )
+                        observer.on_next(InitSectionData(segment=seg, payload=data))
                     last_segment = seg
 
                     url = seg.absolute_uri
@@ -172,8 +171,13 @@ class SegmentFetcher:
         stop=stop_after_delay(60),
     )
     def _fetch_segment(self, url: str) -> bytes:
-        with self._session.get(url, headers=self._live.headers, timeout=10) as response:
+        try:
+            response = self._session.get(url, headers=self._live.headers, timeout=5)
             response.raise_for_status()
+        except Exception as e:
+            logger.debug(f'Failed to fetch segment {url}: {repr(e)}')
+            raise
+        else:
             return response.content
 
     def _should_retry(self, exc: Exception) -> bool:
@@ -189,3 +193,4 @@ class SegmentFetcher:
             'Fetch segments failed continuously, trying to update the stream url.'
         )
         self._stream_url_resolver.reset()
+        self._stream_url_resolver.rotate_routes()
diff --git a/src/blrec/hls/operators/segment_parser.py b/src/blrec/hls/operators/segment_parser.py
deleted file mode 100644
index 3c78824..0000000
--- a/src/blrec/hls/operators/segment_parser.py
+++ /dev/null
@@ -1,104 +0,0 @@
-from __future__ import annotations
-
-import io
-import logging
-from typing import Optional
-
-from reactivex import Observable, abc
-from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
-
-from blrec.flv.common import (
-    is_audio_sequence_header,
-    is_metadata_tag,
-    is_video_sequence_header,
-)
-from blrec.flv.io import FlvReader
-from blrec.flv.models import AudioTag, FlvHeader, ScriptTag, VideoTag
-from blrec.flv.operators.typing import FLVStream, FLVStreamItem
-
-__all__ = ('SegmentParser',)
-
-
-logger = logging.getLogger(__name__)
-
-
-class SegmentParser:
-    def __init__(self) -> None:
-        self._backup_timestamp = True
-
-    def __call__(self, source: Observable[bytes]) -> FLVStream:
-        return self._parse(source)
-
-    def _parse(self, source: Observable[bytes]) -> FLVStream:
-        def subscribe(
-            observer: abc.ObserverBase[FLVStreamItem],
-            scheduler: Optional[abc.SchedulerBase] = None,
-        ) -> abc.DisposableBase:
-            disposed = False
-            subscription = SerialDisposable()
-
-            last_flv_header: Optional[FlvHeader] = None
-            last_metadata_tag: Optional[ScriptTag] = None
-            last_audio_sequence_header: Optional[AudioTag] = None
-            last_video_sequence_header: Optional[VideoTag] = None
-
-            def reset() -> None:
-                nonlocal last_flv_header, last_metadata_tag
-                nonlocal last_audio_sequence_header, last_video_sequence_header
-                last_flv_header = None
-                last_metadata_tag = None
-                last_audio_sequence_header = None
-                last_video_sequence_header = None
-
-            def on_next(data: bytes) -> None:
-                nonlocal last_flv_header, last_metadata_tag
-                nonlocal last_audio_sequence_header, last_video_sequence_header
-
-                if b'' == data:
-                    reset()
-                    return
-
-                try:
-                    reader = FlvReader(
-                        io.BytesIO(data), backup_timestamp=self._backup_timestamp
-                    )
-
-                    flv_header = reader.read_header()
-                    if not last_flv_header:
-                        observer.on_next(flv_header)
-                        last_flv_header = flv_header
-                    else:
-                        assert last_flv_header == flv_header
-
-                    while not disposed:
-                        tag = reader.read_tag()
-                        if is_metadata_tag(tag):
-                            if last_metadata_tag is not None:
-                                continue
-                            last_metadata_tag = tag
-                        elif is_video_sequence_header(tag):
-                            if tag == last_video_sequence_header:
-                                continue
-                            last_video_sequence_header = tag
-                        elif is_audio_sequence_header(tag):
-                            if tag == last_audio_sequence_header:
-                                continue
-                            last_audio_sequence_header = tag
-                        observer.on_next(tag)
-                except EOFError:
-                    pass
-                except Exception as e:
-                    observer.on_error(e)
-
-            def dispose() -> None:
-                nonlocal disposed
-                disposed = True
-                reset()
-
-            subscription.disposable = source.subscribe(
-                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
-            )
-
-            return CompositeDisposable(subscription, Disposable(dispose))
-
-        return Observable(subscribe)
diff --git a/src/blrec/hls/operators/segment_remuxer.py b/src/blrec/hls/operators/segment_remuxer.py
deleted file mode 100644
index 56add94..0000000
--- a/src/blrec/hls/operators/segment_remuxer.py
+++ /dev/null
@@ -1,111 +0,0 @@
-from __future__ import annotations
-
-import io
-import logging
-import os
-from typing import Optional, Union
-
-import av
-from reactivex import Observable, abc
-from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposable
-
-from blrec.bili.live import Live
-
-from .segment_fetcher import InitSectionData, SegmentData
-
-__all__ = ('SegmentRemuxer',)
-
-
-logger = logging.getLogger(__name__)
-
-TRACE_REMUX_SEGMENT = bool(os.environ.get('BLREC_TRACE_REMUX_SEGMENT'))
-TRACE_LIBAV = bool(os.environ.get('BLREC_TRACE_LIBAV'))
-if TRACE_LIBAV:
-    logging.getLogger('libav').setLevel(5)
-else:
-    av.logging.set_level(av.logging.FATAL)
-
-
-class SegmentRemuxer:
-    def __init__(self, live: Live) -> None:
-        self._live = live
-
-    def __call__(
-        self, source: Observable[Union[InitSectionData, SegmentData]]
-    ) -> Observable[bytes]:
-        return self._remux(source)
-
-    def _remux(
-        self, source: Observable[Union[InitSectionData, SegmentData]]
-    ) -> Observable[bytes]:
-        def subscribe(
-            observer: abc.ObserverBase[bytes],
-            scheduler: Optional[abc.SchedulerBase] = None,
-        ) -> abc.DisposableBase:
-            disposed = False
-            subscription = SerialDisposable()
-
-            init_section_data: Optional[bytes] = None
-
-            def reset() -> None:
-                nonlocal init_section_data
-                init_section_data = None
-
-            def on_next(data: Union[InitSectionData, SegmentData]) -> None:
-                nonlocal init_section_data
-
-                if isinstance(data, InitSectionData):
-                    init_section_data = data.payload
-                    observer.on_next(b'')
-                    return
-
-                if init_section_data is None:
-                    return
-
-                try:
-                    remuxed_data = self._remux_segemnt(init_section_data + data.payload)
-                except av.FFmpegError as e:
-                    logger.warning(f'Failed to remux segment: {repr(e)}', exc_info=e)
-                else:
-                    observer.on_next(remuxed_data)
-
-            def dispose() -> None:
-                nonlocal disposed
-                disposed = True
-                reset()
-
-            subscription.disposable = source.subscribe(
-                on_next, observer.on_error, observer.on_completed, scheduler=scheduler
-            )
-
-            return CompositeDisposable(subscription, Disposable(dispose))
-
-        return Observable(subscribe)
-
-    def _remux_segemnt(self, data: bytes, format: str = 'flv') -> bytes:
-        in_file = io.BytesIO(data)
-        out_file = io.BytesIO()
-
-        with av.open(in_file) as in_container:
-            with av.open(out_file, mode='w', format=format) as out_container:
-                in_video_stream = in_container.streams.video[0]
-                in_audio_stream = in_container.streams.audio[0]
-                out_video_stream = out_container.add_stream(template=in_video_stream)
-                out_audio_stream = out_container.add_stream(template=in_audio_stream)
-
-                for packet in in_container.demux():
-                    if TRACE_REMUX_SEGMENT:
-                        logger.debug(repr(packet))
-                    # We need to skip the "flushing" packets that `demux` generates.
-                    if packet.dts is None:
-                        continue
-                    # We need to assign the packet to the new stream.
-                    if packet.stream.type == 'video':
-                        packet.stream = out_video_stream
-                    elif packet.stream.type == 'audio':
-                        packet.stream = out_audio_stream
-                    else:
-                        raise NotImplementedError(packet.stream.type)
-                    out_container.mux(packet)
-
-        return out_file.getvalue()
diff --git a/src/blrec/notification/notifiers.py b/src/blrec/notification/notifiers.py
index fbdff50..aacd760 100644
--- a/src/blrec/notification/notifiers.py
+++ b/src/blrec/notification/notifiers.py
@@ -47,7 +47,7 @@ __all__ = (
     'PushdeerNotifier',
     'PushplusNotifier',
     'TelegramNotifier',
-    'BarkNotifer',
+    'BarkNotifier',
 )
 
 
diff --git a/src/blrec/notification/providers.py b/src/blrec/notification/providers.py
index 873b8c7..007620d 100644
--- a/src/blrec/notification/providers.py
+++ b/src/blrec/notification/providers.py
@@ -296,7 +296,7 @@ class Bark(MessagingProvider):
             "body": content,
             "device_key": self.pushkey,
             "badge": 1,
-            "icon": "https://raw.githubusercontent.com/acgnhiki/blrec/master/webapp/src/assets/icons/icon-72x72.png",
+            "icon": "https://raw.githubusercontent.com/acgnhiki/blrec/master/webapp/src/assets/icons/icon-72x72.png",  # noqa
             "group": "blrec",
         }
         async with aiohttp.ClientSession(raise_for_status=True) as session:
diff --git a/src/blrec/path/__init__.py b/src/blrec/path/__init__.py
index 40d3e13..9917b73 100644
--- a/src/blrec/path/__init__.py
+++ b/src/blrec/path/__init__.py
@@ -4,9 +4,12 @@ from .helpers import (
     danmaku_path,
     escape_path,
     extra_metadata_path,
+    ffmpeg_metadata_path,
     file_exists,
+    playlist_path,
     raw_danmaku_path,
     record_metadata_path,
+    video_path,
 )
 
 __all__ = (
@@ -15,7 +18,10 @@ __all__ = (
     'danmaku_path',
     'escape_path',
     'extra_metadata_path',
+    'ffmpeg_metadata_path',
     'file_exists',
+    'playlist_path',
     'raw_danmaku_path',
     'record_metadata_path',
+    'video_path',
 )
diff --git a/src/blrec/path/helpers.py b/src/blrec/path/helpers.py
index f08c972..4757f06 100644
--- a/src/blrec/path/helpers.py
+++ b/src/blrec/path/helpers.py
@@ -6,6 +6,7 @@ __all__ = (
     'cover_path',
     'create_file',
     'danmaku_path',
+    'playlist_path',
     'escape_path',
     'extra_metadata_path',
     'ffmpeg_metadata_path',
@@ -29,6 +30,14 @@ def danmaku_path(video_path: str) -> str:
     return str(PurePath(video_path).with_suffix('.xml'))
 
 
+def playlist_path(video_path: str) -> str:
+    return str(PurePath(video_path).with_suffix('.m3u8'))
+
+
+def video_path(playlist_path: str) -> str:
+    return str(PurePath(playlist_path).with_suffix('.m4s'))
+
+
 def cover_path(video_path: str, ext: str = 'jpg') -> str:
     return str(PurePath(video_path).with_suffix('.' + ext))
 
diff --git a/src/blrec/postprocess/ffmpeg_metadata.py b/src/blrec/postprocess/ffmpeg_metadata.py
index 6b9d91b..b772e1e 100644
--- a/src/blrec/postprocess/ffmpeg_metadata.py
+++ b/src/blrec/postprocess/ffmpeg_metadata.py
@@ -3,6 +3,7 @@ from __future__ import annotations
 import asyncio
 import json
 import logging
+import os
 from decimal import Decimal
 from typing import Iterable, List, Tuple, cast
 
@@ -12,7 +13,7 @@ import m3u8
 from blrec.flv.helpers import make_comment_for_joinpoints
 from blrec.flv.operators import JoinPoint
 from blrec.flv.utils import format_timestamp
-from blrec.path.helpers import ffmpeg_metadata_path
+from blrec.path.helpers import ffmpeg_metadata_path, playlist_path
 
 from .helpers import get_extra_metadata, get_metadata, get_record_metadata
 
@@ -21,11 +22,13 @@ logger = logging.getLogger(__name__)
 
 async def make_metadata_file(video_path: str) -> str:
     path = ffmpeg_metadata_path(video_path)
+
     async with aiofiles.open(path, 'wb') as file:
-        if video_path.endswith('.flv'):
+        _, ext = os.path.splitext(video_path)
+        if ext == '.flv':
             content = await _make_metadata_content_for_flv(video_path)
-        elif video_path.endswith('.m3u8'):
-            content = await _make_metadata_content_for_m3u8(video_path)
+        elif ext == '.m4s':
+            content = await _make_metadata_content_for_m3u8(playlist_path(video_path))
         else:
             raise NotImplementedError(video_path)
         await file.write(content.encode(encoding='utf8'))
diff --git a/src/blrec/postprocess/helpers.py b/src/blrec/postprocess/helpers.py
index a1436d8..9a203d6 100644
--- a/src/blrec/postprocess/helpers.py
+++ b/src/blrec/postprocess/helpers.py
@@ -3,7 +3,6 @@ import json
 import logging
 import os
 import shutil
-from pathlib import PurePath
 from typing import Any, Dict, Iterable, Literal
 
 import aiofiles
@@ -11,6 +10,7 @@ import aiofiles
 from blrec.path.helpers import (
     cover_path,
     danmaku_path,
+    playlist_path,
     raw_danmaku_path,
     record_metadata_path,
 )
@@ -45,31 +45,21 @@ async def discard_dir(path: str, log_level: Literal['INFO', 'DEBUG'] = 'INFO') -
 
 
 def files_related(video_path: str) -> Iterable[str]:
-    for path in [
+    file_paths = [
         danmaku_path(video_path),
         raw_danmaku_path(video_path),
         cover_path(video_path, ext='jpg'),
         cover_path(video_path, ext='png'),
-    ]:
+    ]
+
+    if video_path.endswith('.m4s'):
+        file_paths.append(playlist_path(video_path))
+
+    for path in file_paths:
         if os.path.isfile(path):
             yield path
 
 
-async def copy_files_related(video_path: str) -> None:
-    loop = asyncio.get_running_loop()
-    dirname = os.path.dirname(video_path)
-
-    for src_path in files_related(video_path):
-        root, ext = os.path.splitext(src_path)
-        dst_path = PurePath(dirname).with_suffix(ext)
-        try:
-            await loop.run_in_executor(None, shutil.copy, src_path, dst_path)
-        except Exception as e:
-            logger.error(f"Failed to copy '{src_path}' to '{dst_path}': {repr(e)}")
-        else:
-            logger.info(f"Copied '{src_path}' to '{dst_path}'")
-
-
 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)
diff --git a/src/blrec/postprocess/postprocessor.py b/src/blrec/postprocess/postprocessor.py
index 76a6dc5..ae76151 100644
--- a/src/blrec/postprocess/postprocessor.py
+++ b/src/blrec/postprocess/postprocessor.py
@@ -17,16 +17,15 @@ from ..flv.helpers import is_valid_flv_file
 from ..flv.metadata_analysis import analyse_metadata
 from ..flv.metadata_injection import InjectingProgress, inject_metadata
 from ..logging.room_id import aio_task_with_room_id
-from ..path import danmaku_path, extra_metadata_path, record_metadata_path
+from ..path import (
+    extra_metadata_path,
+    ffmpeg_metadata_path,
+    playlist_path,
+    record_metadata_path,
+)
 from ..utils.mixins import AsyncCooperationMixin, AsyncStoppableMixin, SupportDebugMixin
 from .ffmpeg_metadata import make_metadata_file
-from .helpers import (
-    copy_files_related,
-    discard_dir,
-    discard_file,
-    files_related,
-    get_extra_metadata,
-)
+from .helpers import discard_file, files_related, get_extra_metadata
 from .models import DeleteStrategy, PostprocessorStatus
 from .remux import RemuxingProgress, RemuxingResult, remux_video
 from .typing import Progress
@@ -144,75 +143,78 @@ class Postprocessor(
 
     @aio_task_with_room_id
     async def _worker(self) -> None:
-
         while True:
-            self._status = PostprocessorStatus.WAITING
-            self._postprocessing_path = None
-            self._postprocessing_progress = None
+            await self._postprocess()
 
-            video_path = await self._queue.get()
+    async def _postprocess(self) -> None:
+        self._status = PostprocessorStatus.WAITING
+        self._postprocessing_path = None
+        self._postprocessing_progress = None
 
-            async with self._worker_semaphore:
-                logger.debug(f'Postprocessing... {video_path}')
+        video_path = await self._queue.get()
+        self._completed_files.append(video_path)
 
-                await self._wait_for_metadata_file(video_path)
+        async with self._worker_semaphore:
+            logger.debug(f'Postprocessing... {video_path}')
+            await self._wait_for_metadata_file(video_path)
 
-                try:
-                    if video_path.endswith('.flv'):
-                        if not await self._is_vaild_flv_file(video_path):
-                            logger.warning(f'The flv file may be invalid: {video_path}')
-                            if os.path.getsize(video_path) < 1024**2:
-                                continue
-                        if self.remux_to_mp4:
-                            self._status = PostprocessorStatus.REMUXING
-                            (
-                                result_path,
-                                remuxing_result,
-                            ) = await self._remux_video_to_mp4(video_path)
-                            if not self._debug:
-                                if self._should_delete_source_files(remuxing_result):
-                                    await discard_file(video_path)
-                        elif self.inject_extra_metadata:
-                            self._status = PostprocessorStatus.INJECTING
-                            result_path = await self._inject_extra_metadata(video_path)
-                        else:
-                            result_path = video_path
-                        if not self._debug:
-                            await discard_file(extra_metadata_path(video_path), 'DEBUG')
-
-                    elif video_path.endswith('.m3u8'):
-                        if self.remux_to_mp4:
-                            self._status = PostprocessorStatus.REMUXING
-                            (
-                                result_path,
-                                remuxing_result,
-                            ) = await self._remux_video_to_mp4(video_path)
-                            await copy_files_related(video_path)
-                            if result_path != video_path:
-                                self._completed_files.append(danmaku_path(result_path))
-                                with suppress(ValueError):
-                                    self._completed_files.remove(
-                                        danmaku_path(video_path)
-                                    )
-                            if not self._debug:
-                                if self._should_delete_source_files(remuxing_result):
-                                    await discard_dir(os.path.dirname(video_path))
-                        else:
-                            result_path = video_path
-                    else:
-                        result_path = video_path
+            try:
+                _, ext = os.path.splitext(video_path)
+                if ext == '.flv':
+                    result_path = await self._process_flv(video_path)
+                elif ext == '.m4s':
+                    result_path = await self._process_m4s(video_path)
+                else:
+                    result_path = video_path
 
+                if result_path != video_path:
                     self._completed_files.append(result_path)
-                    await self._emit(
-                        'video_postprocessing_completed', self, result_path
-                    )
+                await self._emit('video_postprocessing_completed', self, result_path)
 
-                    files = [result_path, *files_related(result_path)]
-                    await self._emit('postprocessing_completed', self, files)
-                except Exception as exc:
-                    submit_exception(exc)
-                finally:
-                    self._queue.task_done()
+                files = [result_path, *files_related(result_path)]
+                await self._emit('postprocessing_completed', self, files)
+            except Exception as exc:
+                submit_exception(exc)
+            finally:
+                self._queue.task_done()
+
+    async def _process_flv(self, video_path: str) -> str:
+        if not await self._is_vaild_flv_file(video_path):
+            logger.warning(f'The flv file may be invalid: {video_path}')
+            if os.path.getsize(video_path) < 1024**2:
+                return video_path
+
+        if self.remux_to_mp4:
+            self._status = PostprocessorStatus.REMUXING
+            result_path, remuxing_result = await self._remux_video_to_mp4(video_path)
+            if not self._debug:
+                if self._should_delete_source_files(remuxing_result):
+                    await discard_file(video_path)
+        elif self.inject_extra_metadata:
+            self._status = PostprocessorStatus.INJECTING
+            result_path = await self._inject_extra_metadata(video_path)
+        else:
+            result_path = video_path
+
+        if not self._debug:
+            await discard_file(extra_metadata_path(video_path), 'DEBUG')
+
+        return result_path
+
+    async def _process_m4s(self, video_path: str) -> str:
+        if not self.remux_to_mp4:
+            return video_path
+
+        self._status = PostprocessorStatus.REMUXING
+        result_path, remuxing_result = await self._remux_video_to_mp4(video_path)
+
+        if not self._debug and self._should_delete_source_files(remuxing_result):
+            await discard_file(video_path)
+            await discard_file(playlist_path(video_path))
+            await discard_file(record_metadata_path(video_path), 'DEBUG')
+            await discard_file(ffmpeg_metadata_path(video_path), 'DEBUG')
+
+        return result_path
 
     async def _inject_extra_metadata(self, path: str) -> str:
         logger.info(f"Injecting metadata for '{path}' ...")
@@ -240,12 +242,16 @@ class Postprocessor(
         return path
 
     async def _remux_video_to_mp4(self, in_path: str) -> Tuple[str, RemuxingResult]:
-        if in_path.endswith('.flv'):
+        _, ext = os.path.splitext(in_path)
+
+        if ext == '.flv':
             out_path = str(PurePath(in_path).with_suffix('.mp4'))
             metadata_path = await make_metadata_file(in_path)
-        elif in_path.endswith('.m3u8'):
-            out_path = str(PurePath(in_path).parent.with_suffix('.mp4'))
-            metadata_path = await make_metadata_file(in_path)
+        elif ext == '.m4s':
+            _in_path = in_path
+            in_path = playlist_path(in_path)
+            out_path = str(PurePath(in_path).with_suffix('.mp4'))
+            metadata_path = await make_metadata_file(_in_path)
         else:
             raise NotImplementedError(in_path)
 
@@ -254,7 +260,7 @@ class Postprocessor(
 
         if remux_result.is_failed():
             logger.error(f"Failed to remux '{in_path}' to '{out_path}'")
-            result_path = in_path
+            result_path = _in_path if ext == 'm4s' else in_path
         elif remux_result.is_warned():
             logger.warning('Remuxing done, but ran into problems.')
             result_path = out_path
@@ -266,7 +272,7 @@ class Postprocessor(
 
         logger.debug(f'ffmpeg output:\n{remux_result.output}')
 
-        if not self._debug and in_path.endswith('.flv'):
+        if not self._debug and ext == '.flv':
             await discard_file(metadata_path, 'DEBUG')
 
         return result_path, remux_result
@@ -349,15 +355,17 @@ class Postprocessor(
         return False
 
     async def _wait_for_metadata_file(self, video_path: str) -> None:
-        loop = asyncio.get_running_loop()
+        _, ext = os.path.splitext(video_path)
 
-        if video_path.endswith('.flv'):
+        if ext == '.flv':
             path = extra_metadata_path(video_path)
-        elif video_path.endswith('.m3u8'):
+        elif ext == '.m4s':
             path = record_metadata_path(video_path)
         else:
             return
 
+        loop = asyncio.get_running_loop()
+
         for _ in range(10):
             if await loop.run_in_executor(None, os.path.isfile, path):
                 break
diff --git a/src/blrec/postprocess/remux.py b/src/blrec/postprocess/remux.py
index f4b034f..1f9d29d 100644
--- a/src/blrec/postprocess/remux.py
+++ b/src/blrec/postprocess/remux.py
@@ -10,6 +10,8 @@ from reactivex.disposable import CompositeDisposable, Disposable, SerialDisposab
 from reactivex.scheduler.currentthreadscheduler import CurrentThreadScheduler
 from tqdm import tqdm
 
+from blrec.path.helpers import video_path
+
 __all__ = 'RemuxingResult', 'remux_video'
 
 
@@ -63,15 +65,9 @@ def remux_video(
 ) -> Observable[Union[RemuxingProgress, RemuxingResult]]:
     SIZE_PATTERN: Final = re.compile(r'size=\s*(?P<number>\d+)(?P<unit>[a-zA-Z]?B)')
     if in_path.endswith('.m3u8'):
-        total = 0
-        for root, dirs, files in os.walk(os.path.dirname(in_path)):
-            for filename in files:
-                if not (filename.endswith('.m4s') or filename.endswith('.ts')):
-                    continue
-                total += os.path.getsize(os.path.join(root, filename))
-        postfix = os.path.join(
-            os.path.basename(os.path.dirname(in_path)), os.path.basename(in_path)
-        )
+        _in_path = video_path(in_path)
+        total = os.path.getsize(_in_path)
+        postfix = os.path.basename(_in_path)
     else:
         total = os.path.getsize(in_path)
         postfix = os.path.basename(in_path)
diff --git a/src/blrec/setting/models.py b/src/blrec/setting/models.py
index efda424..f0795ac 100644
--- a/src/blrec/setting/models.py
+++ b/src/blrec/setting/models.py
@@ -18,13 +18,14 @@ from blrec.postprocess import DeleteStrategy
 from blrec.utils.string import camel_case
 
 from .typing import (
+    BarkMessageType,
     EmailMessageType,
+    MessageType,
     PushdeerMessageType,
     PushplusMessageType,
     RecordingMode,
     ServerchanMessageType,
     TelegramMessageType,
-    BarkMessageType,
 )
 
 logger = logging.getLogger(__name__)
@@ -462,16 +463,16 @@ class NotificationSettings(BaseModel):
 
 
 class MessageTemplateSettings(BaseModel):
-    began_message_type: str
+    began_message_type: MessageType
     began_message_title: str
     began_message_content: str
-    ended_message_type: str
+    ended_message_type: MessageType
     ended_message_title: str
     ended_message_content: str
-    space_message_type: str
+    space_message_type: MessageType
     space_message_title: str
     space_message_content: str
-    error_message_type: str
+    error_message_type: MessageType
     error_message_title: str
     error_message_content: str
 
diff --git a/src/blrec/task/models.py b/src/blrec/task/models.py
index fe23193..c7cf1a0 100644
--- a/src/blrec/task/models.py
+++ b/src/blrec/task/models.py
@@ -93,14 +93,14 @@ class VideoFileStatus(str, Enum):
     INJECTING = 'injecting'
     COMPLETED = 'completed'
     MISSING = 'missing'
-    BROKEN = 'broken'
+    UNKNOWN = 'unknown'
 
 
 class DanmukuFileStatus(str, Enum):
     RECORDING = 'recording'
     COMPLETED = 'completed'
     MISSING = 'missing'
-    BROKEN = 'broken'
+    UNKNOWN = 'unknown'
 
 
 @attr.s(auto_attribs=True, slots=True, frozen=True)
diff --git a/src/blrec/task/task.py b/src/blrec/task/task.py
index d22826b..1249281 100644
--- a/src/blrec/task/task.py
+++ b/src/blrec/task/task.py
@@ -11,13 +11,14 @@ from blrec.bili.models import RoomInfo, UserInfo
 from blrec.bili.typing import QualityNumber, StreamFormat
 from blrec.core import Recorder
 from blrec.core.cover_downloader import CoverSaveStrategy
+from blrec.core.typing import MetaData
 from blrec.event.event_submitters import (
     LiveEventSubmitter,
     PostprocessorEventSubmitter,
     RecorderEventSubmitter,
 )
 from blrec.flv.metadata_injection import InjectingProgress
-from blrec.flv.operators import MetaData, StreamProfile
+from blrec.flv.operators import StreamProfile
 from blrec.logging.room_id import aio_task_with_room_id
 from blrec.postprocess import DeleteStrategy, Postprocessor, PostprocessorStatus
 from blrec.postprocess.remux import RemuxingProgress
@@ -134,10 +135,7 @@ class RecordTask:
                 size = os.path.getsize(path)
                 exists = True
             except FileNotFoundError:
-                if path.endswith('.m3u8'):
-                    mp4_path = str(PurePath(path).parent.with_suffix('.mp4'))
-                else:
-                    mp4_path = str(PurePath(path).with_suffix('.mp4'))
+                mp4_path = str(PurePath(path).with_suffix('.mp4'))
                 try:
                     size = os.path.getsize(mp4_path)
                     exists = True
@@ -165,7 +163,7 @@ class RecordTask:
                         status = VideoFileStatus.INJECTING
             else:
                 # disabling recorder by force or stoping task by force
-                status = VideoFileStatus.BROKEN
+                status = VideoFileStatus.UNKNOWN
 
             yield VideoFileDetail(path=path, size=size, status=status)
 
@@ -196,7 +194,7 @@ class RecordTask:
                 status = DanmukuFileStatus.RECORDING
             else:
                 # disabling recorder by force or stoping task by force
-                status = DanmukuFileStatus.BROKEN
+                status = DanmukuFileStatus.UNKNOWN
 
             yield DanmakuFileDetail(path=path, size=size, status=status)
 
diff --git a/src/blrec/task/task_manager.py b/src/blrec/task/task_manager.py
index 5daa221..18eaceb 100644
--- a/src/blrec/task/task_manager.py
+++ b/src/blrec/task/task_manager.py
@@ -10,8 +10,9 @@ from tenacity import retry, retry_if_exception_type, stop_after_delay, wait_expo
 from blrec.utils.libc import malloc_trim
 
 from ..bili.exceptions import ApiRequestError
+from ..core.typing import MetaData
 from ..exception import NotFoundError, submit_exception
-from ..flv.operators import MetaData, StreamProfile
+from ..flv.operators import StreamProfile
 from .models import DanmakuFileDetail, TaskData, TaskParam, VideoFileDetail
 from .task import RecordTask
 
diff --git a/src/blrec/utils/ffprobe.py b/src/blrec/utils/ffprobe.py
index 5c6523d..95e77d1 100644
--- a/src/blrec/utils/ffprobe.py
+++ b/src/blrec/utils/ffprobe.py
@@ -2,17 +2,113 @@ from __future__ import annotations
 
 import json
 from subprocess import PIPE, Popen
-from typing import Any, Dict, Optional
+from typing import Any, Dict, List, Literal, Optional, TypedDict, Union
 
 from reactivex import Observable, abc
 from reactivex.scheduler import CurrentThreadScheduler
 
-__all__ = ('ffprobe', 'StreamProfile')
-
-StreamProfile = Dict[str, Any]
+__all__ = (
+    'ffprobe',
+    'ffprobe_on',
+    'StreamProfile',
+    'FormatProfile',
+    'VideoProfile',
+    'AudioProfile',
+)
 
 
-def ffprobe(data: bytes) -> Observable[StreamProfile]:
+class VideoProfile(TypedDict, total=False):
+    index: int
+    codec_name: str
+    codec_long_name: str
+    codec_type: Literal['video']
+    codec_tag_string: str
+    codec_tag: str
+    width: int
+    height: int
+    coded_width: int
+    coded_height: int
+    closed_captions: int
+    film_grain: int
+    has_b_frames: int
+    level: int
+    refs: int
+    is_avc: str
+    nal_length_size: str
+    id: str
+    r_frame_rate: str
+    avg_frame_rate: str
+    time_base: str
+    duration_ts: int
+    duration: str
+    extradata_size: int
+    disposition: Dict[str, int]
+    tags: Dict[str, Any]
+
+
+class AudioProfile(TypedDict, total=False):
+    index: int
+    codec_name: str
+    codec_long_name: str
+    codec_type: Literal['audio']
+    codec_tag_string: str
+    codec_tag: str
+    sample_fmt: str
+    sample_rate: str
+    channels: int
+    channel_layout: str
+    bits_per_sample: int
+    id: str
+    r_frame_rate: str
+    avg_frame_rate: str
+    time_base: str
+    duration_ts: int
+    duration: str
+    bit_rate: str
+    extradata_size: int
+    disposition: Dict[str, int]
+    tags: Dict[str, Any]
+
+
+class FormatProfile(TypedDict, total=False):
+    filename: str
+    nb_streams: int
+    nb_programs: int
+    format_name: str
+    format_long_name: str
+    size: str
+    probe_score: int
+    tags: Dict[str, Any]
+
+
+class StreamProfile(TypedDict, total=False):
+    streams: List[Union[VideoProfile, AudioProfile]]
+    format: FormatProfile
+
+
+def ffprobe(data: bytes) -> StreamProfile:
+    args = [
+        'ffprobe',
+        '-show_streams',
+        '-show_format',
+        '-print_format',
+        'json',
+        'pipe:0',
+    ]
+
+    with Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) as process:
+        try:
+            stdout, _stderr = process.communicate(data, timeout=10)
+            profile = json.loads(stdout)
+        except Exception:
+            process.kill()
+            process.wait()
+            raise
+        else:
+            return profile
+
+
+def ffprobe_on(data: bytes) -> Observable[StreamProfile]:
     def subscribe(
         observer: abc.ObserverBase[StreamProfile],
         scheduler: Optional[abc.SchedulerBase] = None,
@@ -20,26 +116,13 @@ def ffprobe(data: bytes) -> Observable[StreamProfile]:
         _scheduler = scheduler or CurrentThreadScheduler()
 
         def action(scheduler: abc.SchedulerBase, state: Optional[Any] = None) -> None:
-            args = [
-                'ffprobe',
-                '-show_streams',
-                '-show_format',
-                '-print_format',
-                'json',
-                'pipe:0',
-            ]
-
-            with Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) as process:
-                try:
-                    stdout, stderr = process.communicate(data, timeout=10)
-                except Exception as e:
-                    process.kill()
-                    process.wait()
-                    observer.on_error(e)
-                else:
-                    profile = json.loads(stdout)
-                    observer.on_next(profile)
-                    observer.on_completed()
+            try:
+                profile = ffprobe(data)
+            except Exception as e:
+                observer.on_error(e)
+            else:
+                observer.on_next(profile)
+                observer.on_completed()
 
         return _scheduler.schedule(action)
 
diff --git a/src/blrec/utils/mixins.py b/src/blrec/utils/mixins.py
index d526724..9db975b 100644
--- a/src/blrec/utils/mixins.py
+++ b/src/blrec/utils/mixins.py
@@ -2,6 +2,7 @@ import asyncio
 import os
 import threading
 from abc import ABC, abstractmethod
+from concurrent.futures import Future
 from typing import Awaitable, TypeVar, final
 
 from blrec.logging.room_id import aio_task_with_room_id
@@ -130,10 +131,13 @@ class AsyncCooperationMixin(ABC):
             # workaround for `RuntimeError: no running event loop`
             submit_exception(exc)
 
-        self._run_coroutine(wrapper())
+        self._call_coroutine(wrapper())
 
-    def _run_coroutine(self, coro: Awaitable[_T]) -> _T:
-        future = asyncio.run_coroutine_threadsafe(self._with_room_id(coro), self._loop)
+    def _run_coroutine(self, coro: Awaitable[_T]) -> Future[_T]:
+        return asyncio.run_coroutine_threadsafe(coro, self._loop)
+
+    def _call_coroutine(self, coro: Awaitable[_T]) -> _T:
+        future = self._run_coroutine(coro)
         return future.result()
 
     @aio_task_with_room_id
diff --git a/src/blrec/web/routers/tasks.py b/src/blrec/web/routers/tasks.py
index 6289c42..b5b5a77 100644
--- a/src/blrec/web/routers/tasks.py
+++ b/src/blrec/web/routers/tasks.py
@@ -1,41 +1,32 @@
 from typing import Any, Dict, List
 
 import attr
+from fastapi import APIRouter, BackgroundTasks, Body, Depends, status
 from pydantic import PositiveInt, conint
-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, ForbiddenError
 from ...application import Application
-
+from ...exception import ForbiddenError, NotFoundError
+from ...utils.ffprobe import StreamProfile
+from ..dependencies import TaskDataFilter, task_data_filter
+from ..responses import (
+    accepted_responses,
+    confict_responses,
+    created_responses,
+    forbidden_responses,
+    not_found_responses,
+)
+from ..schemas import ResponseMessage
 
 app: Application = None  # type: ignore  # bypass flake8 F821
 
-router = APIRouter(
-    prefix='/api/v1/tasks',
-    tags=['tasks'],
-)
+router = APIRouter(prefix='/api/v1/tasks', tags=['tasks'])
 
 
 @router.get('/data')
 async def get_task_data(
     page: PositiveInt = 1,
     size: conint(ge=10, le=100) = 100,  # type: ignore
-    filter: TaskDataFilter = Depends(task_data_filter)
+    filter: TaskDataFilter = Depends(task_data_filter),
 ) -> List[Dict[str, Any]]:
     start = (page - 1) * size
     stop = page * size
@@ -51,26 +42,17 @@ async def get_task_data(
     return task_data
 
 
-@router.get(
-    '/{room_id}/data',
-    responses={**not_found_responses},
-)
+@router.get('/{room_id}/data', responses={**not_found_responses})
 async def get_one_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},
-)
+@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}/metadata',
-    responses={**not_found_responses},
-)
+@router.get('/{room_id}/metadata', responses={**not_found_responses})
 async def get_task_metadata(room_id: int) -> Dict[str, Any]:
     metadata = app.get_task_metadata(room_id)
     if not metadata:
@@ -78,44 +60,29 @@ async def get_task_metadata(room_id: int) -> Dict[str, Any]:
     return attr.asdict(metadata)
 
 
-@router.get(
-    '/{room_id}/profile',
-    responses={**not_found_responses},
-)
-async def get_task_stream_profile(room_id: int) -> Dict[str, Any]:
+@router.get('/{room_id}/profile', responses={**not_found_responses})
+async def get_task_stream_profile(room_id: int) -> StreamProfile:
     return app.get_task_stream_profile(room_id)
 
 
-@router.get(
-    '/{room_id}/videos',
-    responses={**not_found_responses},
-)
+@router.get('/{room_id}/videos', responses={**not_found_responses})
 async def get_task_video_file_details(room_id: int) -> List[Dict[str, Any]]:
     return [attr.asdict(d) for d in app.get_task_video_file_details(room_id)]
 
 
-@router.get(
-    '/{room_id}/danmakus',
-    responses={**not_found_responses},
-)
+@router.get('/{room_id}/danmakus', responses={**not_found_responses})
 async def get_task_danmaku_file_details(room_id: int) -> List[Dict[str, Any]]:
     return [attr.asdict(d) for d in app.get_task_danmaku_file_details(room_id)]
 
 
-@router.post(
-    '/info',
-    response_model=ResponseMessage,
-    responses={**not_found_responses},
-)
+@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},
+    '/{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)
@@ -123,20 +90,14 @@ async def update_task_info(room_id: int) -> ResponseMessage:
 
 
 @router.get(
-    '/{room_id}/cut',
-    response_model=ResponseMessage,
-    responses={**not_found_responses},
+    '/{room_id}/cut', response_model=ResponseMessage, responses={**not_found_responses}
 )
 async def can_cut_stream(room_id: int) -> ResponseMessage:
     if app.can_cut_stream(room_id):
-        return ResponseMessage(
-            message='The stream can been cut',
-            data={'result': True},
-        )
+        return ResponseMessage(message='The stream can been cut', data={'result': True})
     else:
         return ResponseMessage(
-            message='The stream cannot been cut',
-            data={'result': False},
+            message='The stream cannot been cut', data={'result': False}
         )
 
 
@@ -153,9 +114,7 @@ async def cut_stream(room_id: int) -> ResponseMessage:
 
 
 @router.post(
-    '/start',
-    response_model=ResponseMessage,
-    responses={**not_found_responses},
+    '/start', response_model=ResponseMessage, responses={**not_found_responses}
 )
 async def start_all_tasks() -> ResponseMessage:
     await app.start_all_tasks()
@@ -214,10 +173,7 @@ async def stop_task(
     return ResponseMessage(message='The task has been stopped')
 
 
-@router.post(
-    '/recorder/enable',
-    response_model=ResponseMessage,
-)
+@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')
@@ -246,9 +202,7 @@ async def disable_all_task_recorders(
 ) -> ResponseMessage:
     if background:
         background_tasks.add_task(app.disable_all_task_recorders, force)
-        return ResponseMessage(
-            message='Disabling all task recorders on the background'
-        )
+        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')
@@ -271,9 +225,7 @@ async def disable_task_recorder(
 
     if background:
         background_tasks.add_task(app.disable_task_recorder, room_id, force)
-        return ResponseMessage(
-            message='Disabling the task recorder on the background'
-        )
+        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')
@@ -283,9 +235,7 @@ async def disable_task_recorder(
     '/{room_id}',
     response_model=ResponseMessage,
     status_code=status.HTTP_201_CREATED,
-    responses={
-        **created_responses, **confict_responses, **forbidden_responses
-    },
+    responses={**created_responses, **confict_responses, **forbidden_responses},
 )
 async def add_task(room_id: int) -> ResponseMessage:
     """Add a task for a room.
@@ -298,24 +248,18 @@ async def add_task(room_id: int) -> ResponseMessage:
     """
     real_room_id = await app.add_task(room_id)
     return ResponseMessage(
-        message='Successfully Added Task',
-        data={'room_id': real_room_id},
+        message='Successfully Added Task', data={'room_id': real_room_id}
     )
 
 
-@router.delete(
-    '',
-    response_model=ResponseMessage,
-)
+@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},
+    '/{room_id}', response_model=ResponseMessage, responses={**not_found_responses}
 )
 async def remove_task(room_id: int) -> ResponseMessage:
     await app.remove_task(room_id)
diff --git a/webapp/src/app/settings/recorder-settings/recorder-settings.component.html b/webapp/src/app/settings/recorder-settings/recorder-settings.component.html
index 17818c0..da80b69 100644
--- a/webapp/src/app/settings/recorder-settings/recorder-settings.component.html
+++ b/webapp/src/app/settings/recorder-settings/recorder-settings.component.html
@@ -74,38 +74,6 @@
       </nz-select>
     </nz-form-control>
   </nz-form-item>
-  <nz-form-item
-    class="setting-item"
-    *ngIf="streamFormatControl.value === 'fmp4'"
-  >
-    <nz-form-label
-      class="setting-label"
-      nzNoColon
-      [nzTooltipTitle]="recordingModeTip"
-      >录制模式</nz-form-label
-    >
-    <ng-template #recordingModeTip>
-      <p>
-        标准模式: 对下载的流数据进行解析处理,支持自动分割文件等功能。
-        <br />
-        原始模式: 直接下载流数据,没有进行解析处理,不支持自动分割文件等功能。
-        <br />
-      </p>
-    </ng-template>
-    <nz-form-control
-      class="setting-control select"
-      [nzWarningTip]="syncFailedWarningTip"
-      [nzValidateStatus]="
-        syncStatus.recordingMode ? recordingModeControl : 'warning'
-      "
-    >
-      <nz-select
-        formControlName="recordingMode"
-        [nzOptions]="recordingModeOptions"
-      >
-      </nz-select>
-    </nz-form-control>
-  </nz-form-item>
   <nz-form-item class="setting-item">
     <nz-form-label
       class="setting-label"
@@ -224,11 +192,7 @@
   </nz-form-item>
   <nz-form-item
     class="setting-item"
-    *ngIf="
-      streamFormatControl.value === 'flv' ||
-      (streamFormatControl.value === 'fmp4' &&
-        recordingModeControl.value === 'standard')
-    "
+    *ngIf="streamFormatControl.value === 'flv'"
   >
     <nz-form-label
       class="setting-label"
diff --git a/webapp/src/app/settings/shared/setting.model.ts b/webapp/src/app/settings/shared/setting.model.ts
index dc1781f..1dfb616 100644
--- a/webapp/src/app/settings/shared/setting.model.ts
+++ b/webapp/src/app/settings/shared/setting.model.ts
@@ -214,7 +214,6 @@ export type PushplusMessageType =
 export type TelegramMessageType = MarkdownMessageType | HtmlMessageType;
 export type BarkMessageType = TextMessageType;
 
-
 export interface MessageTemplateSettings {
   beganMessageType: string;
   beganMessageTitle: string;
diff --git a/webapp/src/app/shared/pipes/filestatus.pipe.ts b/webapp/src/app/shared/pipes/filestatus.pipe.ts
index 37e9461..53a0ca4 100644
--- a/webapp/src/app/shared/pipes/filestatus.pipe.ts
+++ b/webapp/src/app/shared/pipes/filestatus.pipe.ts
@@ -11,7 +11,7 @@ const STATUS_MAPPING = new Map([
   [VideoFileStatus.REMUXING, '处理中'],
   [VideoFileStatus.COMPLETED, '已完成'],
   [VideoFileStatus.MISSING, '不存在'],
-  [VideoFileStatus.BROKEN, '录制中断'],
+  [VideoFileStatus.UNKNOWN, '???'],
 ]);
 
 @Pipe({
diff --git a/webapp/src/app/tasks/shared/task.model.ts b/webapp/src/app/tasks/shared/task.model.ts
index d55161d..877f25b 100644
--- a/webapp/src/app/tasks/shared/task.model.ts
+++ b/webapp/src/app/tasks/shared/task.model.ts
@@ -296,14 +296,14 @@ export enum VideoFileStatus {
   INJECTING = 'injecting',
   COMPLETED = 'completed',
   MISSING = 'missing',
-  BROKEN = 'broken',
+  UNKNOWN = 'unknown',
 }
 
 export enum DanmakuFileStatus {
   RECORDING = 'recording',
   COMPLETED = 'completed',
   MISSING = 'missing',
-  BROKEN = 'broken',
+  UNKNOWN = 'unknown',
 }
 
 export interface VideoFileDetail {
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
index c566292..8813b69 100644
--- 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
@@ -52,17 +52,7 @@
             >覆盖全局设置</label
           >
         </nz-form-item>
-        <nz-form-item
-          class="setting-item filesize-limit"
-          *ngIf="
-            (options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'flv' ||
-            ((options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'fmp4' &&
-              (options.recorder.recordingMode ||
-                model.recorder.recordingMode) === 'standard')
-          "
-        >
+        <nz-form-item class="setting-item filesize-limit">
           <nz-form-label
             class="setting-label"
             nzNoColon
@@ -97,17 +87,7 @@
             >覆盖全局设置</label
           >
         </nz-form-item>
-        <nz-form-item
-          class="setting-item duration-limit"
-          *ngIf="
-            (options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'flv' ||
-            ((options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'fmp4' &&
-              (options.recorder.recordingMode ||
-                model.recorder.recordingMode) === 'standard')
-          "
-        >
+        <nz-form-item class="setting-item duration-limit">
           <nz-form-label
             class="setting-label"
             nzNoColon
@@ -237,48 +217,6 @@
             >覆盖全局设置</label
           >
         </nz-form-item>
-        <nz-form-item
-          class="setting-item"
-          *ngIf="
-            (options.recorder.streamFormat || model.recorder.streamFormat) ===
-            'fmp4'
-          "
-        >
-          <nz-form-label
-            class="setting-label"
-            nzNoColon
-            [nzTooltipTitle]="recordingModeTip"
-            >录制模式</nz-form-label
-          >
-          <ng-template #recordingModeTip>
-            <p>
-              标准模式: 对下载的流数据进行解析处理,支持自动分割文件等功能。
-              <br />
-              原始模式:
-              直接下载流数据,没有进行解析处理,不支持自动分割文件等功能。
-              <br />
-            </p>
-          </ng-template>
-          <nz-form-control class="setting-control select">
-            <nz-select
-              name="recordingMode"
-              [(ngModel)]="model.recorder.recordingMode"
-              [disabled]="options.recorder.recordingMode === null"
-              [nzOptions]="recordingModeOptions"
-            >
-            </nz-select>
-          </nz-form-control>
-          <label
-            nz-checkbox
-            [nzChecked]="options.recorder.recordingMode !== null"
-            (nzCheckedChange)="
-              options.recorder.recordingMode = $event
-                ? globalSettings.recorder.recordingMode
-                : null
-            "
-            >覆盖全局设置</label
-          >
-        </nz-form-item>
         <nz-form-item class="setting-item">
           <nz-form-label
             class="setting-label"
@@ -440,11 +378,7 @@
           class="setting-item"
           *ngIf="
             (options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'flv' ||
-            ((options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'fmp4' &&
-              (options.recorder.recordingMode ||
-                model.recorder.recordingMode) === 'standard')
+            'flv'
           "
         >
           <nz-form-label
@@ -644,17 +578,7 @@
 
       <div ngModelGroup="postprocessing" class="form-group postprocessing">
         <h2>文件处理</h2>
-        <nz-form-item
-          class="setting-item"
-          *ngIf="
-            (options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'flv' ||
-            ((options.recorder.streamFormat || model.recorder.streamFormat) ===
-              'fmp4' &&
-              (options.recorder.recordingMode ||
-                model.recorder.recordingMode) === 'standard')
-          "
-        >
+        <nz-form-item class="setting-item">
           <nz-form-label
             class="setting-label"
             nzNoColon