diff --git a/setup.cfg b/setup.cfg
index ec31875..e7b28b4 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -46,7 +46,7 @@ install_requires =
requests >= 2.24.0, < 3.0.0
aiofiles >= 22.1.0, < 23.0.0
tenacity >= 8.0.1, < 9.0.0
- colorama >= 0.4.4, < 0.5.0
+ loguru >= 0.7.2, < 0.8.0
humanize >= 3.13.1, < 4.0.0
tqdm >= 4.62.3, < 5.0.0
attrs >= 21.2.0, < 22.0.0
diff --git a/src/blrec/application.py b/src/blrec/application.py
index d44282b..208f001 100644
--- a/src/blrec/application.py
+++ b/src/blrec/application.py
@@ -1,11 +1,11 @@
import asyncio
-import logging
import os
from contextlib import suppress
from typing import Iterator, List, Optional
import attr
import psutil
+from loguru import logger
from . import __prog__, __version__
from .bili.helpers import ensure_room_id
@@ -33,8 +33,6 @@ from .task import (
)
from .webhook import WebHookEmitter
-logger = logging.getLogger(__name__)
-
@attr.s(auto_attribs=True, slots=True, frozen=True)
class AppInfo:
@@ -100,6 +98,7 @@ class Application:
await self.exit()
async def launch(self) -> None:
+ self._setup_logger()
logger.info('Launching Application...')
self._setup()
logger.debug(f'Default umask {os.umask(0o000)}')
@@ -296,7 +295,6 @@ class Application:
return await self._settings_manager.change_task_options(room_id, options)
def _setup(self) -> None:
- self._setup_logger()
self._setup_exception_handler()
self._setup_space_monitor()
self._setup_space_event_submitter()
diff --git a/src/blrec/bili/api.py b/src/blrec/bili/api.py
index cebfecb..94eb76e 100644
--- a/src/blrec/bili/api.py
+++ b/src/blrec/bili/api.py
@@ -1,13 +1,12 @@
import asyncio
import hashlib
-import logging
-import os
from abc import ABC
from datetime import datetime
-from typing import Any, Dict, List, Mapping, Optional, Final
+from typing import Any, Dict, Final, List, Mapping, Optional
from urllib.parse import urlencode
import aiohttp
+from loguru import logger
from tenacity import retry, stop_after_delay, wait_exponential
from .exceptions import ApiRequestError
@@ -16,10 +15,6 @@ from .typing import JsonResponse, QualityNumber, ResponseData
__all__ = 'AppApi', 'WebApi'
-logger = logging.getLogger(__name__)
-
-TRACE_API_REQ = bool(os.environ.get('BLREC_TRACE_API_REQ'))
-
BASE_HEADERS: Final = {
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en;q=0.3,en-US;q=0.2', # noqa
@@ -34,8 +29,14 @@ BASE_HEADERS: Final = {
class BaseApi(ABC):
def __init__(
- self, session: aiohttp.ClientSession, headers: Optional[Dict[str, str]] = None
+ self,
+ session: aiohttp.ClientSession,
+ headers: Optional[Dict[str, str]] = None,
+ *,
+ room_id: Optional[int] = None,
):
+ self._logger = logger.bind(room_id=room_id or '')
+
self.base_api_urls: List[str] = ['https://api.bilibili.com']
self.base_live_api_urls: List[str] = ['https://api.live.bilibili.com']
self.base_play_info_api_urls: List[str] = ['https://api.live.bilibili.com']
@@ -64,13 +65,13 @@ class BaseApi(ABC):
should_check_response = kwds.pop('check_response', True)
kwds = {'timeout': self.timeout, 'headers': self.headers, **kwds}
async with self._session.get(*args, **kwds) as res:
- if TRACE_API_REQ:
- logger.debug(f'Request info: {res.request_info}')
+ self._logger.trace('Request: {}', res.request_info)
+ self._logger.trace('Response: {}', await res.text())
try:
json_res = await res.json()
except aiohttp.ContentTypeError:
text_res = await res.text()
- logger.debug(f'Response text: {text_res[:200]}')
+ self._logger.debug(f'Response text: {text_res[:200]}')
raise
if should_check_response:
self._check_response(json_res)
@@ -88,8 +89,7 @@ class BaseApi(ABC):
return await self._get_json_res(url, *args, **kwds)
except Exception as exc:
exception = exc
- if TRACE_API_REQ:
- logger.debug(f'Failed to get json from {url}', exc_info=exc)
+ self._logger.trace('Failed to get json from {}: {}', url, repr(exc))
else:
assert exception is not None
raise exception
@@ -106,14 +106,14 @@ class BaseApi(ABC):
json_responses = []
for idx, item in enumerate(results):
if isinstance(item, Exception):
- if TRACE_API_REQ:
- logger.debug(f'Failed to get json from {urls[idx]}', exc_info=item)
+ self._logger.trace(
+ 'Failed to get json from {}: {}', urls[idx], repr(item)
+ )
exceptions.append(item)
elif isinstance(item, dict):
json_responses.append(item)
else:
- if TRACE_API_REQ:
- logger.debug(repr(item))
+ self._logger.trace('{}', repr(item))
if not json_responses:
raise exceptions[0]
return json_responses
diff --git a/src/blrec/bili/danmaku_client.py b/src/blrec/bili/danmaku_client.py
index 88fc4cf..c7b86dc 100644
--- a/src/blrec/bili/danmaku_client.py
+++ b/src/blrec/bili/danmaku_client.py
@@ -1,6 +1,5 @@
import asyncio
import json
-import logging
import struct
from contextlib import suppress
from enum import Enum, IntEnum
@@ -11,11 +10,12 @@ import brotli
from aiohttp import ClientSession
from tenacity import retry, retry_if_exception_type, wait_exponential
+from blrec.logging.context import async_task_with_logger_context
+
from ..event.event_emitter import EventEmitter, EventListener
from ..exception import exception_callback
-from ..logging.room_id import aio_task_with_room_id
from ..utils.mixins import AsyncStoppableMixin
-from ..utils.string import extract_uid_from_cookie, extract_buvid_from_cookie
+from ..utils.string import extract_buvid_from_cookie, extract_uid_from_cookie
from .api import AppApi, WebApi
from .exceptions import DanmakuClientAuthError
from .typing import ApiPlatform, Danmaku
@@ -23,7 +23,7 @@ from .typing import ApiPlatform, Danmaku
__all__ = 'DanmakuClient', 'DanmakuListener', 'Danmaku', 'DanmakuCommand'
-logger = logging.getLogger(__name__)
+from loguru import logger
class DanmakuListener(EventListener):
@@ -57,6 +57,9 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
headers: Optional[Dict[str, str]] = None,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': room_id}
+ self._logger = logger.bind(**self._logger_context)
+
self.session = session
self.appapi = appapi
self.webapi = webapi
@@ -86,24 +89,25 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
await self._update_danmu_info()
await self._connect()
await self._create_message_loop()
- logger.debug('Started danmaku client')
+ self._logger.debug('Started danmaku client')
async def _do_stop(self) -> None:
await self._terminate_message_loop()
await self._disconnect()
- logger.debug('Stopped danmaku client')
+ self._logger.debug('Stopped danmaku client')
+ @async_task_with_logger_context
async def restart(self) -> None:
- logger.debug('Restarting danmaku client...')
+ self._logger.debug('Restarting danmaku client...')
await self.stop()
await self.start()
- logger.debug('Restarted danmaku client')
+ self._logger.debug('Restarted danmaku client')
async def reconnect(self) -> None:
if self.stopped:
return
- logger.debug('Reconnecting...')
+ self._logger.debug('Reconnecting...')
await self._disconnect()
await self._connect()
await self._emit('client_reconnected')
@@ -115,7 +119,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
),
)
async def _connect(self) -> None:
- logger.debug('Connecting to server...')
+ self._logger.debug('Connecting to server...')
try:
await self._connect_websocket()
await self._send_auth()
@@ -129,7 +133,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
await self._update_danmu_info()
raise
else:
- logger.debug('Connected to server')
+ self._logger.debug('Connected to server')
await self._emit('client_connected')
async def _connect_websocket(self) -> None:
@@ -137,16 +141,16 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
self._danmu_info['host_list'][self._host_index]['host'],
self._danmu_info['host_list'][self._host_index]['wss_port'],
)
- logger.debug(f'Connecting WebSocket... {url}')
+ self._logger.debug(f'Connecting WebSocket... {url}')
try:
self._ws = await self.session.ws_connect(
url, timeout=5, headers=self.headers
)
except Exception as exc:
- logger.debug(f'Failed to connect WebSocket: {repr(exc)}')
+ self._logger.debug(f'Failed to connect WebSocket: {repr(exc)}')
raise
else:
- logger.debug('Connected WebSocket')
+ self._logger.debug('Connected WebSocket')
async def _send_auth(self) -> None:
auth_msg = json.dumps(
@@ -161,26 +165,28 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
}
)
data = Frame.encode(WS.OP_USER_AUTHENTICATION, auth_msg)
- logger.debug('Sending user authentication...')
+ self._logger.debug('Sending user authentication...')
try:
await self._ws.send_bytes(data)
except Exception as exc:
- logger.debug(f'Failed to sent user authentication: {repr(exc)}')
+ self._logger.debug(f'Failed to sent user authentication: {repr(exc)}')
raise
else:
- logger.debug('Sent user authentication')
+ self._logger.debug('Sent user authentication')
async def _recieve_auth_reply(self) -> aiohttp.WSMessage:
- logger.debug('Receiving user authentication reply...')
+ self._logger.debug('Receiving user authentication reply...')
try:
msg = await self._ws.receive(timeout=5)
if msg.type != aiohttp.WSMsgType.BINARY:
raise aiohttp.ClientError(msg)
except Exception as exc:
- logger.debug(f'Failed to receive user authentication reply: {repr(exc)}')
+ self._logger.debug(
+ f'Failed to receive user authentication reply: {repr(exc)}'
+ )
raise
else:
- logger.debug('Recieved user authentication reply')
+ self._logger.debug('Recieved user authentication reply')
return msg
async def _handle_auth_reply(self, reply: aiohttp.WSMessage) -> None:
@@ -190,7 +196,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
code = cast(int, json.loads(msg)['code'])
if code == WS.AUTH_OK:
- logger.debug('Auth OK')
+ self._logger.debug('Auth OK')
self._create_heartbeat_task()
elif code == WS.AUTH_TOKEN_ERROR:
raise DanmakuClientAuthError(f'Token expired: {code}')
@@ -204,7 +210,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
self._api_platform = 'android'
async def _update_danmu_info(self) -> None:
- logger.debug(f'Updating danmu info via {self._api_platform} api...')
+ self._logger.debug(f'Updating danmu info via {self._api_platform} api...')
api: Union[WebApi, AppApi]
if self._api_platform == 'web':
api = self.webapi
@@ -213,15 +219,15 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
try:
self._danmu_info = await api.get_danmu_info(self._room_id)
except Exception as exc:
- logger.warning(f'Failed to update danmu info: {repr(exc)}')
+ self._logger.warning(f'Failed to update danmu info: {repr(exc)}')
self._danmu_info = COMMON_DANMU_INFO
else:
- logger.debug('Danmu info updated')
+ self._logger.debug('Danmu info updated')
async def _disconnect(self) -> None:
await self._cancel_heartbeat_task()
await self._close_websocket()
- logger.debug('Disconnected from server')
+ self._logger.debug('Disconnected from server')
await self._emit('client_disconnected')
async def _close_websocket(self) -> None:
@@ -237,14 +243,14 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
with suppress(asyncio.CancelledError):
await self._heartbeat_task
- @aio_task_with_room_id
+ @async_task_with_logger_context
async def _send_heartbeat(self) -> None:
data = Frame.encode(WS.OP_HEARTBEAT, '')
while True:
try:
await self._ws.send_bytes(data)
except Exception as exc:
- logger.warning(f'Failed to send heartbeat: {repr(exc)}')
+ self._logger.warning(f'Failed to send heartbeat: {repr(exc)}')
await self._emit('error_occurred', exc)
task = asyncio.create_task(self.restart())
task.add_done_callback(exception_callback)
@@ -254,15 +260,15 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
async def _create_message_loop(self) -> None:
self._message_loop_task = asyncio.create_task(self._message_loop())
self._message_loop_task.add_done_callback(exception_callback)
- logger.debug('Created message loop')
+ self._logger.debug('Created message loop')
async def _terminate_message_loop(self) -> None:
self._message_loop_task.cancel()
with suppress(asyncio.CancelledError):
await self._message_loop_task
- logger.debug('Terminated message loop')
+ self._logger.debug('Terminated message loop')
- @aio_task_with_room_id
+ @async_task_with_logger_context
async def _message_loop(self) -> None:
while True:
for msg in await self._receive():
@@ -292,8 +298,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
else:
await self._handle_receive_error(ValueError(wsmsg))
- @staticmethod
- async def _handle_data(data: bytes) -> Optional[List[Dict[str, Any]]]:
+ async def _handle_data(self, data: bytes) -> Optional[List[Dict[str, Any]]]:
loop = asyncio.get_running_loop()
try:
@@ -304,12 +309,14 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
elif op == WS.OP_HEARTBEAT_REPLY:
pass
except Exception as e:
- logger.warning(f'Failed to handle data: {repr(e)}, data: {repr(data)}')
+ self._logger.warning(
+ f'Failed to handle data: {repr(e)}, data: {repr(data)}'
+ )
return None
async def _handle_receive_error(self, exc: Exception) -> None:
- logger.warning(f'Failed to receive message: {repr(exc)}')
+ self._logger.warning(f'Failed to receive message: {repr(exc)}')
await self._emit('error_occurred', exc)
if isinstance(exc, asyncio.TimeoutError):
return
@@ -322,7 +329,7 @@ class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin):
async def _retry(self) -> None:
if self._retry_count < self._MAX_RETRIES:
if self._retry_delay > 0:
- logger.debug(
+ self._logger.debug(
'Retry after {} second{}'.format(
self._retry_delay, 's' if self._retry_delay > 1 else ''
)
diff --git a/src/blrec/bili/helpers.py b/src/blrec/bili/helpers.py
index 9e7eac4..b0b3051 100644
--- a/src/blrec/bili/helpers.py
+++ b/src/blrec/bili/helpers.py
@@ -13,7 +13,7 @@ __all__ = 'room_init', 'ensure_room_id'
async def room_init(room_id: int) -> ResponseData:
async with aiohttp.ClientSession(raise_for_status=True) as session:
- api = WebApi(session)
+ api = WebApi(session, room_id=room_id)
return await api.room_init(room_id)
diff --git a/src/blrec/bili/live.py b/src/blrec/bili/live.py
index 82e65d4..0104601 100644
--- a/src/blrec/bili/live.py
+++ b/src/blrec/bili/live.py
@@ -1,6 +1,5 @@
import asyncio
import json
-import logging
import re
import time
from typing import Any, Dict, List
@@ -26,7 +25,7 @@ from .typing import ApiPlatform, QualityNumber, ResponseData, StreamCodec, Strea
__all__ = ('Live',)
-logger = logging.getLogger(__name__)
+from loguru import logger
_INFO_PATTERN = re.compile(
rb''
@@ -36,6 +35,8 @@ _LIVE_STATUS_PATTERN = re.compile(rb'"live_status"\s*:\s*(\d)')
class Live:
def __init__(self, room_id: int, user_agent: str = '', cookie: str = '') -> None:
+ self._logger = logger.bind(room_id=room_id)
+
self._room_id = room_id
self._user_agent = user_agent
self._cookie = cookie
@@ -47,8 +48,8 @@ class Live:
raise_for_status=True,
trust_env=True,
)
- self._appapi = AppApi(self._session, self.headers)
- self._webapi = WebApi(self._session, self.headers)
+ self._appapi = AppApi(self._session, self.headers, room_id=room_id)
+ self._webapi = WebApi(self._session, self.headers, room_id=room_id)
self._room_info: RoomInfo
self._user_info: UserInfo
@@ -189,7 +190,7 @@ class Live:
try:
self._user_info = await self.get_user_info(self._room_info.uid)
except Exception as e:
- logger.error(f'Failed to update user info: {repr(e)}')
+ self._logger.error(f'Failed to update user info: {repr(e)}')
if raise_exception:
raise
return False
@@ -200,7 +201,7 @@ class Live:
try:
self._room_info = await self.get_room_info()
except Exception as e:
- logger.error(f'Failed to update room info: {repr(e)}')
+ self._logger.error(f'Failed to update room info: {repr(e)}')
if raise_exception:
raise
return False
@@ -240,7 +241,7 @@ class Live:
try:
ts = await self.get_server_timestamp()
except Exception as e:
- logger.warning(f'Failed to get timestamp from server: {repr(e)}')
+ self._logger.warning(f'Failed to get timestamp from server: {repr(e)}')
ts = int(time.time())
return ts
diff --git a/src/blrec/bili/live_monitor.py b/src/blrec/bili/live_monitor.py
index d63f1e8..3be4c32 100644
--- a/src/blrec/bili/live_monitor.py
+++ b/src/blrec/bili/live_monitor.py
@@ -1,10 +1,11 @@
import asyncio
-import logging
import random
from contextlib import suppress
+from loguru import logger
+
from blrec.exception import exception_callback
-from blrec.logging.room_id import aio_task_with_room_id
+from blrec.logging.context import async_task_with_logger_context
from ..event.event_emitter import EventEmitter, EventListener
from ..utils.mixins import SwitchableMixin
@@ -17,9 +18,6 @@ from .typing import Danmaku
__all__ = 'LiveMonitor', 'LiveEventListener'
-logger = logging.getLogger(__name__)
-
-
class LiveEventListener(EventListener):
async def on_live_status_changed(
self, current_status: LiveStatus, previous_status: LiveStatus
@@ -45,6 +43,8 @@ class LiveEventListener(EventListener):
class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMixin):
def __init__(self, danmaku_client: DanmakuClient, live: Live) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._danmaku_client = danmaku_client
self._live = live
@@ -61,13 +61,13 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
self._init_status()
self._danmaku_client.add_listener(self)
self._start_polling()
- logger.debug('Enabled live monitor')
+ self._logger.debug('Enabled live monitor')
def _do_disable(self) -> None:
self._danmaku_client.remove_listener(self)
asyncio.create_task(self._stop_polling())
asyncio.create_task(self._stop_checking())
- logger.debug('Disabled live monitor')
+ self._logger.debug('Disabled live monitor')
def _start_polling(self) -> None:
self._polling_task = asyncio.create_task(self._poll_live_status())
@@ -99,23 +99,23 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
# events if necessary.
# make sure the recorder works well continuously after interruptions
# such as an operating system hibernation.
- logger.warning('The Danmaku Client Reconnected')
+ self._logger.warning('The Danmaku Client Reconnected')
await self._live.update_room_info()
current_status = self._live.room_info.live_status
if current_status == self._previous_status:
if current_status == LiveStatus.LIVE:
- logger.debug('Simulating stream reset event')
+ self._logger.debug('Simulating stream reset event')
await self._handle_status_change(current_status)
else:
if current_status == LiveStatus.LIVE:
- logger.debug('Simulating live began event')
+ self._logger.debug('Simulating live began event')
await self._handle_status_change(current_status)
- logger.debug('Simulating live stream available event')
+ self._logger.debug('Simulating live stream available event')
await self._handle_status_change(current_status)
else:
- logger.debug('Simulating live ended event')
+ self._logger.debug('Simulating live ended event')
await self._handle_status_change(current_status)
async def on_danmaku_received(self, danmu: Danmaku) -> None:
@@ -135,7 +135,7 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
await self._emit('room_changed', self._live.room_info)
async def _handle_status_change(self, current_status: LiveStatus) -> None:
- logger.debug(
+ self._logger.debug(
'Live status changed from {} to {}'.format(
self._previous_status.name, current_status.name
)
@@ -163,62 +163,62 @@ class LiveMonitor(EventEmitter[LiveEventListener], DanmakuListener, SwitchableMi
else:
pass
- logger.debug('Number of sequential LIVE status: {}'.format(self._status_count))
+ self._logger.debug(
+ 'Number of sequential LIVE status: {}'.format(self._status_count)
+ )
self._previous_status = current_status
- @aio_task_with_room_id
async def check_live_status(self) -> None:
- logger.debug('Checking live status...')
+ self._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')
+ self._logger.warning(f'Failed to check live status: {repr(e)}')
+ self._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_task_with_logger_context
async def _poll_live_status(self) -> None:
- logger.debug('Started polling live status')
+ self._logger.debug('Started polling live status')
while True:
try:
await asyncio.sleep(600 + random.randrange(-60, 60))
await self._check_live_status()
except asyncio.CancelledError:
- logger.debug('Cancelled polling live status')
+ self._logger.debug('Cancelled polling live status')
break
except Exception as e:
- logger.warning(f'Failed to poll live status: {repr(e)}')
+ self._logger.warning(f'Failed to poll live status: {repr(e)}')
- logger.debug('Stopped polling live status')
+ self._logger.debug('Stopped polling live status')
- @aio_task_with_room_id
+ @async_task_with_logger_context
async def _check_if_stream_available(self) -> None:
- logger.debug('Started checking if stream available')
+ self._logger.debug('Started checking if stream available')
while True:
try:
streams = await self._live.get_live_streams()
if streams:
- logger.debug('live stream available')
+ self._logger.debug('live stream available')
self._stream_available = True
flv_formats = extract_formats(streams, 'flv')
self._live._no_flv_stream = not flv_formats
await self._emit('live_stream_available', self._live)
break
except asyncio.CancelledError:
- logger.debug('Cancelled checking if stream available')
+ self._logger.debug('Cancelled checking if stream available')
break
except Exception as e:
- logger.warning(f'Failed to check if stream available: {repr(e)}')
+ self._logger.warning(f'Failed to check if stream available: {repr(e)}')
await asyncio.sleep(1)
- logger.debug('Stopped checking if stream available')
+ self._logger.debug('Stopped checking if stream available')
diff --git a/src/blrec/cli/main.py b/src/blrec/cli/main.py
index 3e63e29..3efd037 100644
--- a/src/blrec/cli/main.py
+++ b/src/blrec/cli/main.py
@@ -1,4 +1,3 @@
-import logging
import os
import sys
from copy import deepcopy
@@ -6,13 +5,12 @@ from typing import Optional
import typer
import uvicorn
+from loguru import logger
from uvicorn.config import LOGGING_CONFIG
from .. import __prog__, __version__
from ..logging import TqdmOutputStream
-logger = logging.getLogger(__name__)
-
cli = typer.Typer()
diff --git a/src/blrec/core/cover_downloader.py b/src/blrec/core/cover_downloader.py
index 0265629..9ff7501 100644
--- a/src/blrec/core/cover_downloader.py
+++ b/src/blrec/core/cover_downloader.py
@@ -1,16 +1,15 @@
-import logging
from enum import Enum
from threading import Lock
from typing import Set
import aiofiles
import aiohttp
+from loguru import logger
from tenacity import retry, stop_after_attempt, wait_fixed
from blrec.bili.live import Live
from blrec.event.event_emitter import EventEmitter, EventListener
from blrec.exception import submit_exception
-from blrec.logging.room_id import aio_task_with_room_id
from blrec.path import cover_path
from blrec.utils.hash import sha1sum
from blrec.utils.mixins import SwitchableMixin
@@ -20,9 +19,6 @@ from .stream_recorder import StreamRecorder, StreamRecorderEventListener
__all__ = 'CoverDownloader', 'CoverDownloaderEventListener'
-logger = logging.getLogger(__name__)
-
-
class CoverDownloaderEventListener(EventListener):
async def on_cover_image_downloaded(self, path: str) -> None:
...
@@ -54,6 +50,8 @@ class CoverDownloader(
cover_save_strategy: CoverSaveStrategy = CoverSaveStrategy.DEFAULT,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._live = live
self._stream_recorder = stream_recorder
self._lock: Lock = Lock()
@@ -64,11 +62,11 @@ class CoverDownloader(
def _do_enable(self) -> None:
self._sha1_set.clear()
self._stream_recorder.add_listener(self)
- logger.debug('Enabled cover downloader')
+ self._logger.debug('Enabled cover downloader')
def _do_disable(self) -> None:
self._stream_recorder.remove_listener(self)
- logger.debug('Disabled cover downloader')
+ self._logger.debug('Disabled cover downloader')
async def on_video_file_completed(self, video_path: str) -> None:
with self._lock:
@@ -76,7 +74,6 @@ class CoverDownloader(
return
await self._save_cover(video_path)
- @aio_task_with_room_id
async def _save_cover(self, video_path: str) -> None:
try:
await self._live.update_room_info()
@@ -92,10 +89,10 @@ class CoverDownloader(
await self._save_file(path, data)
self._sha1_set.add(sha1)
except Exception as e:
- logger.error(f'Failed to save cover image: {repr(e)}')
+ self._logger.error(f'Failed to save cover image: {repr(e)}')
submit_exception(e)
else:
- logger.info(f'Saved cover image: {path}')
+ self._logger.info(f'Saved cover image: {path}')
await self._emit('cover_image_downloaded', path)
@retry(reraise=True, wait=wait_fixed(1), stop=stop_after_attempt(3))
diff --git a/src/blrec/core/danmaku_dumper.py b/src/blrec/core/danmaku_dumper.py
index 62f75b1..f586b1b 100644
--- a/src/blrec/core/danmaku_dumper.py
+++ b/src/blrec/core/danmaku_dumper.py
@@ -1,11 +1,11 @@
import asyncio
import html
-import logging
from contextlib import suppress
from decimal import Decimal
from threading import Lock
from typing import Iterator, List, Optional
+from loguru import logger
from tenacity import AsyncRetrying, retry_if_not_exception_type, stop_after_attempt
from blrec import __github__, __prog__, __version__
@@ -22,7 +22,7 @@ from blrec.danmaku.models import (
)
from blrec.event.event_emitter import EventEmitter, EventListener
from blrec.exception import exception_callback, submit_exception
-from blrec.logging.room_id import aio_task_with_room_id
+from blrec.logging.context import async_task_with_logger_context
from blrec.path import danmaku_path
from blrec.utils.mixins import SwitchableMixin
@@ -33,9 +33,6 @@ from .stream_recorder import StreamRecorder, StreamRecorderEventListener
__all__ = 'DanmakuDumper', 'DanmakuDumperEventListener'
-logger = logging.getLogger(__name__)
-
-
class DanmakuDumperEventListener(EventListener):
async def on_danmaku_file_created(self, path: str) -> None:
...
@@ -62,6 +59,8 @@ class DanmakuDumper(
record_super_chat: bool = False,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._live = live
self._stream_recorder = stream_recorder
@@ -97,13 +96,13 @@ class DanmakuDumper(
def _do_enable(self) -> None:
self._stream_recorder.add_listener(self)
self._statistics.reset()
- logger.debug('Enabled danmaku dumper')
+ self._logger.debug('Enabled danmaku dumper')
def _do_disable(self) -> None:
self._stream_recorder.remove_listener(self)
asyncio.create_task(self._stop_dumping())
self._statistics.freeze()
- logger.debug('Disabled danmaku dumper')
+ self._logger.debug('Disabled danmaku dumper')
def set_live_start_time(self, time: int) -> None:
self._live_start_time = time
@@ -141,7 +140,7 @@ class DanmakuDumper(
self._interrupted_timestamp = timestamp
self._duration = duration
self._stream_recording_interrupted = True
- logger.debug(
+ self._logger.debug(
'Stream recording interrupted, '
f'timestamp: {timestamp}, duration: {duration}'
)
@@ -153,13 +152,13 @@ class DanmakuDumper(
- Decimal(str(self._interrupted_timestamp))
)
self._stream_recording_interrupted = False
- logger.debug(
+ self._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._logger.debug(f'Total duration lost: ≈ {(duration)} s')
self._delta = -duration
def _start_dumping(self) -> None:
@@ -179,14 +178,14 @@ class DanmakuDumper(
with suppress(asyncio.CancelledError):
await self._dump_task
- @aio_task_with_room_id
+ @async_task_with_logger_context
async def _do_dump(self) -> None:
assert self._path is not None
- logger.debug('Started dumping danmaku')
+ self._logger.debug('Started dumping danmaku')
try:
async with DanmakuWriter(self._path) as writer:
- logger.info(f"Danmaku file created: '{self._path}'")
+ self._logger.info(f"Danmaku file created: '{self._path}'")
await self._emit('danmaku_file_created', self._path)
await writer.write_metadata(self._make_metadata())
@@ -201,9 +200,9 @@ class DanmakuDumper(
submit_exception(e)
raise
finally:
- logger.info(f"Danmaku file completed: '{self._path}'")
+ self._logger.info(f"Danmaku file completed: '{self._path}'")
await self._emit('danmaku_file_completed', self._path)
- logger.debug('Stopped dumping danmaku')
+ self._logger.debug('Stopped dumping danmaku')
async def _dumping_loop(self, writer: DanmakuWriter) -> None:
while True:
@@ -230,7 +229,7 @@ class DanmakuDumper(
continue
await writer.write_super_chat_record(self._make_super_chat_record(msg))
else:
- logger.warning(f'Unsupported message type: {repr(msg)}')
+ self._logger.warning(f'Unsupported message type: {repr(msg)}')
def _make_metadata(self) -> Metadata:
return Metadata(
diff --git a/src/blrec/core/danmaku_receiver.py b/src/blrec/core/danmaku_receiver.py
index d96ece5..4d8cf42 100644
--- a/src/blrec/core/danmaku_receiver.py
+++ b/src/blrec/core/danmaku_receiver.py
@@ -1,8 +1,10 @@
-import logging
from asyncio import Queue, QueueFull
from typing import Final
+from loguru import logger
+
from blrec.bili.danmaku_client import DanmakuClient, DanmakuCommand, DanmakuListener
+from blrec.bili.live import Live
from blrec.bili.typing import Danmaku
from blrec.utils.mixins import StoppableMixin
@@ -12,25 +14,23 @@ from .typing import DanmakuMsg
__all__ = ('DanmakuReceiver',)
-logger = logging.getLogger(__name__)
-
-
class DanmakuReceiver(DanmakuListener, StoppableMixin):
_MAX_QUEUE_SIZE: Final[int] = 2000
- def __init__(self, danmaku_client: DanmakuClient) -> None:
+ def __init__(self, live: Live, danmaku_client: DanmakuClient) -> None:
super().__init__()
+ self._logger = logger.bind(room_id=live.room_id)
self._danmaku_client = danmaku_client
self._queue: Queue[DanmakuMsg] = Queue(maxsize=self._MAX_QUEUE_SIZE)
def _do_start(self) -> None:
self._danmaku_client.add_listener(self)
- logger.debug('Started danmaku receiver')
+ self._logger.debug('Started danmaku receiver')
def _do_stop(self) -> None:
self._danmaku_client.remove_listener(self)
self._clear_queue()
- logger.debug('Stopped danmaku receiver')
+ self._logger.debug('Stopped danmaku receiver')
async def get_message(self) -> DanmakuMsg:
return await self._queue.get()
diff --git a/src/blrec/core/flv_stream_recorder_impl.py b/src/blrec/core/flv_stream_recorder_impl.py
index 2ebba6d..efa0965 100644
--- a/src/blrec/core/flv_stream_recorder_impl.py
+++ b/src/blrec/core/flv_stream_recorder_impl.py
@@ -1,6 +1,6 @@
-import logging
from typing import Optional
+from loguru import logger
from reactivex.scheduler import NewThreadScheduler
from blrec.bili.live import Live
@@ -16,9 +16,6 @@ from .stream_recorder_impl import StreamRecorderImpl
__all__ = ('FLVStreamRecorderImpl',)
-logger = logging.getLogger(__name__)
-
-
class FLVStreamRecorderImpl(StreamRecorderImpl, SupportDebugMixin):
def __init__(
self,
@@ -134,30 +131,33 @@ class FLVStreamRecorderImpl(StreamRecorderImpl, SupportDebugMixin):
self._metadata_dumper.disable()
def _run(self) -> None:
- self._subscription = (
- self._stream_param_holder.get_stream_params() # type: ignore
- .pipe(
- self._stream_url_resolver,
- self._stream_fetcher,
- self._recording_monitor,
- self._dl_statistics,
- self._stream_parser,
- self._connection_error_handler,
- self._request_exception_handler,
- flv_ops.process(sort_tags=True),
- self._cutter,
- self._limiter,
- self._join_point_extractor,
- self._prober,
- self._injector,
- self._analyser,
- self._dumper,
- self._rec_statistics,
- self._progress_bar,
- self._exception_handler,
+ with logger.contextualize(room_id=self._live.room_id):
+ self._subscription = (
+ self._stream_param_holder.get_stream_params() # type: ignore
+ .pipe(
+ self._stream_url_resolver,
+ self._stream_fetcher,
+ self._recording_monitor,
+ self._dl_statistics,
+ self._stream_parser,
+ self._connection_error_handler,
+ self._request_exception_handler,
+ flv_ops.process(sort_tags=True),
+ self._cutter,
+ self._limiter,
+ self._join_point_extractor,
+ self._prober,
+ self._injector,
+ self._analyser,
+ self._dumper,
+ self._rec_statistics,
+ self._progress_bar,
+ self._exception_handler,
+ )
+ .subscribe(
+ on_completed=self._on_completed,
+ scheduler=NewThreadScheduler(
+ self._thread_factory('StreamRecorder')
+ ),
+ )
)
- .subscribe(
- on_completed=self._on_completed,
- scheduler=NewThreadScheduler(self._thread_factory('StreamRecorder')),
- )
- )
diff --git a/src/blrec/core/hls_stream_recorder_impl.py b/src/blrec/core/hls_stream_recorder_impl.py
index 668c14f..484bf7a 100644
--- a/src/blrec/core/hls_stream_recorder_impl.py
+++ b/src/blrec/core/hls_stream_recorder_impl.py
@@ -1,6 +1,6 @@
-import logging
from typing import Optional
+from loguru import logger
from reactivex.scheduler import NewThreadScheduler
from blrec.bili.live import Live
@@ -16,9 +16,6 @@ from .stream_recorder_impl import StreamRecorderImpl
__all__ = ('HLSStreamRecorderImpl',)
-logger = logging.getLogger(__name__)
-
-
class HLSStreamRecorderImpl(StreamRecorderImpl):
def __init__(
self,
@@ -123,32 +120,37 @@ class HLSStreamRecorderImpl(StreamRecorderImpl):
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_resolver,
- utils_ops.observe_on_new_thread(
- queue_size=60, thread_name=f'SegmentFetcher::{self._live.room_id}'
- ),
- self._segment_fetcher,
- self._dl_statistics,
- self._prober,
- self._analyser,
- self._cutter,
- self._limiter,
- self._segment_dumper,
- self._rec_statistics,
- self._progress_bar,
- self._playlist_dumper,
- self._exception_handler,
+ with logger.contextualize(room_id=self._live.room_id):
+ 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_resolver,
+ utils_ops.observe_on_new_thread(
+ queue_size=60,
+ thread_name=f'SegmentFetcher::{self._live.room_id}',
+ logger_context={'room_id': self._live.room_id},
+ ),
+ self._segment_fetcher,
+ self._dl_statistics,
+ self._prober,
+ self._analyser,
+ self._cutter,
+ self._limiter,
+ self._segment_dumper,
+ self._rec_statistics,
+ self._progress_bar,
+ self._playlist_dumper,
+ self._exception_handler,
+ )
+ .subscribe(
+ on_completed=self._on_completed,
+ scheduler=NewThreadScheduler(
+ self._thread_factory('HLSStreamRecorder')
+ ),
+ )
)
- .subscribe(
- on_completed=self._on_completed,
- scheduler=NewThreadScheduler(self._thread_factory('HLSStreamRecorder')),
- )
- )
diff --git a/src/blrec/core/models.py b/src/blrec/core/models.py
index 4d8b8f6..ed1095f 100644
--- a/src/blrec/core/models.py
+++ b/src/blrec/core/models.py
@@ -1,12 +1,9 @@
-import logging
from typing import Literal
import attr
from blrec.bili.typing import Danmaku
-logger = logging.getLogger(__name__)
-
@attr.s(auto_attribs=True, frozen=True, slots=True)
class DanmuMsg:
diff --git a/src/blrec/core/operators/connection_error_handler.py b/src/blrec/core/operators/connection_error_handler.py
index f4f2c5c..f28bd1f 100644
--- a/src/blrec/core/operators/connection_error_handler.py
+++ b/src/blrec/core/operators/connection_error_handler.py
@@ -1,11 +1,11 @@
from __future__ import annotations
-import logging
import time
from typing import Optional, TypeVar
import aiohttp
import requests
+from loguru import logger
from reactivex import Observable, abc
from blrec.bili.live import Live
@@ -15,8 +15,6 @@ from blrec.utils.mixins import AsyncCooperationMixin
__all__ = ('ConnectionErrorHandler',)
-logger = logging.getLogger(__name__)
-
_T = TypeVar('_T')
diff --git a/src/blrec/core/operators/exception_handler.py b/src/blrec/core/operators/exception_handler.py
index ebe2398..3429f81 100644
--- a/src/blrec/core/operators/exception_handler.py
+++ b/src/blrec/core/operators/exception_handler.py
@@ -1,20 +1,19 @@
from __future__ import annotations
import errno
-import logging
from typing import Optional, TypeVar
+from loguru import logger
from reactivex import Observable, abc
from blrec.bili.exceptions import LiveRoomEncrypted, LiveRoomHidden, LiveRoomLocked
+from blrec.exception.helpers import format_exception
from blrec.utils import operators as utils_ops
from blrec.utils.mixins import AsyncCooperationMixin
__all__ = ('ExceptionHandler',)
-logger = logging.getLogger(__name__)
-
_T = TypeVar('_T')
@@ -28,12 +27,11 @@ class ExceptionHandler(AsyncCooperationMixin):
scheduler: Optional[abc.SchedulerBase] = None,
) -> abc.DisposableBase:
def on_error(exc: Exception) -> None:
- logger.exception(repr(exc))
self._submit_exception(exc)
try:
raise exc
except OSError as e:
- logger.critical(repr(e), exc_info=e)
+ logger.critical('{}\n{}', repr(exc), format_exception(exc))
if e.errno == errno.ENOSPC:
# OSError(28, 'No space left on device')
observer.on_completed()
diff --git a/src/blrec/core/operators/progress_bar.py b/src/blrec/core/operators/progress_bar.py
index 14ce1a5..e8afd51 100644
--- a/src/blrec/core/operators/progress_bar.py
+++ b/src/blrec/core/operators/progress_bar.py
@@ -1,6 +1,5 @@
from __future__ import annotations
-import logging
import os
from typing import Optional
@@ -13,11 +12,8 @@ from blrec.flv.operators.typing import FLVStream, FLVStreamItem
__all__ = ('ProgressBar',)
-
DISPLAY_PROGRESS = bool(os.environ.get('BLREC_PROGRESS'))
-logger = logging.getLogger(__name__)
-
class ProgressBar:
def __init__(self, live: Live) -> None:
diff --git a/src/blrec/core/operators/recording_monitor.py b/src/blrec/core/operators/recording_monitor.py
index d8c058f..70c2a20 100644
--- a/src/blrec/core/operators/recording_monitor.py
+++ b/src/blrec/core/operators/recording_monitor.py
@@ -1,6 +1,5 @@
from __future__ import annotations
-import logging
import time
from typing import Callable, Final, Optional, Tuple, TypeVar
@@ -12,8 +11,6 @@ from blrec.utils.mixins import AsyncCooperationMixin
__all__ = ('RecordingMonitor',)
-logger = logging.getLogger(__name__)
-
_T = TypeVar('_T')
diff --git a/src/blrec/core/operators/request_exception_handler.py b/src/blrec/core/operators/request_exception_handler.py
index b10a53e..e471d69 100644
--- a/src/blrec/core/operators/request_exception_handler.py
+++ b/src/blrec/core/operators/request_exception_handler.py
@@ -1,13 +1,13 @@
from __future__ import annotations
import asyncio
-import logging
import time
from typing import Optional, TypeVar
import aiohttp
import requests
import urllib3
+from loguru import logger
from reactivex import Observable, abc
from reactivex import operators as ops
@@ -17,8 +17,6 @@ from blrec.utils import operators as utils_ops
__all__ = ('RequestExceptionHandler',)
-logger = logging.getLogger(__name__)
-
_T = TypeVar('_T')
diff --git a/src/blrec/core/operators/stream_fetcher.py b/src/blrec/core/operators/stream_fetcher.py
index 6ec9953..24272c4 100644
--- a/src/blrec/core/operators/stream_fetcher.py
+++ b/src/blrec/core/operators/stream_fetcher.py
@@ -1,10 +1,10 @@
from __future__ import annotations
import io
-import logging
from typing import Optional
import requests
+from loguru import logger
from reactivex import Observable, abc
from blrec.bili.live import Live
@@ -13,9 +13,6 @@ from blrec.utils.mixins import AsyncCooperationMixin
__all__ = ('StreamFetcher',)
-logger = logging.getLogger(__name__)
-
-
class StreamFetcher(AsyncCooperationMixin):
def __init__(
self,
diff --git a/src/blrec/core/operators/stream_parser.py b/src/blrec/core/operators/stream_parser.py
index c03c47a..25bfbe7 100644
--- a/src/blrec/core/operators/stream_parser.py
+++ b/src/blrec/core/operators/stream_parser.py
@@ -1,8 +1,8 @@
from __future__ import annotations
import io
-import logging
+from loguru import logger
from reactivex import Observable
from reactivex import operators as ops
@@ -16,9 +16,6 @@ from ..stream_param_holder import StreamParamHolder
__all__ = ('StreamParser',)
-logger = logging.getLogger(__name__)
-
-
class StreamParser:
def __init__(
self,
diff --git a/src/blrec/core/operators/stream_url_resolver.py b/src/blrec/core/operators/stream_url_resolver.py
index ac5a652..a75f396 100644
--- a/src/blrec/core/operators/stream_url_resolver.py
+++ b/src/blrec/core/operators/stream_url_resolver.py
@@ -1,10 +1,10 @@
from __future__ import annotations
-import logging
from typing import Final, Optional
from urllib.parse import urlparse
import requests
+from loguru import logger
from reactivex import Observable, abc
from reactivex import operators as ops
@@ -28,9 +28,6 @@ from ..stream_param_holder import StreamParamHolder, StreamParams
__all__ = ('StreamURLResolver',)
-logger = logging.getLogger(__name__)
-
-
class StreamURLResolver(AsyncCooperationMixin):
_MAX_ATTEMPTS_FOR_NO_STREAM: Final[int] = 10
diff --git a/src/blrec/core/path_provider.py b/src/blrec/core/path_provider.py
index 3db8fef..b7c83d4 100644
--- a/src/blrec/core/path_provider.py
+++ b/src/blrec/core/path_provider.py
@@ -1,4 +1,3 @@
-import logging
import os
import re
from datetime import datetime
@@ -10,8 +9,6 @@ from blrec.utils.mixins import AsyncCooperationMixin
__all__ = ('PathProvider',)
-logger = logging.getLogger(__name__)
-
class PathProvider(AsyncCooperationMixin):
def __init__(self, live: Live, out_dir: str, path_template: str) -> None:
diff --git a/src/blrec/core/raw_danmaku_dumper.py b/src/blrec/core/raw_danmaku_dumper.py
index a14ac71..8a85aae 100644
--- a/src/blrec/core/raw_danmaku_dumper.py
+++ b/src/blrec/core/raw_danmaku_dumper.py
@@ -1,17 +1,17 @@
import asyncio
import json
-import logging
from contextlib import suppress
from threading import Lock
import aiofiles
from aiofiles.threadpool.text import AsyncTextIOWrapper
+from loguru import logger
from tenacity import AsyncRetrying, retry_if_not_exception_type, stop_after_attempt
from blrec.bili.live import Live
from blrec.event.event_emitter import EventEmitter, EventListener
from blrec.exception import exception_callback, submit_exception
-from blrec.logging.room_id import aio_task_with_room_id
+from blrec.logging.context import async_task_with_logger_context
from blrec.path import raw_danmaku_path
from blrec.utils.mixins import SwitchableMixin
@@ -21,9 +21,6 @@ from .stream_recorder import StreamRecorder, StreamRecorderEventListener
__all__ = 'RawDanmakuDumper', 'RawDanmakuDumperEventListener'
-logger = logging.getLogger(__name__)
-
-
class RawDanmakuDumperEventListener(EventListener):
async def on_raw_danmaku_file_created(self, path: str) -> None:
...
@@ -44,19 +41,20 @@ class RawDanmakuDumper(
danmaku_receiver: RawDanmakuReceiver,
) -> None:
super().__init__()
- self._live = live # @aio_task_with_room_id
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._stream_recorder = stream_recorder
self._receiver = danmaku_receiver
self._lock: Lock = Lock()
def _do_enable(self) -> None:
self._stream_recorder.add_listener(self)
- logger.debug('Enabled raw danmaku dumper')
+ self._logger.debug('Enabled raw danmaku dumper')
def _do_disable(self) -> None:
self._stream_recorder.remove_listener(self)
asyncio.create_task(self._stop_dumping())
- logger.debug('Disabled raw danmaku dumper')
+ self._logger.debug('Disabled raw danmaku dumper')
async def on_video_file_created(
self, video_path: str, record_start_time: int
@@ -87,12 +85,12 @@ class RawDanmakuDumper(
with suppress(asyncio.CancelledError):
await self._dump_task
- @aio_task_with_room_id
+ @async_task_with_logger_context
async def _do_dump(self) -> None:
- logger.debug('Started dumping raw danmaku')
+ self._logger.debug('Started dumping raw danmaku')
try:
async with aiofiles.open(self._path, 'wt', encoding='utf8') as f:
- logger.info(f"Raw danmaku file created: '{self._path}'")
+ self._logger.info(f"Raw danmaku file created: '{self._path}'")
await self._emit('raw_danmaku_file_created', self._path)
async for attempt in AsyncRetrying(
@@ -110,9 +108,9 @@ class RawDanmakuDumper(
json_string = json.dumps(danmu, ensure_ascii=False)
await f.write(json_string + '\n')
finally:
- logger.info(f"Raw danmaku file completed: '{self._path}'")
+ self._logger.info(f"Raw danmaku file completed: '{self._path}'")
await self._emit('raw_danmaku_file_completed', self._path)
- logger.debug('Stopped dumping raw danmaku')
+ self._logger.debug('Stopped dumping raw danmaku')
async def _dumping_loop(self, file: AsyncTextIOWrapper) -> None:
while True:
diff --git a/src/blrec/core/raw_danmaku_receiver.py b/src/blrec/core/raw_danmaku_receiver.py
index 7a68c13..c118307 100644
--- a/src/blrec/core/raw_danmaku_receiver.py
+++ b/src/blrec/core/raw_danmaku_receiver.py
@@ -1,33 +1,33 @@
-import logging
from asyncio import Queue, QueueFull
from typing import Final
+from loguru import logger
+
from blrec.bili.danmaku_client import DanmakuClient, DanmakuListener
+from blrec.bili.live import Live
from blrec.bili.typing import Danmaku
from blrec.utils.mixins import StoppableMixin
__all__ = ('RawDanmakuReceiver',)
-logger = logging.getLogger(__name__)
-
-
class RawDanmakuReceiver(DanmakuListener, StoppableMixin):
_MAX_QUEUE_SIZE: Final[int] = 2000
- def __init__(self, danmaku_client: DanmakuClient) -> None:
+ def __init__(self, live: Live, danmaku_client: DanmakuClient) -> None:
super().__init__()
+ self._logger = logger.bind(room_id=live.room_id)
self._danmaku_client = danmaku_client
self._queue: Queue[Danmaku] = Queue(maxsize=self._MAX_QUEUE_SIZE)
def _do_start(self) -> None:
self._danmaku_client.add_listener(self)
- logger.debug('Started raw danmaku receiver')
+ self._logger.debug('Started raw danmaku receiver')
def _do_stop(self) -> None:
self._danmaku_client.remove_listener(self)
self._clear_queue()
- logger.debug('Stopped raw danmaku receiver')
+ self._logger.debug('Stopped raw danmaku receiver')
async def get_raw_danmaku(self) -> Danmaku:
return await self._queue.get()
diff --git a/src/blrec/core/recorder.py b/src/blrec/core/recorder.py
index 2493644..a3134c4 100644
--- a/src/blrec/core/recorder.py
+++ b/src/blrec/core/recorder.py
@@ -1,11 +1,11 @@
from __future__ import annotations
import asyncio
-import logging
from datetime import datetime
from typing import Iterator, Optional
import humanize
+from loguru import logger
from blrec.bili.danmaku_client import DanmakuClient
from blrec.bili.live import Live
@@ -32,9 +32,6 @@ from .stream_recorder import StreamRecorder, StreamRecorderEventListener
__all__ = 'RecorderEventListener', 'Recorder'
-logger = logging.getLogger(__name__)
-
-
class RecorderEventListener(EventListener):
async def on_recording_started(self, recorder: Recorder) -> None:
...
@@ -105,6 +102,8 @@ class Recorder(
save_raw_danmaku: bool = False,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._live = live
self._danmaku_client = danmaku_client
@@ -130,9 +129,9 @@ class Recorder(
duration_limit=duration_limit,
)
- self._danmaku_receiver = DanmakuReceiver(danmaku_client)
+ self._danmaku_receiver = DanmakuReceiver(live, danmaku_client)
self._danmaku_dumper = DanmakuDumper(
- self._live,
+ live,
self._stream_recorder,
self._danmaku_receiver,
danmu_uname=danmu_uname,
@@ -141,13 +140,13 @@ class Recorder(
record_guard_buy=record_guard_buy,
record_super_chat=record_super_chat,
)
- self._raw_danmaku_receiver = RawDanmakuReceiver(danmaku_client)
+ self._raw_danmaku_receiver = RawDanmakuReceiver(live, danmaku_client)
self._raw_danmaku_dumper = RawDanmakuDumper(
- self._live, self._stream_recorder, self._raw_danmaku_receiver
+ live, self._stream_recorder, self._raw_danmaku_receiver
)
self._cover_downloader = CoverDownloader(
- self._live,
+ live,
self._stream_recorder,
save_cover=save_cover,
cover_save_strategy=cover_save_strategy,
@@ -380,12 +379,12 @@ class Recorder(
return self._stream_recorder.cut_stream()
async def on_live_began(self, live: Live) -> None:
- logger.info('The live has began')
+ self._logger.info('The live has began')
self._print_live_info()
await self._start_recording()
async def on_live_ended(self, live: Live) -> None:
- logger.info('The live has ended')
+ self._logger.info('The live has ended')
await asyncio.sleep(3)
self._stream_available = False
self._stream_recorder.stream_available_time = None
@@ -393,13 +392,13 @@ class Recorder(
self._print_waiting_message()
async def on_live_stream_available(self, live: Live) -> None:
- logger.debug('The live stream becomes available')
+ self._logger.debug('The live stream becomes available')
self._stream_available = True
self._stream_recorder.stream_available_time = await live.get_timestamp()
await self._stream_recorder.start()
async def on_live_stream_reset(self, live: Live) -> None:
- logger.warning('The live stream has been reset')
+ self._logger.warning('The live stream has been reset')
if not self._recording:
await self._start_recording()
@@ -429,7 +428,7 @@ class Recorder(
await self._emit('cover_image_downloaded', self, path)
async def on_stream_recording_completed(self) -> None:
- logger.debug('Stream recording completed')
+ self._logger.debug('Stream recording completed')
await self._stop_recording()
async def _do_start(self) -> None:
@@ -437,7 +436,7 @@ class Recorder(
self._danmaku_dumper.add_listener(self)
self._raw_danmaku_dumper.add_listener(self)
self._cover_downloader.add_listener(self)
- logger.debug('Started recorder')
+ self._logger.debug('Started recorder')
self._print_live_info()
if self._live.is_living():
@@ -452,7 +451,7 @@ class Recorder(
self._danmaku_dumper.remove_listener(self)
self._raw_danmaku_dumper.remove_listener(self)
self._cover_downloader.remove_listener(self)
- logger.debug('Stopped recorder')
+ self._logger.debug('Stopped recorder')
async def _start_recording(self) -> None:
if self._recording:
@@ -471,7 +470,7 @@ class Recorder(
if self._stream_available:
await self._stream_recorder.start()
- logger.info('Started recording')
+ self._logger.info('Started recording')
await self._emit('recording_started', self)
async def _stop_recording(self) -> None:
@@ -489,10 +488,10 @@ class Recorder(
self._stream_recorder.remove_listener(self)
if self._stopped:
- logger.info('Recording Cancelled')
+ self._logger.info('Recording Cancelled')
await self._emit('recording_cancelled', self)
else:
- logger.info('Recording Finished')
+ self._logger.info('Recording Finished')
await self._emit('recording_finished', self)
async def _prepare(self) -> None:
@@ -502,7 +501,7 @@ class Recorder(
self._stream_recorder.clear_files()
def _print_waiting_message(self) -> None:
- logger.info('Waiting... until the live starts')
+ self._logger.info('Waiting... until the live starts')
def _print_live_info(self) -> None:
room_info = self._live.room_info
@@ -537,7 +536,7 @@ description :
{room_info.description}
===============================================================================
"""
- logger.info(msg)
+ self._logger.info(msg)
def _print_changed_room_info(self, room_info: RoomInfo) -> None:
msg = f"""
@@ -549,4 +548,4 @@ parent area id : {room_info.parent_area_id}
parent area name : {room_info.parent_area_name}
===============================================================================
"""
- logger.info(msg)
+ self._logger.info(msg)
diff --git a/src/blrec/core/stream_param_holder.py b/src/blrec/core/stream_param_holder.py
index 8874a22..d3910a9 100644
--- a/src/blrec/core/stream_param_holder.py
+++ b/src/blrec/core/stream_param_holder.py
@@ -1,6 +1,5 @@
from __future__ import annotations
-import logging
from typing import Any, Final, Optional
import attr
@@ -13,9 +12,6 @@ from blrec.bili.typing import ApiPlatform, QualityNumber, StreamFormat
__all__ = ('StreamParamHolder',)
-logger = logging.getLogger(__name__)
-
-
@attr.s(auto_attribs=True, frozen=True, slots=True)
class StreamParams:
stream_format: StreamFormat
diff --git a/src/blrec/core/stream_recorder.py b/src/blrec/core/stream_recorder.py
index b19bebc..5dd54a3 100644
--- a/src/blrec/core/stream_recorder.py
+++ b/src/blrec/core/stream_recorder.py
@@ -1,8 +1,9 @@
import asyncio
-import logging
import time
from typing import Iterator, Optional
+from loguru import logger
+
from blrec.bili.live import Live
from blrec.bili.live_monitor import LiveMonitor
from blrec.bili.typing import QualityNumber, StreamFormat
@@ -20,9 +21,6 @@ from .typing import MetaData
__all__ = 'StreamRecorder', 'StreamRecorderEventListener'
-logger = logging.getLogger(__name__)
-
-
class StreamRecorder(
StreamRecorderEventListener,
EventEmitter[StreamRecorderEventListener],
@@ -46,6 +44,8 @@ class StreamRecorder(
duration_limit: int = 0,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._live = live
self._live_monitor = live_monitor
@@ -58,7 +58,7 @@ class StreamRecorder(
elif stream_format == 'fmp4':
cls = HLSStreamRecorderImpl # type: ignore
else:
- logger.warning(
+ self._logger.warning(
f'The specified stream format ({stream_format}) is '
'unsupported, will using the stream format (flv) instead.'
)
@@ -242,7 +242,7 @@ class StreamRecorder(
if self._live.has_no_flv_streams():
if stream_format == 'flv':
- logger.warning(
+ self._logger.warning(
'The specified stream format (flv) is not available, '
'falling back to stream format (fmp4).'
)
@@ -250,7 +250,7 @@ class StreamRecorder(
self.hls_stream_available_time = self.stream_available_time
else:
if stream_format == 'fmp4':
- logger.info('Waiting for the fmp4 stream becomes available...')
+ self._logger.info('Waiting for the fmp4 stream becomes available...')
available = await self._wait_fmp4_stream()
if available:
if self.stream_available_time is not None:
@@ -258,7 +258,7 @@ class StreamRecorder(
await self._live.get_timestamp()
)
else:
- logger.warning(
+ self._logger.warning(
'The specified stream format (fmp4) is not available '
f'in {self.fmp4_stream_timeout} seconcds, '
'falling back to stream format (flv).'
@@ -312,7 +312,7 @@ class StreamRecorder(
elif stream_format == 'fmp4':
cls = HLSStreamRecorderImpl # type: ignore
else:
- logger.warning(
+ self._logger.warning(
f'The specified stream format ({stream_format}) is '
'unsupported, will using the stream format (flv) instead.'
)
@@ -342,4 +342,4 @@ class StreamRecorder(
self._impl.stream_available_time = stream_available_time
self._impl.hls_stream_available_time = hls_stream_available_time
- logger.debug(f'Changed stream recorder impl to {cls.__name__}')
+ self._logger.debug(f'Changed stream recorder impl to {cls.__name__}')
diff --git a/src/blrec/core/stream_recorder_impl.py b/src/blrec/core/stream_recorder_impl.py
index e15d1db..0624f24 100644
--- a/src/blrec/core/stream_recorder_impl.py
+++ b/src/blrec/core/stream_recorder_impl.py
@@ -7,6 +7,7 @@ from typing import Any, Iterator, List, Optional, Tuple, Union
import requests
import urllib3
+from loguru import logger
from reactivex import abc
from reactivex.typing import StartableFactory, StartableTarget
@@ -29,7 +30,6 @@ from .stream_param_holder import StreamParamHolder
__all__ = ('StreamRecorderImpl',)
-logger = logging.getLogger(__name__)
logging.getLogger(urllib3.__name__).setLevel(logging.WARNING)
@@ -78,6 +78,8 @@ class StreamRecorderImpl(
duration_limit: int = 0,
) -> None:
super().__init__()
+ self._logger_context = {'room_id': live.room_id}
+ self._logger = logger.bind(**self._logger_context)
self._live = live
self._live_monitor = live_monitor
@@ -282,14 +284,14 @@ class StreamRecorderImpl(
self._completed = False
async def _do_start(self) -> None:
- logger.debug('Starting stream recorder...')
+ self._logger.debug('Starting stream recorder...')
self._on_start()
self._reset()
self._run()
- logger.debug('Started stream recorder')
+ self._logger.debug('Started stream recorder')
async def _do_stop(self) -> None:
- logger.debug('Stopping stream recorder...')
+ self._logger.debug('Stopping stream recorder...')
self._stream_param_holder.cancel()
thread = self._thread_factory('StreamRecorderDisposer')(self._dispose)
thread.start()
@@ -297,7 +299,7 @@ class StreamRecorderImpl(
await self._loop.run_in_executor(None, thread.join, 30)
self._threads.clear()
self._on_stop()
- logger.debug('Stopped stream recorder')
+ self._logger.debug('Stopped stream recorder')
def _on_start(self) -> None:
pass
@@ -311,10 +313,15 @@ class StreamRecorderImpl(
def _thread_factory(self, name: str) -> StartableFactory:
def factory(target: StartableTarget) -> Thread:
+ def run() -> None:
+ with logger.contextualize(room_id=self._live.room_id):
+ target()
+
thread = Thread(
- target=target, daemon=True, name=f'{name}::{self._live.room_id}'
+ target=run, daemon=True, name=f'{name}::{self._live.room_id}'
)
self._threads.append(thread)
+
return thread
return factory
@@ -334,24 +341,24 @@ class StreamRecorderImpl(
self._emit_event('stream_recording_completed')
def _on_profile_updated(self, profile: StreamProfile) -> None:
- logger.debug(f'Stream profile: {profile}')
+ self._logger.debug(f'Stream profile: {profile}')
self._stream_profile = profile
def _on_video_file_opened(self, args: Tuple[str, int]) -> None:
- logger.info(f"Video file created: '{args[0]}'")
+ self._logger.info(f"Video file created: '{args[0]}'")
self._files.append(args[0])
self._record_start_time = args[1]
self._emit_event('video_file_created', *args)
def _on_video_file_closed(self, path: str) -> None:
- logger.info(f"Video file completed: '{path}'")
+ self._logger.info(f"Video file completed: '{path}'")
self._emit_event('video_file_completed', path)
def _on_recording_interrupted(self, args: Tuple[float, float]) -> None:
timestamp, duration = args[0], args[1]
datetime_string = datetime.fromtimestamp(timestamp).isoformat()
duration_string = format_timestamp(int(duration * 1000))
- logger.info(
+ self._logger.warning(
f'Recording interrupted, datetime: {datetime_string}, '
f'duration: {duration_string}'
)
@@ -359,11 +366,11 @@ class StreamRecorderImpl(
def _on_recording_recovered(self, timestamp: float) -> None:
datetime_string = datetime.fromtimestamp(timestamp).isoformat()
- logger.info(f'Recording recovered, datetime: {(datetime_string)}')
+ self._logger.warning(f'Recording recovered, datetime: {(datetime_string)}')
self._emit_event('stream_recording_recovered', timestamp)
def _on_duration_lost(self, duration: float) -> None:
- logger.info(f'Total duration lost: {(duration)}')
+ self._logger.warning(f'Total duration lost: ≈ {(duration)} s')
self._emit_event('duration_lost', duration)
def _emit_event(self, name: str, *args: Any, **kwds: Any) -> None:
diff --git a/src/blrec/danmaku/combination.py b/src/blrec/danmaku/combination.py
index 2409297..1ec8535 100644
--- a/src/blrec/danmaku/combination.py
+++ b/src/blrec/danmaku/combination.py
@@ -1,18 +1,12 @@
-import logging
from typing import Iterable
-
-from .io import DanmakuReader, DanmakuWriter
from .common import copy_damus
+from .io import DanmakuReader, DanmakuWriter
from .typing import TimebaseType
-
__all__ = 'TimebaseType', 'DanmakuCombinator'
-logger = logging.getLogger(__name__)
-
-
class DanmakuCombinator:
def __init__(
self,
diff --git a/src/blrec/danmaku/concatenation.py b/src/blrec/danmaku/concatenation.py
index dad69ac..da84261 100644
--- a/src/blrec/danmaku/concatenation.py
+++ b/src/blrec/danmaku/concatenation.py
@@ -1,13 +1,7 @@
-import logging
from typing import Iterable
-
-from .io import DanmakuReader, DanmakuWriter
from .common import copy_damus
-
-
-logger = logging.getLogger(__name__)
-
+from .io import DanmakuReader, DanmakuWriter
__all__ = 'DanmakuConcatenator'
diff --git a/src/blrec/danmaku/io.py b/src/blrec/danmaku/io.py
index c63c68d..7d7b9d5 100644
--- a/src/blrec/danmaku/io.py
+++ b/src/blrec/danmaku/io.py
@@ -2,7 +2,6 @@ from __future__ import annotations
import asyncio
import html
-import logging
import unicodedata
from datetime import datetime, timedelta, timezone
from typing import Any, AsyncIterator, Final, List
@@ -24,9 +23,6 @@ from .typing import Element
__all__ = 'DanmakuReader', 'DanmakuWriter'
-logger = logging.getLogger(__name__)
-
-
class DanmakuReader: # TODO rewrite
def __init__(self, path: str) -> None:
self._path = path
diff --git a/src/blrec/data/webapp/548.e2df47ddad764d0b.js b/src/blrec/data/webapp/548.e2df47ddad764d0b.js
new file mode 100644
index 0000000..8f06db5
--- /dev/null
+++ b/src/blrec/data/webapp/548.e2df47ddad764d0b.js
@@ -0,0 +1 @@
+"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{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:"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&&++a0&&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!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{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/548.f8a3199ca2412e0d.js b/src/blrec/data/webapp/548.f8a3199ca2412e0d.js
deleted file mode 100644
index 50d177c..0000000
--- a/src/blrec/data/webapp/548.f8a3199ca2412e0d.js
+++ /dev/null
@@ -1 +0,0 @@
-"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{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&&++a0&&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!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{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 deb0058..479ece9 100644
--- a/src/blrec/data/webapp/index.html
+++ b/src/blrec/data/webapp/index.html
@@ -10,6 +10,6 @@
-
+