From 82a38802589ffa31bf4e13cf1111c5eaf638c6be Mon Sep 17 00:00:00 2001 From: "a.zavodov-b2b" Date: Sun, 28 Sep 2025 01:02:53 +0700 Subject: [PATCH 1/8] Implement ASGI application with fibonacci, factorial, and mean endpoints --- hw1/app.py | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 131 insertions(+), 3 deletions(-) diff --git a/hw1/app.py b/hw1/app.py index 6107b870..a8a8e5c2 100644 --- a/hw1/app.py +++ b/hw1/app.py @@ -1,4 +1,68 @@ -from typing import Any, Awaitable, Callable +import json +from math import factorial +from typing import Any, Awaitable, Callable, List +from urllib.parse import parse_qs + +import uvicorn + +ALLOWED_PATHS = ["/factorial", "/mean", "/fibonacci"] + + +def calculate_factorial(value: int) -> int: + """Функция для расчета факториала""" + return factorial(value) + + +def calculate_fibonacсі(n: int) -> int: + """Функция для расчета n-ого числа фибоначи""" + a, b = 0, 1 + for _ in range(n): + a, b = b, a + b + return b + + +def calculate_mean(data: List[float]): + """Функция для расчета среднего из массива чисел""" + result = sum(data) / len(data) + return result + + +async def _read_body(receive: Callable[[], Awaitable[dict[str, Any]]]) -> bytes: + body = b"" + more = True + while more: + message = await receive() + body += message.get("body", b"") + more = message.get("more_body", False) + return body + + +async def _send_json(send, status: int, payload: dict[str, Any]) -> None: + body = json.dumps(payload, ensure_ascii=False).encode("utf-8") + headers = [ + [b"content-type", b"application/json; charset=utf-8"], + [b"content-length", str(len(body)).encode("utf-8")], + ] + await send({"type": "http.response.start", "status": status, "headers": headers}) + await send({"type": "http.response.body", "body": body, "more_body": False}) + + +def _parse_query(scope: dict[str, Any]) -> dict[str, list[str]]: + qs_bytes = scope.get("query_string", b"") or b"" + return parse_qs(qs_bytes.decode("utf-8"), keep_blank_values=True) + + +def _parse_int_strict(s: str) -> int: + s2 = s.strip() + if s2 == "": + raise ValueError("empty") + if s2[0] in "+-": + if len(s2) == 1 or not s2[1:].isdigit(): + raise ValueError("non-integer") + else: + if not s2.isdigit(): + raise ValueError("non-integer") + return int(s2, 10) async def application( @@ -12,8 +76,72 @@ async def application( receive: Корутина для получения сообщений от клиента send: Корутина для отправки сообщений клиенту """ - # TODO: Ваша реализация здесь + if scope.get("type") != "http": + await _send_json(send, 404, {"error": "Not Found"}) + return + + path = scope.get("path") or "" + + if path not in ALLOWED_PATHS and not path.startswith("/fibonacci"): + await _send_json(send, 404, {"error": "Not Found"}) + return + + try: + if path == "/factorial": + params = _parse_query(scope) + values = params.get("n", []) + if not values: + return await _send_json(send, 422, {"error": "missing 'n'"}) + try: + n = _parse_int_strict(values[0]) + except ValueError: + return await _send_json(send, 422, {"error": "n must be integer"}) + if n < 0: + return await _send_json(send, 400, {"error": "n must be >= 0"}) + return await _send_json(send, 200, {"result": calculate_factorial(n)}) + + if path.startswith("/fibonacci"): + suffix = path[len("/fibonacci") :] + if not suffix or suffix == "/": + return await _send_json(send, 422, {"error": "missing path param 'n'"}) + if suffix[0] == "/": + raw = suffix[1:] + else: + raw = suffix + try: + n = _parse_int_strict(raw) + except ValueError: + return await _send_json(send, 422, {"error": "n must be integer"}) + if n < 0: + return await _send_json(send, 400, {"error": "n must be >= 0"}) + return await _send_json(send, 200, {"result": calculate_fibonacсі(n)}) + + if path == "/mean": + body = await _read_body(receive) + if not body: + return await _send_json(send, 422, {"error": "missing JSON body"}) + try: + data = json.loads(body.decode("utf-8")) + except Exception: + return await _send_json(send, 422, {"error": "invalid JSON"}) + if data is None or not isinstance(data, list): + return await _send_json(send, 422, {"error": "body must be JSON array"}) + if len(data) == 0: + return await _send_json(send, 400, {"error": "array must be non-empty"}) + nums: list[float] = [] + for item in data: + if isinstance(item, (int, float)): + nums.append(float(item)) + else: + return await _send_json( + send, 422, {"error": "array must contain numbers"} + ) + mean = calculate_mean(nums) + return await _send_json(send, 200, {"result": mean}) + + except Exception: + await _send_json(send, 500, {"error": "Internal Server Error"}) + if __name__ == "__main__": - import uvicorn uvicorn.run("app:application", host="0.0.0.0", port=8000, reload=True) From 0ef0bf13423c819349ddfab018359376a120f163 Mon Sep 17 00:00:00 2001 From: "a.zavodov-b2b" Date: Mon, 6 Oct 2025 01:57:40 +0700 Subject: [PATCH 2/8] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hw2/hw/shop_api/main.py | 289 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 288 insertions(+), 1 deletion(-) diff --git a/hw2/hw/shop_api/main.py b/hw2/hw/shop_api/main.py index f60a8c60..ad15c2c1 100644 --- a/hw2/hw/shop_api/main.py +++ b/hw2/hw/shop_api/main.py @@ -1,3 +1,290 @@ -from fastapi import FastAPI +from typing import Dict, List, Optional + +from fastapi import FastAPI, HTTPException, Response, status +from pydantic import BaseModel, ConfigDict, Field app = FastAPI(title="Shop API") + + +# Модели данных +class Item(BaseModel): + id: int + name: str + price: float = Field(gt=0) + deleted: bool = False + + +class CartItem(BaseModel): + id: int + name: str + quantity: int = Field(ge=1) + available: bool + + +class Cart(BaseModel): + id: int + items: List[CartItem] = [] + price: float = Field(ge=0) + + +# Хранилище данных в памяти +items_db: Dict[int, Item] = {} +carts_db: Dict[int, Cart] = {} +next_item_id = 1 +next_cart_id = 1 + + +# Вспомогательные функции +def get_next_item_id() -> int: + global next_item_id + next_item_id += 1 + return next_item_id - 1 + + +def get_next_cart_id() -> int: + global next_cart_id + next_cart_id += 1 + return next_cart_id - 1 + + +def calculate_cart_price(cart: Cart) -> float: + total = 0.0 + for item in cart.items: + if item.available: + item_obj = items_db.get(item.id) + if item_obj and not item_obj.deleted: + total += item_obj.price * item.quantity + return total + + +# Эндпоинты для корзин +@app.post("/cart", status_code=status.HTTP_201_CREATED) +async def create_cart(response: Response): + cart_id = get_next_cart_id() + cart = Cart(id=cart_id, items=[], price=0.0) + carts_db[cart_id] = cart + response.headers["location"] = f"/cart/{cart_id}" + return {"id": cart_id} + + +@app.get("/cart/{cart_id}") +async def get_cart(cart_id: int): + if cart_id not in carts_db: + raise HTTPException(status_code=404, detail="Cart not found") + + cart = carts_db[cart_id] + # Пересчитываем цену на случай изменений в товарах + cart.price = calculate_cart_price(cart) + return cart + + +@app.get("/cart") +async def get_carts( + offset: int = 0, + limit: int = 10, + min_price: Optional[float] = None, + max_price: Optional[float] = None, + min_quantity: Optional[int] = None, + max_quantity: Optional[int] = None, +): + # Валидация параметров + if offset < 0: + raise HTTPException(status_code=422, detail="Offset must be non-negative") + if limit <= 0: + raise HTTPException(status_code=422, detail="Limit must be positive") + if min_price is not None and min_price < 0: + raise HTTPException(status_code=422, detail="Min price must be non-negative") + if max_price is not None and max_price < 0: + raise HTTPException(status_code=422, detail="Max price must be non-negative") + if min_quantity is not None and min_quantity < 0: + raise HTTPException(status_code=422, detail="Min quantity must be non-negative") + if max_quantity is not None and max_quantity < 0: + raise HTTPException(status_code=422, detail="Max quantity must be non-negative") + + carts = list(carts_db.values()) + + # Применяем фильтры + filtered_carts = [] + for cart in carts: + # Пересчитываем цену для каждого запроса + cart.price = calculate_cart_price(cart) + + # Фильтр по цене + if min_price is not None and cart.price < min_price: + continue + if max_price is not None and cart.price > max_price: + continue + + filtered_carts.append(cart) + + # Применяем пагинацию + paginated_carts = filtered_carts[offset : offset + limit] + + # ВАЖНО: фильтр по quantity применяется к суммарному количеству + # товаров во ВСЕХ возвращаемых корзинах (после пагинации) + if min_quantity is not None or max_quantity is not None: + total_quantity = sum( + item.quantity for cart in paginated_carts for item in cart.items + ) + + if min_quantity is not None and total_quantity < min_quantity: + return [] + if max_quantity is not None and total_quantity > max_quantity: + return [] + + return paginated_carts + + +@app.post("/cart/{cart_id}/add/{item_id}") +async def add_to_cart(cart_id: int, item_id: int): + if cart_id not in carts_db: + raise HTTPException(status_code=404, detail="Cart not found") + if item_id not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + item = items_db[item_id] + if item.deleted: + raise HTTPException(status_code=400, detail="Item is deleted") + + cart = carts_db[cart_id] + + # Проверяем, есть ли товар уже в корзине + for cart_item in cart.items: + if cart_item.id == item_id: + cart_item.quantity += 1 + cart.price = calculate_cart_price(cart) + return {"message": "Item quantity increased"} + + # Добавляем новый товар + cart_item = CartItem( + id=item_id, name=item.name, quantity=1, available=not item.deleted + ) + cart.items.append(cart_item) + cart.price = calculate_cart_price(cart) + + return {"message": "Item added to cart"} + + +# Эндпоинты для товаров +class ItemCreate(BaseModel): + name: str + price: float = Field(gt=0) + + +class ItemPut(BaseModel): + """Модель для PUT - все поля обязательны""" + + name: str + price: float = Field(gt=0) + + +class ItemPatch(BaseModel): + """Модель для PATCH - все поля опциональны, extra поля запрещены""" + + model_config = ConfigDict(extra="forbid") + + name: Optional[str] = None + price: Optional[float] = Field(gt=0, default=None) + + +@app.post("/item", status_code=status.HTTP_201_CREATED) +async def create_item(item: ItemCreate): + item_id = get_next_item_id() + new_item = Item(id=item_id, name=item.name, price=item.price) + items_db[item_id] = new_item + return new_item + + +@app.get("/item/{item_id}") +async def get_item(item_id: int): + if item_id not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + item = items_db[item_id] + # Возвращаем 404 для удаленных товаров + if item.deleted: + raise HTTPException(status_code=404, detail="Item not found") + + return item + + +@app.get("/item") +async def get_items( + offset: int = 0, + limit: int = 10, + min_price: Optional[float] = None, + max_price: Optional[float] = None, + show_deleted: bool = False, +): + # Валидация параметров + if offset < 0: + raise HTTPException(status_code=422, detail="Offset must be non-negative") + if limit <= 0: + raise HTTPException(status_code=422, detail="Limit must be positive") + if min_price is not None and min_price < 0: + raise HTTPException(status_code=422, detail="Min price must be non-negative") + if max_price is not None and max_price < 0: + raise HTTPException(status_code=422, detail="Max price must be non-negative") + + items = list(items_db.values()) + + # Фильтрация + filtered_items = [] + for item in items: + if not show_deleted and item.deleted: + continue + + if min_price is not None and item.price < min_price: + continue + if max_price is not None and item.price > max_price: + continue + + filtered_items.append(item) + + # Пагинация + result = filtered_items[offset : offset + limit] + return result + + +@app.put("/item/{item_id}") +async def update_item(item_id: int, item_update: ItemPut): + if item_id not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + existing_item = items_db[item_id] + if existing_item.deleted: + raise HTTPException(status_code=400, detail="Cannot update deleted item") + + # Обновляем поля + existing_item.name = item_update.name + existing_item.price = item_update.price + + return existing_item + + +@app.patch("/item/{item_id}") +async def partial_update_item(item_id: int, item_update: ItemPatch): + if item_id not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + existing_item = items_db[item_id] + + # Для удаленных товаров возвращаем 304 NOT_MODIFIED + if existing_item.deleted: + return Response(status_code=status.HTTP_304_NOT_MODIFIED) + + # Обновляем только переданные поля + update_data = item_update.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(existing_item, field, value) + + return existing_item + + +@app.delete("/item/{item_id}") +async def delete_item(item_id: int): + if item_id not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + items_db[item_id].deleted = True + return {"message": "Item deleted successfully"} From 47f1cd02a77093a8fd04411c939585ca928380ee Mon Sep 17 00:00:00 2001 From: "a.zavodov-b2b" Date: Mon, 6 Oct 2025 02:28:56 +0700 Subject: [PATCH 3/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E?= =?UTF-8?q?=20WebSocket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hw2/hw/shop_api/main.py | 102 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) diff --git a/hw2/hw/shop_api/main.py b/hw2/hw/shop_api/main.py index ad15c2c1..2402d5c8 100644 --- a/hw2/hw/shop_api/main.py +++ b/hw2/hw/shop_api/main.py @@ -1,6 +1,15 @@ +import random +import string from typing import Dict, List, Optional -from fastapi import FastAPI, HTTPException, Response, status +from fastapi import ( + FastAPI, + HTTPException, + Response, + WebSocket, + WebSocketDisconnect, + status, +) from pydantic import BaseModel, ConfigDict, Field app = FastAPI(title="Shop API") @@ -34,6 +43,97 @@ class Cart(BaseModel): next_cart_id = 1 +# WebSocket Chat Manager +class ConnectionManager: + """Управляет WebSocket соединениями для разных комнат чата""" + + def __init__(self): + # Словарь: chat_name -> список кортежей (websocket, username) + self.active_connections: Dict[str, List[tuple[WebSocket, str]]] = {} + + def generate_username(self) -> str: + """Генерирует случайное имя пользователя""" + adjectives = [ + "Fast", + "Brave", + "Smart", + "Cool", + "Swift", + "Bold", + "Bright", + "Quick", + ] + nouns = ["Tiger", "Eagle", "Wolf", "Lion", "Hawk", "Bear", "Fox", "Dragon"] + number = "".join(random.choices(string.digits, k=3)) + return f"{random.choice(adjectives)}{random.choice(nouns)}{number}" + + async def connect(self, websocket: WebSocket, chat_name: str) -> str: + """Подключает пользователя к комнате и возвращает его username""" + await websocket.accept() + username = self.generate_username() + + if chat_name not in self.active_connections: + self.active_connections[chat_name] = [] + + self.active_connections[chat_name].append((websocket, username)) + return username + + def disconnect(self, websocket: WebSocket, chat_name: str): + """Отключает пользователя от комнаты""" + if chat_name in self.active_connections: + self.active_connections[chat_name] = [ + (ws, user) + for ws, user in self.active_connections[chat_name] + if ws != websocket + ] + # Удаляем комнату, если она пустая + if not self.active_connections[chat_name]: + del self.active_connections[chat_name] + + async def broadcast(self, message: str, chat_name: str, sender_username: str): + """Отправляет сообщение всем пользователям в комнате""" + if chat_name not in self.active_connections: + return + + formatted_message = f"{sender_username} :: {message}" + + # Список соединений для удаления (если возникнут ошибки) + to_remove = [] + + for websocket, username in self.active_connections[chat_name]: + try: + await websocket.send_text(formatted_message) + except Exception: + # Соединение разорвано, помечаем для удаления + to_remove.append(websocket) + + # Удаляем проблемные соединения + for ws in to_remove: + self.disconnect(ws, chat_name) + + +manager = ConnectionManager() + + +# WebSocket endpoint для чата +@app.websocket("/chat/{chat_name}") +async def websocket_chat_endpoint(websocket: WebSocket, chat_name: str): + """WebSocket endpoint для чата с поддержкой комнат""" + username = await manager.connect(websocket, chat_name) + + try: + while True: + # Получаем текстовое сообщение от клиента + message = await websocket.receive_text() + + # Broadcast сообщение всем в комнате + await manager.broadcast(message, chat_name, username) + + except WebSocketDisconnect: + # Пользователь отключился + manager.disconnect(websocket, chat_name) + + # Вспомогательные функции def get_next_item_id() -> int: global next_item_id From df677e8f14baff42a173229b497eb6964545a4db Mon Sep 17 00:00:00 2001 From: "a.zavodov-b2b" Date: Mon, 13 Oct 2025 03:27:13 +0700 Subject: [PATCH 4/8] hw3 --- .../Api_latency_monitoring.png | Bin 0 -> 233321 bytes hw3/dashboard_screenshots/Dashboard_list.png | Bin 0 -> 107678 bytes .../Http_requests_monitoring.png | Bin 0 -> 190661 bytes hw3/docker-compose.yml | 57 + hw3/settings/grafana/grafana.db | Bin 0 -> 1302528 bytes .../1382cadfeb81ccdaa67d.svg | 2 + .../plugins/grafana-exploretraces-app/150.js | 2 + .../grafana-exploretraces-app/150.js.map | 1 + .../plugins/grafana-exploretraces-app/190.js | 2 + .../grafana-exploretraces-app/190.js.map | 1 + .../plugins/grafana-exploretraces-app/2.js | 2 + .../grafana-exploretraces-app/2.js.map | 1 + .../plugins/grafana-exploretraces-app/202.js | 8 + .../grafana-exploretraces-app/202.js.map | 1 + .../plugins/grafana-exploretraces-app/206.js | 2 + .../grafana-exploretraces-app/206.js.map | 1 + .../plugins/grafana-exploretraces-app/211.js | 41 + .../grafana-exploretraces-app/211.js.map | 1 + .../plugins/grafana-exploretraces-app/220.js | 2 + .../grafana-exploretraces-app/220.js.map | 1 + .../plugins/grafana-exploretraces-app/327.js | 2 + .../grafana-exploretraces-app/327.js.map | 1 + .../plugins/grafana-exploretraces-app/341.js | 2 + .../grafana-exploretraces-app/341.js.map | 1 + .../plugins/grafana-exploretraces-app/353.js | 2 + .../grafana-exploretraces-app/353.js.map | 1 + .../plugins/grafana-exploretraces-app/43.js | 3 + .../43.js.LICENSE.txt | 29 + .../grafana-exploretraces-app/43.js.map | 1 + .../plugins/grafana-exploretraces-app/535.js | 2 + .../grafana-exploretraces-app/535.js.map | 1 + .../plugins/grafana-exploretraces-app/549.js | 2 + .../grafana-exploretraces-app/549.js.map | 1 + .../plugins/grafana-exploretraces-app/582.js | 2 + .../grafana-exploretraces-app/582.js.map | 1 + .../plugins/grafana-exploretraces-app/64.js | 2 + .../grafana-exploretraces-app/64.js.map | 1 + .../plugins/grafana-exploretraces-app/644.js | 2 + .../grafana-exploretraces-app/644.js.map | 1 + .../plugins/grafana-exploretraces-app/660.js | 2 + .../grafana-exploretraces-app/660.js.map | 1 + .../plugins/grafana-exploretraces-app/697.js | 2 + .../grafana-exploretraces-app/697.js.map | 1 + .../plugins/grafana-exploretraces-app/70.js | 2 + .../grafana-exploretraces-app/70.js.map | 1 + .../plugins/grafana-exploretraces-app/722.js | 2 + .../grafana-exploretraces-app/722.js.map | 1 + .../plugins/grafana-exploretraces-app/74.js | 2 + .../grafana-exploretraces-app/74.js.map | 1 + .../plugins/grafana-exploretraces-app/766.js | 2 + .../grafana-exploretraces-app/766.js.map | 1 + .../plugins/grafana-exploretraces-app/767.js | 2 + .../grafana-exploretraces-app/767.js.map | 1 + .../plugins/grafana-exploretraces-app/812.js | 2 + .../grafana-exploretraces-app/812.js.map | 1 + .../plugins/grafana-exploretraces-app/876.js | 2 + .../grafana-exploretraces-app/876.js.map | 1 + .../944c737f589d02ecf603.svg | 67 + .../plugins/grafana-exploretraces-app/980.js | 2 + .../grafana-exploretraces-app/980.js.map | 1 + .../grafana-exploretraces-app/CHANGELOG.md | 164 + .../plugins/grafana-exploretraces-app/LICENSE | 661 ++ .../grafana-exploretraces-app/MANIFEST.txt | 94 + .../grafana-exploretraces-app/README.md | 107 + .../states/EmptyState/img/grot-404-dark.svg | 67 + .../states/EmptyState/img/grot-404-light.svg | 68 + .../e79edcfbe2068fae2364.svg | 68 + .../img/errors-metric-flow.png | Bin 0 -> 943127 bytes .../img/errors-root-cause.png | Bin 0 -> 1090307 bytes .../img/histogram-breakdown.png | Bin 0 -> 464856 bytes .../grafana-exploretraces-app/img/logo.svg | 2 + .../grafana-exploretraces-app/module.js | 3 + .../grafana-exploretraces-app/module.js.map | 1 + .../grafana-exploretraces-app/plugin.json | 122 + .../test-responses/service-struct.json | 6143 +++++++++++++++++ .../087755a1246f96c42579.svg | 1 + .../0b7992cbbccaaaabfb4e.svg | 1 + .../plugins/grafana-lokiexplore-app/150.js | 2 + .../grafana-lokiexplore-app/150.js.map | 1 + .../plugins/grafana-lokiexplore-app/156.js | 2 + .../grafana-lokiexplore-app/156.js.map | 1 + .../1759fd27b2c9f73dea05.wasm | Bin 0 -> 190779 bytes .../plugins/grafana-lokiexplore-app/190.js | 2 + .../grafana-lokiexplore-app/190.js.map | 1 + .../plugins/grafana-lokiexplore-app/2.js | 2 + .../plugins/grafana-lokiexplore-app/2.js.map | 1 + .../plugins/grafana-lokiexplore-app/206.js | 2 + .../grafana-lokiexplore-app/206.js.map | 1 + .../2168a10beed690100fcb.svg | 2 + .../plugins/grafana-lokiexplore-app/220.js | 2 + .../grafana-lokiexplore-app/220.js.map | 1 + .../26a78975976a604ba774.svg | 2 + .../plugins/grafana-lokiexplore-app/279.js | 3 + .../279.js.LICENSE.txt | 14 + .../grafana-lokiexplore-app/279.js.map | 1 + .../2946a9608ee7f2b5f618.svg | 1 + .../plugins/grafana-lokiexplore-app/327.js | 2 + .../grafana-lokiexplore-app/327.js.map | 1 + .../plugins/grafana-lokiexplore-app/328.js | 2 + .../grafana-lokiexplore-app/328.js.map | 1 + .../plugins/grafana-lokiexplore-app/341.js | 2 + .../grafana-lokiexplore-app/341.js.map | 1 + .../plugins/grafana-lokiexplore-app/353.js | 2 + .../grafana-lokiexplore-app/353.js.map | 1 + .../3982c6482f693636d827.svg | 1 + .../3cf91cbcfc3c94965931.svg | 1 + .../3d7fda5219d0a128c3a7.svg | 2 + .../3d96a93cfcb32df74eef.svg | 1 + .../45984fdddc778c4b7076.svg | 1 + .../plugins/grafana-lokiexplore-app/470.js | 3 + .../470.js.LICENSE.txt | 10 + .../grafana-lokiexplore-app/470.js.map | 1 + .../plugins/grafana-lokiexplore-app/546.js | 2 + .../grafana-lokiexplore-app/546.js.map | 1 + .../plugins/grafana-lokiexplore-app/549.js | 2 + .../grafana-lokiexplore-app/549.js.map | 1 + .../plugins/grafana-lokiexplore-app/582.js | 2 + .../grafana-lokiexplore-app/582.js.map | 1 + .../5ff755573093d28cbf2b.svg | 1 + .../6327ceb22fede245e36b.svg | 1 + .../plugins/grafana-lokiexplore-app/64.js | 2 + .../plugins/grafana-lokiexplore-app/64.js.map | 1 + .../plugins/grafana-lokiexplore-app/644.js | 2 + .../grafana-lokiexplore-app/644.js.map | 1 + .../649058283f564041551d.wasm | Bin 0 -> 201435 bytes .../plugins/grafana-lokiexplore-app/660.js | 2 + .../grafana-lokiexplore-app/660.js.map | 1 + .../plugins/grafana-lokiexplore-app/677.js | 2 + .../grafana-lokiexplore-app/677.js.map | 1 + .../plugins/grafana-lokiexplore-app/697.js | 2 + .../grafana-lokiexplore-app/697.js.map | 1 + .../plugins/grafana-lokiexplore-app/7.js | 119 + .../plugins/grafana-lokiexplore-app/7.js.map | 1 + .../plugins/grafana-lokiexplore-app/70.js | 2 + .../plugins/grafana-lokiexplore-app/70.js.map | 1 + .../plugins/grafana-lokiexplore-app/727.js | 52 + .../grafana-lokiexplore-app/727.js.map | 1 + .../plugins/grafana-lokiexplore-app/74.js | 2 + .../plugins/grafana-lokiexplore-app/74.js.map | 1 + .../plugins/grafana-lokiexplore-app/767.js | 2 + .../grafana-lokiexplore-app/767.js.map | 1 + .../7c69e09a44ae38215563.svg | 1 + .../plugins/grafana-lokiexplore-app/82.js | 2 + .../plugins/grafana-lokiexplore-app/82.js.map | 1 + .../plugins/grafana-lokiexplore-app/826.js | 8 + .../grafana-lokiexplore-app/826.js.map | 1 + .../plugins/grafana-lokiexplore-app/854.js | 2 + .../grafana-lokiexplore-app/854.js.map | 1 + .../85b746ba2cec564b9a89.svg | 1 + .../plugins/grafana-lokiexplore-app/864.js | 2 + .../grafana-lokiexplore-app/864.js.map | 1 + .../plugins/grafana-lokiexplore-app/876.js | 2 + .../grafana-lokiexplore-app/876.js.map | 1 + .../8a289c3c1e2e6710580c.svg | 2 + .../8de041fb65ff0bb36133.svg | 1 + .../plugins/grafana-lokiexplore-app/919.js | 2 + .../grafana-lokiexplore-app/919.js.map | 1 + .../plugins/grafana-lokiexplore-app/944.js | 2 + .../grafana-lokiexplore-app/944.js.map | 1 + .../plugins/grafana-lokiexplore-app/980.js | 2 + .../grafana-lokiexplore-app/980.js.map | 1 + .../grafana-lokiexplore-app/CHANGELOG.md | 741 ++ .../plugins/grafana-lokiexplore-app/LICENSE | 661 ++ .../grafana-lokiexplore-app/MANIFEST.txt | 158 + .../plugins/grafana-lokiexplore-app/README.md | 38 + .../a02d697b42ff5ef7323b.svg | 1 + .../b6946652df0df52a6ebf.svg | 1 + .../bd5bafea986ef624f050.svg | 1 + .../da86b141436a1efb9287.svg | 1 + .../f0b5af7b8afc5505b70a.svg | 2 + .../f4a80ec106902b21468c.svg | 1 + .../f6f180a5b21afe1799fd.svg | 1 + .../fca8b87950e835f73012.svg | 1 + .../img/drilldown-features.png | Bin 0 -> 208476 bytes .../img/explore-logs-features.jpeg | Bin 0 -> 996518 bytes .../grafana-lokiexplore-app/img/fields.png | Bin 0 -> 2825845 bytes .../grafana-lokiexplore-app/img/grot_err.svg | 78 + .../img/grot_err_light.svg | 78 + .../grafana-lokiexplore-app/img/grot_loki.svg | 272 + .../img/icons/dark/copy--hover.svg | 1 + .../img/icons/dark/copy.svg | 1 + .../img/icons/dark/eye--hover.svg | 1 + .../img/icons/dark/eye.svg | 1 + .../img/icons/dark/search-minus--hover.svg | 1 + .../img/icons/dark/search-minus.svg | 1 + .../img/icons/dark/search-plus--hover.svg | 2 + .../img/icons/dark/search-plus.svg | 2 + .../img/icons/dark/share-alt--hover.svg | 1 + .../img/icons/dark/share-alt.svg | 1 + .../img/icons/eye--active.svg | 1 + .../img/icons/light/copy--hover.svg | 1 + .../img/icons/light/copy.svg | 1 + .../img/icons/light/eye--hover.svg | 1 + .../img/icons/light/eye.svg | 1 + .../img/icons/light/search-minus--hover.svg | 1 + .../img/icons/light/search-minus.svg | 1 + .../img/icons/light/search-plus--hover.svg | 2 + .../img/icons/light/search-plus.svg | 2 + .../img/icons/light/share-alt--hover.svg | 1 + .../img/icons/light/share-alt.svg | 1 + .../img/icons/search-minus--active.svg | 1 + .../img/icons/search-plus--active.svg | 2 + .../grafana-lokiexplore-app/img/logo.svg | 1 + .../grafana-lokiexplore-app/img/patterns.png | Bin 0 -> 597876 bytes .../img/service_logs.jpg | Bin 0 -> 311278 bytes .../grafana-lokiexplore-app/img/table.png | Bin 0 -> 2719883 bytes .../plugins/grafana-lokiexplore-app/module.js | 3 + .../grafana-lokiexplore-app/module.js.map | 1 + .../grafana-lokiexplore-app/plugin.json | 117 + .../grafana-metricsdrilldown-app/150.js | 2 + .../grafana-metricsdrilldown-app/150.js.map | 1 + .../grafana-metricsdrilldown-app/156.js | 2 + .../grafana-metricsdrilldown-app/156.js.map | 1 + .../grafana-metricsdrilldown-app/190.js | 2 + .../grafana-metricsdrilldown-app/190.js.map | 1 + .../plugins/grafana-metricsdrilldown-app/2.js | 2 + .../grafana-metricsdrilldown-app/2.js.map | 1 + .../grafana-metricsdrilldown-app/206.js | 2 + .../grafana-metricsdrilldown-app/206.js.map | 1 + .../grafana-metricsdrilldown-app/220.js | 2 + .../grafana-metricsdrilldown-app/220.js.map | 1 + .../grafana-metricsdrilldown-app/290.js | 2 + .../grafana-metricsdrilldown-app/290.js.map | 1 + .../grafana-metricsdrilldown-app/327.js | 2 + .../grafana-metricsdrilldown-app/327.js.map | 1 + .../grafana-metricsdrilldown-app/341.js | 2 + .../grafana-metricsdrilldown-app/341.js.map | 1 + .../grafana-metricsdrilldown-app/353.js | 2 + .../grafana-metricsdrilldown-app/353.js.map | 1 + .../grafana-metricsdrilldown-app/377.js | 2 + .../grafana-metricsdrilldown-app/377.js.map | 1 + .../grafana-metricsdrilldown-app/509.js | 2 + .../grafana-metricsdrilldown-app/509.js.map | 1 + .../grafana-metricsdrilldown-app/520.js | 3 + .../520.js.LICENSE.txt | 14 + .../grafana-metricsdrilldown-app/520.js.map | 1 + .../grafana-metricsdrilldown-app/549.js | 2 + .../grafana-metricsdrilldown-app/549.js.map | 1 + .../grafana-metricsdrilldown-app/582.js | 2 + .../grafana-metricsdrilldown-app/582.js.map | 1 + .../5e493d758066ba82f810.wasm | Bin 0 -> 203253 bytes .../grafana-metricsdrilldown-app/605.js | 160 + .../grafana-metricsdrilldown-app/605.js.map | 1 + .../grafana-metricsdrilldown-app/64.js | 2 + .../grafana-metricsdrilldown-app/64.js.map | 1 + .../grafana-metricsdrilldown-app/644.js | 2 + .../grafana-metricsdrilldown-app/644.js.map | 1 + .../grafana-metricsdrilldown-app/660.js | 2 + .../grafana-metricsdrilldown-app/660.js.map | 1 + .../grafana-metricsdrilldown-app/697.js | 2 + .../grafana-metricsdrilldown-app/697.js.map | 1 + .../grafana-metricsdrilldown-app/70.js | 2 + .../grafana-metricsdrilldown-app/70.js.map | 1 + .../grafana-metricsdrilldown-app/74.js | 2 + .../grafana-metricsdrilldown-app/74.js.map | 1 + .../grafana-metricsdrilldown-app/767.js | 2 + .../grafana-metricsdrilldown-app/767.js.map | 1 + .../grafana-metricsdrilldown-app/782.js | 2 + .../grafana-metricsdrilldown-app/782.js.map | 1 + .../grafana-metricsdrilldown-app/792.js | 2 + .../grafana-metricsdrilldown-app/792.js.map | 1 + .../grafana-metricsdrilldown-app/851.js | 2 + .../grafana-metricsdrilldown-app/851.js.map | 1 + .../grafana-metricsdrilldown-app/876.js | 2 + .../grafana-metricsdrilldown-app/876.js.map | 1 + .../grafana-metricsdrilldown-app/92.js | 2 + .../grafana-metricsdrilldown-app/92.js.map | 1 + .../grafana-metricsdrilldown-app/944.js | 2 + .../grafana-metricsdrilldown-app/944.js.map | 1 + .../grafana-metricsdrilldown-app/980.js | 2 + .../grafana-metricsdrilldown-app/980.js.map | 1 + .../grafana-metricsdrilldown-app/CHANGELOG.md | 121 + .../grafana-metricsdrilldown-app/LICENSE | 661 ++ .../grafana-metricsdrilldown-app/MANIFEST.txt | 97 + .../grafana-metricsdrilldown-app/README.md | 29 + .../ac01ecbc64128d2f3e68.svg | 1 + .../img/breakdown.png | Bin 0 -> 1046098 bytes .../grafana-metricsdrilldown-app/img/logo.svg | 1 + .../img/metrics-drilldown.png | Bin 0 -> 1053947 bytes .../grafana-metricsdrilldown-app/module.js | 3 + .../module.js.map | 1 + .../grafana-metricsdrilldown-app/plugin.json | 106 + .../plugins/grafana-pyroscope-app/133.js | 963 +++ .../plugins/grafana-pyroscope-app/133.js.map | 1 + .../plugins/grafana-pyroscope-app/373.js | 3 + .../grafana-pyroscope-app/373.js.LICENSE.txt | 30 + .../plugins/grafana-pyroscope-app/373.js.map | 1 + .../944c737f589d02ecf603.svg | 67 + .../grafana-pyroscope-app/CHANGELOG.md | 571 ++ .../plugins/grafana-pyroscope-app/LICENSE | 661 ++ .../grafana-pyroscope-app/MANIFEST.txt | 53 + .../plugins/grafana-pyroscope-app/README.md | 58 + .../e6c722427cfa8715e19d.svg | 15 + .../e79edcfbe2068fae2364.svg | 68 + .../img/58f0b0e1cfa063e4b662.png | Bin 0 -> 307262 bytes .../img/61b4cf746a6f58780f27.png | Bin 0 -> 3599 bytes .../img/8cdf4d2e2df8326311ab.gif | Bin 0 -> 174077 bytes .../img/9c9cdd5175734d579007.png | Bin 0 -> 4262 bytes .../img/bafee50693eb02088442.png | Bin 0 -> 3256 bytes .../img/decrease-latency.png | Bin 0 -> 3599 bytes .../img/diff-view-how-to.gif | Bin 0 -> 174077 bytes .../grafana-pyroscope-app/img/hero-image.png | Bin 0 -> 307262 bytes .../grafana-pyroscope-app/img/logo.svg | 15 + .../img/reduce-costs.png | Bin 0 -> 4262 bytes .../img/resolve-incidents.png | Bin 0 -> 3256 bytes .../plugins/grafana-pyroscope-app/module.js | 3 + .../grafana-pyroscope-app/module.js.map | 1 + .../SceneEmptyState/ui/img/grot-404-dark.svg | 67 + .../SceneEmptyState/ui/img/grot-404-light.svg | 68 + .../plugins/grafana-pyroscope-app/plugin.json | 87 + .../profile-metrics/profile-metrics.json | 162 + hw3/settings/prometheus/prometheus.yml | 13 + hw3/shop_api/Dockerfile | 27 + hw3/shop_api/requirements.txt | 12 + hw3/shop_api/src/__init__.py | 0 hw3/shop_api/src/main.py | 432 ++ 316 files changed, 14943 insertions(+) create mode 100644 hw3/dashboard_screenshots/Api_latency_monitoring.png create mode 100644 hw3/dashboard_screenshots/Dashboard_list.png create mode 100644 hw3/dashboard_screenshots/Http_requests_monitoring.png create mode 100644 hw3/docker-compose.yml create mode 100644 hw3/settings/grafana/grafana.db create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/1382cadfeb81ccdaa67d.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js.LICENSE.txt create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/535.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/535.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/549.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/549.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/582.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/582.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/64.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/64.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/644.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/644.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/660.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/660.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/697.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/697.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/70.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/70.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/722.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/722.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/74.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/74.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/766.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/766.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/767.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/767.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/812.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/812.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/876.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/876.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/944c737f589d02ecf603.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/980.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/980.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/CHANGELOG.md create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/LICENSE create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/MANIFEST.txt create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/README.md create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-dark.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-light.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/e79edcfbe2068fae2364.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/img/errors-metric-flow.png create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/img/errors-root-cause.png create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/img/histogram-breakdown.png create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/img/logo.svg create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/module.js create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/module.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/plugin.json create mode 100644 hw3/settings/grafana/plugins/grafana-exploretraces-app/utils/trace-merge/test-responses/service-struct.json create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/087755a1246f96c42579.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/0b7992cbbccaaaabfb4e.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/150.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/150.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/156.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/156.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/1759fd27b2c9f73dea05.wasm create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/190.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/190.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/2.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/2.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/206.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/206.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/2168a10beed690100fcb.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/220.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/220.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/26a78975976a604ba774.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/279.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/279.js.LICENSE.txt create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/279.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/2946a9608ee7f2b5f618.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/327.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/327.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/328.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/328.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/341.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/341.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/353.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/353.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/3982c6482f693636d827.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/3cf91cbcfc3c94965931.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/3d7fda5219d0a128c3a7.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/3d96a93cfcb32df74eef.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/45984fdddc778c4b7076.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/470.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/470.js.LICENSE.txt create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/470.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/546.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/546.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/549.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/549.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/582.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/582.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/5ff755573093d28cbf2b.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/6327ceb22fede245e36b.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/64.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/64.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/644.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/644.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/649058283f564041551d.wasm create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/660.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/660.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/677.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/677.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/697.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/697.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/7.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/7.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/70.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/70.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/727.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/727.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/74.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/74.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/767.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/767.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/7c69e09a44ae38215563.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/82.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/82.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/826.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/826.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/854.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/854.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/85b746ba2cec564b9a89.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/864.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/864.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/876.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/876.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/8a289c3c1e2e6710580c.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/8de041fb65ff0bb36133.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/919.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/919.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/944.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/944.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/980.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/980.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/CHANGELOG.md create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/LICENSE create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/MANIFEST.txt create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/README.md create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/a02d697b42ff5ef7323b.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/b6946652df0df52a6ebf.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/bd5bafea986ef624f050.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/da86b141436a1efb9287.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/f0b5af7b8afc5505b70a.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/f4a80ec106902b21468c.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/f6f180a5b21afe1799fd.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/fca8b87950e835f73012.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/drilldown-features.png create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/explore-logs-features.jpeg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/fields.png create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/grot_err.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/grot_err_light.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/grot_loki.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/copy--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/copy.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/eye--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/eye.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-minus--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-minus.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-plus--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/search-plus.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/share-alt--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/dark/share-alt.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/eye--active.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/copy--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/copy.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/eye--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/eye.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-minus--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-minus.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-plus--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/search-plus.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/share-alt--hover.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/light/share-alt.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/search-minus--active.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/icons/search-plus--active.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/logo.svg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/patterns.png create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/service_logs.jpg create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/img/table.png create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/module.js create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/module.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-lokiexplore-app/plugin.json create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/150.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/150.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/156.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/156.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/190.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/190.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/2.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/2.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/206.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/206.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/220.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/220.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/290.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/290.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/327.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/327.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/341.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/341.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/353.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/353.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/377.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/377.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/509.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/509.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/520.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/520.js.LICENSE.txt create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/520.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/549.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/549.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/582.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/582.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/5e493d758066ba82f810.wasm create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/605.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/605.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/64.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/64.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/644.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/644.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/660.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/660.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/697.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/697.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/70.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/70.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/74.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/74.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/767.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/767.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/782.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/782.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/792.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/792.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/851.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/851.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/876.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/876.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/92.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/92.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/944.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/944.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/980.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/980.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/CHANGELOG.md create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/LICENSE create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/MANIFEST.txt create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/README.md create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/ac01ecbc64128d2f3e68.svg create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/img/breakdown.png create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/img/logo.svg create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/img/metrics-drilldown.png create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/module.js create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/module.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-metricsdrilldown-app/plugin.json create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/133.js create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/133.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/373.js create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/373.js.LICENSE.txt create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/373.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/944c737f589d02ecf603.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/CHANGELOG.md create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/LICENSE create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/MANIFEST.txt create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/README.md create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/e6c722427cfa8715e19d.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/e79edcfbe2068fae2364.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/58f0b0e1cfa063e4b662.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/61b4cf746a6f58780f27.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/8cdf4d2e2df8326311ab.gif create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/9c9cdd5175734d579007.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/bafee50693eb02088442.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/decrease-latency.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/diff-view-how-to.gif create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/hero-image.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/logo.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/reduce-costs.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/img/resolve-incidents.png create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/module.js create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/module.js.map create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-dark.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-light.svg create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/plugin.json create mode 100644 hw3/settings/grafana/plugins/grafana-pyroscope-app/shared/infrastructure/profile-metrics/profile-metrics.json create mode 100644 hw3/settings/prometheus/prometheus.yml create mode 100644 hw3/shop_api/Dockerfile create mode 100644 hw3/shop_api/requirements.txt create mode 100644 hw3/shop_api/src/__init__.py create mode 100644 hw3/shop_api/src/main.py diff --git a/hw3/dashboard_screenshots/Api_latency_monitoring.png b/hw3/dashboard_screenshots/Api_latency_monitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfb8acdd484321344f3bdd09ef14f63badb8a0b GIT binary patch literal 233321 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 k?s@4hYH2wFmFpuzqaM}}{YgT=OSBATs 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

p{&f?7EU_v*Lj9)x)a!M05Pwsx;i_1 zQY8NFVT*hD|M<0ZG~Np(F%t)(!gP|G5;R`ob4N;ieVzXJ8m{x>FVv$A>A$-2|6>j_ zGcnQggI)LR_z$fA?8N{6>wouvhUS0w;6LAko9a7!wA0AH4##d!AB2^g>iRbd)NVca EKTx$)^#A|> literal 0 HcmV?d00001 diff --git a/hw3/dashboard_screenshots/Http_requests_monitoring.png b/hw3/dashboard_screenshots/Http_requests_monitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe2eb083c3afade3849d452ff3b8e4d6a785d55 GIT binary patch literal 190661 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
    >jmHAkj)zm%SJJY# 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%0D}9gvTYPvr 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

    E}M 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 literal 0 HcmV?d00001 diff --git a/hw3/docker-compose.yml b/hw3/docker-compose.yml new file mode 100644 index 00000000..edcd5d91 --- /dev/null +++ b/hw3/docker-compose.yml @@ -0,0 +1,57 @@ +version: "3.8" + +services: + local: + build: + context: ./shop_api + dockerfile: Dockerfile + target: local + container_name: shop_api + restart: always + command: uvicorn main:app --host 0.0.0.0 --port 8080 --reload + ports: + - 8080:8080 + environment: + - PROMETHEUS_MULTIPROC_DIR=/tmp + volumes: + - ./shop_api/src:/app + networks: + - monitoring_network + + grafana: + image: grafana/grafana:latest + container_name: grafana + ports: + - 3000:3000 + restart: always + volumes: + - ./settings/grafana:/var/lib/grafana + networks: + - monitoring_network + depends_on: + - prometheus + + prometheus: + image: prom/prometheus:latest + container_name: prometheus + volumes: + - ./settings/prometheus/:/etc/prometheus/ + - prometheus_data:/prometheus + command: + - "--config.file=/etc/prometheus/prometheus.yml" + - "--storage.tsdb.path=/prometheus" + - "--web.console.libraries=/usr/share/prometheus/console_libraries" + - "--web.console.templates=/usr/share/prometheus/consoles" + - "--web.enable-lifecycle" + ports: + - 9090:9090 + restart: always + networks: + - monitoring_network + +volumes: + prometheus_data: + +networks: + monitoring_network: + driver: bridge diff --git a/hw3/settings/grafana/grafana.db b/hw3/settings/grafana/grafana.db new file mode 100644 index 0000000000000000000000000000000000000000..0e97ffd469974aba370cf2b6785f71ed314b761d GIT binary patch literal 1302528 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%0DTjLPL?4`(Ew;ar7I}!RT+JpEVw+_Wm~E z-!tFSql*Ly;Uu zU7bc(&(U33->+l^i+HLXJ{BKplaIv*vHRaNQqsXfiVpz%i}dUbgmlu={piWakX99N z8pwFxVSnPBZH8nncg^;#`JN8glqC%8%pw0C3{1%(3)Pl^J$clhJZB`nr4(Yog?k&} zE%y-%f8vOLgc;w8_gV1c5CROi#fr1g#{%V^S7_F;-Z(7yv@$qFcPFS%9mc8|26uq@ zWT5PO#sF*~J6XJsDm16?cCut55xhpk9ZXxCXk*&q;dYi=JT&7!W=)XA>Q4%0!~&?ysHu3$qI_Q z+SxhcovjLQmJB;_!~AOoPH;4fcspBA+yTS#h+%LmfytsC+wUKlCD3{uLK{^Pg=+hox^y=cUht{u=s0s1Qm7-wUP!9|m3vtOrg6A_IROc+u>~p5@NJ;uPQ%;1u8# z;1u8#=o|%Lfxu@=c^)kESJuIH0b0U!1F(ggiv>Op;7NnxWvTVC;KFCxj~#eg4jdL;KCD5{0|J# zPdb5Rh_=s(1ArM + \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js new file mode 100644 index 00000000..b4320c35 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[150],{5150:(e,a,r)=>{r.r(a),r.d(a,{default:()=>o});var o={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro com chave {{keyLabel}}","managed-filter":"Filtro gerenciado de {{origin}}","remove-filter-with-key":"Remover filtro com chave {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Remover valor do filtro: {{itemLabel}}","use-custom-value":"Usar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Se você chegou aqui usando um link, pode haver um bug neste aplicativo.",subTitle:"O URL não corresponde a nenhuma página",title:"Não encontrado"},"nested-scene-renderer":{"collapse-button-label":"Recolher cena","expand-button-label":"Expandir cena","remove-button-label":"Remover cena"},"scene-debugger":{"object-details":"Detalhes do objeto","scene-graph":"Gráfico de cena","title-scene-debugger":"Depurador de cena"},"scene-grid-row":{"collapse-row":"Recolher linha","expand-row":"Expandir linha"},"scene-time-range-compare-renderer":{"button-label":"Comparação","button-tooltip":"Ativar comparação de intervalo de tempo"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionamento do painel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"Carregando painel do plug-in…","panel-plugin-has-no-panel-component":"O plug-in do painel não possui componente de painel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Renderizar muitas séries em um único painel pode afetar o desempenho e dificultar a leitura dos dados.","warning-message":"Mostrando apenas {{seriesLimit}} série(s)"}},utils:{"controls-label":{"tooltip-remove":"Remover"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Adicionar filtro","title-add-filter":"Adicionar filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Remover filtro","key-select":{"placeholder-select-label":"Selecionar rótulo"},"label-select-label":"Selecionar rótulo","title-remove-filter":"Remover filtro","value-select":{"placeholder-select-value":"Selecionar valor"}},"data-source-variable":{label:{default:"padrão"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"limpar",tooltip:"Aplicado por padrão neste painel. Se editado, ele é transferido para outros painéis.","tooltip-restore-groupby-set-by-this-dashboard":"Restaura a função groupby definida por este painel."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por vírgula","double-quoted-values":"Valores entre aspas duplas","format-date-in-different-ways":"Formatar data de diferentes maneiras","format-multivalued-variables-using-syntax-example":"Formatar variáveis de múltiplos valores usando a sintaxe glob. Por exemplo: {value1,value2}","html-escaping-of-values":"Escape HTML de valores","json-stringify-value":"Valor convertido em string JSON","keep-value-as-is":"Manter o valor como está","multiple-values-are-formatted-like-variablevalue":"Vários valores são formatados como variável=valor","single-quoted-values":"Valores entre aspas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape de URL, levando em consideração caracteres de sintaxe URI","useful-for-url-escaping-values":"Útil para valores de escape de URL","values-are-separated-by-character":'Os valores são separados pelo caractere "|"'}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por seletor","placeholder-group-by-label":"Agrupar por rótulo"},"interval-variable":{"placeholder-select-value":"Selecionar valor"},"loading-options-placeholder":{"loading-options":"Carregando opções…"},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"Nenhuma opção encontrada"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Ocorreu um erro ao buscar rótulos. Clique para tentar novamente"},"test-object-with-variable-dependency":{title:{hello:"Olá"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Digite um valor"},"variable-value-select":{"placeholder-select-value":"Selecionar valor"}}}}}}]); +//# sourceMappingURL=150.js.map?_cache=a99ca9bc52a47e729056 \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js.map new file mode 100644 index 00000000..056883d3 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/150.js.map @@ -0,0 +1 @@ +{"version":3,"file":"150.js?_cache=a99ca9bc52a47e729056","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,uCACxB,iBAAkB,kCAClB,yBAA0B,yCAE3B,yBAA0B,CACzB,sBAAuB,yCACvB,mBAAoB,2CAErB,gBAAiB,CAChBC,QAAS,0EACTC,SAAU,yCACVC,MAAO,kBAER,wBAAyB,CACxB,wBAAyB,gBACzB,sBAAuB,gBACvB,sBAAuB,gBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,kBACf,uBAAwB,qBAEzB,iBAAkB,CACjB,eAAgB,iBAChB,aAAc,kBAEf,oCAAqC,CACpC,eAAgB,aAChB,iBAAkB,2CAEnBC,SAAU,CACT,gCAAiC,yCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,gCACxB,sCAAuC,uDAExC,yBAA0B,CACzB,2DAA4D,yGAC5D,kBAAmB,8CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,WAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,iBAC5B,aAAc,CACb,2BAA4B,qBAE7B,qBAAsB,oBACtB,sBAAuB,iBACvB,eAAgB,CACf,2BAA4B,qBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,WAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,uFACT,gDAAiD,uDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,gCACzB,uBAAwB,6BACxB,gCAAiC,uCACjC,oDAAqD,8FACrD,0BAA2B,yBAC3B,uBAAwB,kCACxB,mBAAoB,2BACpB,mDAAoD,oDACpD,uBAAwB,8BACxB,kDAAmD,wFACnD,iCAAkC,qCAClC,oCAAqC,iDAIxC,6BAA8B,CAC7B,+BAAgC,sBAChC,6BAA8B,sBAE/B,oBAAqB,CACpB,2BAA4B,oBAE7B,8BAA+B,CAC9B,kBAAmB,sBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,4BAErB,4BAA6B,CAC5B,6CAA8C,mEAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,mBAE5B,wBAAyB,CACxB,2BAA4B,sB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/pt-BR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro com chave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gerenciado de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Remover filtro com chave {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Remover valor do filtro: {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Usar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Se você chegou aqui usando um link, pode haver um bug neste aplicativo.\",\n\t\t\tsubTitle: \"O URL não corresponde a nenhuma página\",\n\t\t\ttitle: \"Não encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Recolher cena\",\n\t\t\t\"expand-button-label\": \"Expandir cena\",\n\t\t\t\"remove-button-label\": \"Remover cena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalhes do objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de cena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de cena\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Recolher linha\",\n\t\t\t\"expand-row\": \"Expandir linha\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparação\",\n\t\t\t\"button-tooltip\": \"Ativar comparação de intervalo de tempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionamento do painel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Carregando painel do plug-in…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"O plug-in do painel não possui componente de painel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Renderizar muitas séries em um único painel pode afetar o desempenho e dificultar a leitura dos dados.\",\n\t\t\t\"warning-message\": \"Mostrando apenas {{seriesLimit}} série(s)\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Remover\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Adicionar filtro\",\n\t\t\t\"title-add-filter\": \"Adicionar filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Remover filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Selecionar rótulo\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Selecionar rótulo\",\n\t\t\t\"title-remove-filter\": \"Remover filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"padrão\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"limpar\",\n\t\t\ttooltip: \"Aplicado por padrão neste painel. Se editado, ele é transferido para outros painéis.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaura a função groupby definida por este painel.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por vírgula\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre aspas duplas\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formatar data de diferentes maneiras\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formatar variáveis de múltiplos valores usando a sintaxe glob. Por exemplo: {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape HTML de valores\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor convertido em string JSON\",\n\t\t\t\t\t\"keep-value-as-is\": \"Manter o valor como está\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Vários valores são formatados como variável=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre aspas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape de URL, levando em consideração caracteres de sintaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape de URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Os valores são separados pelo caractere \\\"|\\\"\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por seletor\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por rótulo\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Carregando opções…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nenhuma opção encontrada\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Ocorreu um erro ao buscar rótulos. Clique para tentar novamente\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Olá\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Digite um valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js new file mode 100644 index 00000000..b4339da4 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[190],{2190:(e,a,l)=>{l.r(a),l.d(a,{default:()=>r});var r={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro con la clave {{keyLabel}}","managed-filter":"Filtro gestionado de {{origin}}","remove-filter-with-key":"Eliminar filtro con la clave {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Eliminar valor del filtro: {{itemLabel}}","use-custom-value":"Usar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Si ha llegado hasta aquí mediante un enlace, es posible que haya un error en esta aplicación.",subTitle:"La URL no coincide con ninguna página",title:"No se ha encontrado"},"nested-scene-renderer":{"collapse-button-label":"Contraer escena","expand-button-label":"Expandir escena","remove-button-label":"Eliminar escena"},"scene-debugger":{"object-details":"Detalles del objeto","scene-graph":"Gráfico de la escena","title-scene-debugger":"Depurador de escenas"},"scene-grid-row":{"collapse-row":"Contraer fila","expand-row":"Expandir fila"},"scene-time-range-compare-renderer":{"button-label":"Comparación","button-tooltip":"Habilitar comparación de intervalos de tiempo"},splitter:{"aria-label-pane-resize-widget":"Widget de cambio de tamaño del panel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"Cargando panel de plugins...","panel-plugin-has-no-panel-component":"El plugin del panel no tiene ningún componente de panel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Representar demasiadas series en un solo panel puede afectar al rendimiento y dificultar la lectura de los datos.","warning-message":"Mostrando solo {{seriesLimit}} serie(s)"}},utils:{"controls-label":{"tooltip-remove":"Eliminar"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Añadir filtro","title-add-filter":"Añadir filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Eliminar filtro","key-select":{"placeholder-select-label":"Seleccionar etiqueta"},"label-select-label":"Seleccionar etiqueta","title-remove-filter":"Eliminar filtro","value-select":{"placeholder-select-value":"Seleccionar valor"}},"data-source-variable":{label:{default:"predeterminada"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"borrar",tooltip:"Aplicado de forma predeterminada en este dashboard. Si se edita, se transfiere a otros dashboards.","tooltip-restore-groupby-set-by-this-dashboard":"Restaura la función groupby definida por este dashboard."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por comas","double-quoted-values":"Valores entre comillas dobles","format-date-in-different-ways":"Dar formato a la fecha de diferentes maneras","format-multivalued-variables-using-syntax-example":"Dar formato a las variables de múltiples valores con la sintaxis glob, por ejemplo, {value1,value2}","html-escaping-of-values":"Escape HTML de valores","json-stringify-value":"Valor de JSON stringify","keep-value-as-is":"Mantener el valor tal cual","multiple-values-are-formatted-like-variablevalue":"Los valores múltiples tienen el formato variable=valor","single-quoted-values":"Valores entre comillas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape URL, utilizando caracteres de sintaxis URI","useful-for-url-escaping-values":"Útil para valores de escape URL","values-are-separated-by-character":"Los valores están separados por el carácter |"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por selector","placeholder-group-by-label":"Agrupar por etiqueta"},"interval-variable":{"placeholder-select-value":"Seleccionar valor"},"loading-options-placeholder":{"loading-options":"Cargando opciones..."},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"No se han encontrado opciones"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Se ha producido un error al recuperar las etiquetas. Haga clic para volver a intentarlo"},"test-object-with-variable-dependency":{title:{hello:"Hola"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Introducir valor"},"variable-value-select":{"placeholder-select-value":"Seleccionar valor"}}}}}}]); +//# sourceMappingURL=190.js.map?_cache=e94cf276a1cd31bbbc4d \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js.map new file mode 100644 index 00000000..a0978c97 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/190.js.map @@ -0,0 +1 @@ +{"version":3,"file":"190.js?_cache=e94cf276a1cd31bbbc4d","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0CACxB,iBAAkB,kCAClB,yBAA0B,6CAE3B,yBAA0B,CACzB,sBAAuB,2CACvB,mBAAoB,2CAErB,gBAAiB,CAChBC,QAAS,gGACTC,SAAU,wCACVC,MAAO,uBAER,wBAAyB,CACxB,wBAAyB,kBACzB,sBAAuB,kBACvB,sBAAuB,mBAExB,iBAAkB,CACjB,iBAAkB,sBAClB,cAAe,uBACf,uBAAwB,wBAEzB,iBAAkB,CACjB,eAAgB,gBAChB,aAAc,iBAEf,oCAAqC,CACpC,eAAgB,cAChB,iBAAkB,iDAEnBC,SAAU,CACT,gCAAiC,wCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,+BACxB,sCAAuC,2DAExC,yBAA0B,CACzB,2DAA4D,oHAC5D,kBAAmB,4CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,YAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,gBACzB,mBAAoB,iBAErB,yBAA0B,CACzB,2BAA4B,kBAC5B,aAAc,CACb,2BAA4B,wBAE7B,qBAAsB,uBACtB,sBAAuB,kBACvB,eAAgB,CACf,2BAA4B,sBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,mBAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,qGACT,gDAAiD,4DAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,8BACzB,uBAAwB,gCACxB,gCAAiC,+CACjC,oDAAqD,sGACrD,0BAA2B,yBAC3B,uBAAwB,0BACxB,mBAAoB,6BACpB,mDAAoD,yDACpD,uBAAwB,iCACxB,kDAAmD,yEACnD,iCAAkC,kCAClC,oCAAqC,mDAIxC,6BAA8B,CAC7B,+BAAgC,uBAChC,6BAA8B,wBAE/B,oBAAqB,CACpB,2BAA4B,qBAE7B,8BAA+B,CAC9B,kBAAmB,wBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,iCAErB,4BAA6B,CAC5B,6CAA8C,2FAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,SAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,oBAE5B,wBAAyB,CACxB,2BAA4B,uB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/es-ES/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro con la clave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gestionado de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Eliminar filtro con la clave {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Eliminar valor del filtro: {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Usar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Si ha llegado hasta aquí mediante un enlace, es posible que haya un error en esta aplicación.\",\n\t\t\tsubTitle: \"La URL no coincide con ninguna página\",\n\t\t\ttitle: \"No se ha encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Contraer escena\",\n\t\t\t\"expand-button-label\": \"Expandir escena\",\n\t\t\t\"remove-button-label\": \"Eliminar escena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalles del objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de la escena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de escenas\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Contraer fila\",\n\t\t\t\"expand-row\": \"Expandir fila\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparación\",\n\t\t\t\"button-tooltip\": \"Habilitar comparación de intervalos de tiempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de cambio de tamaño del panel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Cargando panel de plugins...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"El plugin del panel no tiene ningún componente de panel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Representar demasiadas series en un solo panel puede afectar al rendimiento y dificultar la lectura de los datos.\",\n\t\t\t\"warning-message\": \"Mostrando solo {{seriesLimit}} serie(s)\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Eliminar\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Añadir filtro\",\n\t\t\t\"title-add-filter\": \"Añadir filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Eliminar filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Seleccionar etiqueta\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Seleccionar etiqueta\",\n\t\t\t\"title-remove-filter\": \"Eliminar filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"predeterminada\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"borrar\",\n\t\t\ttooltip: \"Aplicado de forma predeterminada en este dashboard. Si se edita, se transfiere a otros dashboards.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaura la función groupby definida por este dashboard.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por comas\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre comillas dobles\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Dar formato a la fecha de diferentes maneras\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Dar formato a las variables de múltiples valores con la sintaxis glob, por ejemplo, {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape HTML de valores\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor de JSON stringify\",\n\t\t\t\t\t\"keep-value-as-is\": \"Mantener el valor tal cual\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Los valores múltiples tienen el formato variable=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre comillas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape URL, utilizando caracteres de sintaxis URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Los valores están separados por el carácter |\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por selector\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por etiqueta\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Cargando opciones...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"No se han encontrado opciones\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Se ha producido un error al recuperar las etiquetas. Haga clic para volver a intentarlo\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Hola\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Introducir valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Seleccionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js new file mode 100644 index 00000000..081d9e5e --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[2],{6002:(e,a,l)=>{l.r(a),l.d(a,{default:()=>r});var r={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Modifier le filtre ayant pour clé {{keyLabel}}","managed-filter":"Filtre géré {{origin}}","remove-filter-with-key":"Supprimer le filtre ayant pour clé {{keyLabel}}"},"adhoc-filters-combobox":{"remove-filter-value":"Supprimer la valeur du filtre – {{itemLabel}}","use-custom-value":"Utiliser une valeur personnalisée : {{itemLabel}}"},"fallback-page":{content:"Si vous êtes arrivé ici via un lien, il se peut qu’il y ait un bug dans l’application.",subTitle:"L’URL ne correspond à aucune page",title:"Page introuvable"},"nested-scene-renderer":{"collapse-button-label":"Réduire la scène","expand-button-label":"Développer la scène","remove-button-label":"Supprimer la scène"},"scene-debugger":{"object-details":"Détails de l’objet","scene-graph":"Graphique de la scène","title-scene-debugger":"Débogueur de scène"},"scene-grid-row":{"collapse-row":"Réduire la ligne","expand-row":"Développer la ligne"},"scene-time-range-compare-renderer":{"button-label":"Comparaison","button-tooltip":"Activer la comparaison d’intervalles"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionnement du panneau"},"viz-panel":{title:{title:"Titre"}},"viz-panel-explore-button":{explore:"Explorer"},"viz-panel-renderer":{"loading-plugin-panel":"Chargement du panneau du plugin…","panel-plugin-has-no-panel-component":"Le plugin de panneau ne contient aucun composant de panneau"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Le rendu d’un trop grand nombre de séries dans un seul panneau peut nuire aux performances et rendre les données plus difficiles à lire.","warning-message":"Affichage limité à {{seriesLimit}} séries"}},utils:{"controls-label":{"tooltip-remove":"Supprimer"},"loading-indicator":{"content-cancel-query":"Annuler la requête"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Modifier l’opérateur du filtre"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Ajouter un filtre","title-add-filter":"Ajouter un filtre"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Supprimer le filtre","key-select":{"placeholder-select-label":"Sélectionner une étiquette"},"label-select-label":"Sélectionner une étiquette","title-remove-filter":"Supprimer le filtre","value-select":{"placeholder-select-value":"Sélectionner une valeur"}},"data-source-variable":{label:{default:"par défaut"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"effacer",tooltip:"Appliqué par défaut dans ce tableau de bord. En cas de modification, il s’applique aussi aux autres tableaux de bord.","tooltip-restore-groupby-set-by-this-dashboard":"Restaurer le groupage défini par ce tableau de bord."},"format-registry":{formats:{description:{"commaseparated-values":"Valeurs séparées par des virgules","double-quoted-values":"Valeurs entre guillemets doubles","format-date-in-different-ways":"Formater la date de différentes façons","format-multivalued-variables-using-syntax-example":"Formater les variables à valeurs multiples avec la syntaxe glob : exemple {value1,value2}","html-escaping-of-values":"Échappement HTML des valeurs","json-stringify-value":"Valeur au format JSON (stringify)","keep-value-as-is":"Conserver la valeur telle quelle","multiple-values-are-formatted-like-variablevalue":"Plusieurs valeurs sont formatées ainsi : variable=valeur","single-quoted-values":"Valeurs entre guillemets simples","useful-escaping-values-taking-syntax-characters":"Utile pour l’échappement des valeurs dans les URL en tenant compte des caractères de syntaxe URI","useful-for-url-escaping-values":"Utile pour l’échappement des valeurs dans les URL","values-are-separated-by-character":"Les valeurs sont séparées par le caractère « | »"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Sélecteur de regroupement","placeholder-group-by-label":"Regrouper par étiquette"},"interval-variable":{"placeholder-select-value":"Sélectionner une valeur"},"loading-options-placeholder":{"loading-options":"Chargement des options..."},"multi-value-apply-button":{apply:"Appliquer"},"no-options-placeholder":{"no-options-found":"Aucune option trouvée"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Une erreur est survenue lors de la récupération des étiquettes. Cliquez pour réessayer"},"test-object-with-variable-dependency":{title:{hello:"Bonjour"}},"test-variable":{text:{text:"Texte"}},"variable-value-input":{"placeholder-enter-value":"Saisir une valeur"},"variable-value-select":{"placeholder-select-value":"Sélectionner une valeur"}}}}}}]); +//# sourceMappingURL=2.js.map?_cache=e8dfc983374527051249 \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js.map new file mode 100644 index 00000000..15c37f21 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"2.js?_cache=e8dfc983374527051249","mappings":"iKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,iDACxB,iBAAkB,yBAClB,yBAA0B,mDAE3B,yBAA0B,CACzB,sBAAuB,gDACvB,mBAAoB,qDAErB,gBAAiB,CAChBC,QAAS,yFACTC,SAAU,oCACVC,MAAO,oBAER,wBAAyB,CACxB,wBAAyB,mBACzB,sBAAuB,sBACvB,sBAAuB,sBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,wBACf,uBAAwB,sBAEzB,iBAAkB,CACjB,eAAgB,mBAChB,aAAc,uBAEf,oCAAqC,CACpC,eAAgB,cAChB,iBAAkB,wCAEnBC,SAAU,CACT,gCAAiC,0CAElC,YAAa,CACZD,MAAO,CACNA,MAAO,UAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,mCACxB,sCAAuC,+DAExC,yBAA0B,CACzB,2DAA4D,2IAC5D,kBAAmB,8CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,aAEnB,oBAAqB,CACpB,uBAAwB,uBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,kCAEpC,wBAAyB,CACxB,wBAAyB,oBACzB,mBAAoB,qBAErB,yBAA0B,CACzB,2BAA4B,sBAC5B,aAAc,CACb,2BAA4B,8BAE7B,qBAAsB,6BACtB,sBAAuB,sBACvB,eAAgB,CACf,2BAA4B,4BAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,eAGb,8CAA+C,CAC9C,mBAAoB,UACpBC,QAAS,wHACT,gDAAiD,wDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,oCACzB,uBAAwB,mCACxB,gCAAiC,yCACjC,oDAAqD,4FACrD,0BAA2B,+BAC3B,uBAAwB,oCACxB,mBAAoB,mCACpB,mDAAoD,2DACpD,uBAAwB,mCACxB,kDAAmD,mGACnD,iCAAkC,oDAClC,oCAAqC,sDAIxC,6BAA8B,CAC7B,+BAAgC,4BAChC,6BAA8B,2BAE/B,oBAAqB,CACpB,2BAA4B,2BAE7B,8BAA+B,CAC9B,kBAAmB,6BAEpB,2BAA4B,CAC3BC,MAAO,aAER,yBAA0B,CACzB,mBAAoB,yBAErB,4BAA6B,CAC5B,6CAA8C,0FAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,YAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,qBAE5B,wBAAyB,CACxB,2BAA4B,6B","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/fr-FR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Modifier le filtre ayant pour clé {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtre géré {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Supprimer le filtre ayant pour clé {{keyLabel}}\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Supprimer la valeur du filtre – {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Utiliser une valeur personnalisée : {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Si vous êtes arrivé ici via un lien, il se peut qu’il y ait un bug dans l’application.\",\n\t\t\tsubTitle: \"L’URL ne correspond à aucune page\",\n\t\t\ttitle: \"Page introuvable\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Réduire la scène\",\n\t\t\t\"expand-button-label\": \"Développer la scène\",\n\t\t\t\"remove-button-label\": \"Supprimer la scène\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Détails de l’objet\",\n\t\t\t\"scene-graph\": \"Graphique de la scène\",\n\t\t\t\"title-scene-debugger\": \"Débogueur de scène\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Réduire la ligne\",\n\t\t\t\"expand-row\": \"Développer la ligne\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparaison\",\n\t\t\t\"button-tooltip\": \"Activer la comparaison d’intervalles\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionnement du panneau\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Titre\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorer\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Chargement du panneau du plugin…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"Le plugin de panneau ne contient aucun composant de panneau\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Le rendu d’un trop grand nombre de séries dans un seul panneau peut nuire aux performances et rendre les données plus difficiles à lire.\",\n\t\t\t\"warning-message\": \"Affichage limité à {{seriesLimit}} séries\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Supprimer\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Annuler la requête\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Modifier l’opérateur du filtre\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Ajouter un filtre\",\n\t\t\t\"title-add-filter\": \"Ajouter un filtre\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Supprimer le filtre\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Sélectionner une étiquette\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Sélectionner une étiquette\",\n\t\t\t\"title-remove-filter\": \"Supprimer le filtre\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"par défaut\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"effacer\",\n\t\t\ttooltip: \"Appliqué par défaut dans ce tableau de bord. En cas de modification, il s’applique aussi aux autres tableaux de bord.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaurer le groupage défini par ce tableau de bord.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valeurs séparées par des virgules\",\n\t\t\t\t\t\"double-quoted-values\": \"Valeurs entre guillemets doubles\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formater la date de différentes façons\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formater les variables à valeurs multiples avec la syntaxe glob : exemple {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Échappement HTML des valeurs\",\n\t\t\t\t\t\"json-stringify-value\": \"Valeur au format JSON (stringify)\",\n\t\t\t\t\t\"keep-value-as-is\": \"Conserver la valeur telle quelle\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Plusieurs valeurs sont formatées ainsi : variable=valeur\",\n\t\t\t\t\t\"single-quoted-values\": \"Valeurs entre guillemets simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Utile pour l’échappement des valeurs dans les URL en tenant compte des caractères de syntaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Utile pour l’échappement des valeurs dans les URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Les valeurs sont séparées par le caractère « | »\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Sélecteur de regroupement\",\n\t\t\t\"placeholder-group-by-label\": \"Regrouper par étiquette\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Chargement des options...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Appliquer\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Aucune option trouvée\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Une erreur est survenue lors de la récupération des étiquettes. Cliquez pour réessayer\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Bonjour\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texte\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Saisir une valeur\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Sélectionner une valeur\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js new file mode 100644 index 00000000..26e02829 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js @@ -0,0 +1,8 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[202],{202:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v,updatePlugin:()=>f});var n=a(5959),r=a.n(n),i=a(2007),l=a(8531),o=a(6089),c=a(1269);function p(e,t,a,n,r,i,l){try{var o=e[i](l),c=o.value}catch(e){return void a(e)}o.done?t(c):Promise.resolve(c).then(n,r)}function s(e){return function(){var t=this,a=arguments;return new Promise(function(n,r){var i=e.apply(t,a);function l(e){p(i,n,r,l,o,"next",e)}function o(e){p(i,n,r,l,o,"throw",e)}l(void 0)})}}function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function d(e){for(var t=1;t({colorWeak:o.css` + color: ${e.colors.text.secondary}; + `,marginTop:o.css` + margin-top: ${e.spacing(3)}; + `,marginTopXl:o.css` + margin-top: ${e.spacing(6)}; + `}),g=(e,t)=>s(function*(){try{yield f(e,t),l.locationService.reload()}catch(e){console.error("Error while updating the plugin",e)}})(),b={appConfig:{container:"data-testid ac-container",apiKey:"data-testid ac-api-key",apiUrl:"data-testid ac-api-url",submit:"data-testid ac-submit-form"}},f=(e,t)=>s(function*(){const a=(0,l.getBackendSrv)().fetch({url:`/api/plugins/${e}/settings`,method:"POST",data:t});return(yield(0,c.lastValueFrom)(a)).data})(),v=({plugin:e})=>{const t=(0,i.useStyles2)(y),{enabled:a,pinned:l,jsonData:o}=e.meta,[c,p]=(0,n.useState)({apiUrl:(null==o?void 0:o.apiUrl)||"",apiKey:"",isApiKeySet:Boolean(null==o?void 0:o.isApiKeySet)});return r().createElement("div",{"data-testid":b.appConfig.container},r().createElement(i.FieldSet,{label:"Enable / Disable"},!a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently not enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"primary",onClick:()=>g(e.meta.id,{enabled:!0,pinned:!0,jsonData:o})},"Enable plugin")),a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"destructive",onClick:()=>g(e.meta.id,{enabled:!1,pinned:!1,jsonData:o})},"Disable plugin"))),r().createElement(i.FieldSet,{label:"API Settings",className:t.marginTopXl},r().createElement(i.Field,{label:"API Key",description:"A secret key for authenticating to our custom API"},r().createElement(i.SecretInput,{width:60,"data-testid":b.appConfig.apiKey,id:"api-key",value:null==c?void 0:c.apiKey,isConfigured:c.isApiKeySet,placeholder:"Your secret API key",onChange:e=>{p(m(d({},c),{apiKey:e.target.value.trim()}))},onReset:()=>p(m(d({},c),{apiKey:"",isApiKeySet:!1}))})),r().createElement(i.Field,{label:"API Url",description:"",className:t.marginTop},r().createElement(i.Input,{width:60,id:"api-url","data-testid":b.appConfig.apiUrl,label:"API Url",value:null==c?void 0:c.apiUrl,placeholder:"E.g.: http://mywebsite.com/api/v1",onChange:e=>{p(m(d({},c),{apiUrl:e.target.value.trim()}))}})),r().createElement("div",{className:t.marginTop},r().createElement(i.Button,{type:"submit","data-testid":b.appConfig.submit,onClick:()=>g(e.meta.id,{enabled:a,pinned:l,jsonData:{apiUrl:c.apiUrl,isApiKeySet:!0},secureJsonData:c.isApiKeySet?void 0:{apiKey:c.apiKey}}),disabled:Boolean(!c.apiUrl||!c.isApiKeySet&&!c.apiKey)},"Save API settings"))))}}}]); +//# sourceMappingURL=202.js.map?_cache=71520d621a6b7c0f04bb \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js.map new file mode 100644 index 00000000..512ab17c --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/202.js.map @@ -0,0 +1 @@ +{"version":3,"file":"202.js?_cache=71520d621a6b7c0f04bb","mappings":"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","sources":["webpack://grafana-exploretraces-app/./components/AppConfig/AppConfig.tsx"],"sourcesContent":["import React, { useState, ChangeEvent } from 'react';\nimport { Button, Field, Input, useStyles2, FieldSet, SecretInput } from '@grafana/ui';\nimport { PluginConfigPageProps, AppPluginMeta, PluginMeta, GrafanaTheme2 } from '@grafana/data';\nimport { FetchResponse, getBackendSrv, locationService } from '@grafana/runtime';\nimport { css } from '@emotion/css';\nimport { lastValueFrom, Observable } from 'rxjs';\n\nexport type JsonData = {\n apiUrl?: string;\n isApiKeySet?: boolean;\n};\n\ntype State = {\n // The URL to reach our custom API.\n apiUrl: string;\n // Tells us if the API key secret is set.\n // Set to `true` ONLY if it has already been set and haven't been changed.\n // (We unfortunately need an auxiliary variable for this, as `secureJsonData` is never exposed to the browser after it is set)\n isApiKeySet: boolean;\n // An secret key for our custom API.\n apiKey: string;\n};\n\ninterface Props extends PluginConfigPageProps> {}\n\nconst AppConfig = ({ plugin }: Props) => {\n const s = useStyles2(getStyles);\n const { enabled, pinned, jsonData } = plugin.meta;\n const [state, setState] = useState({\n apiUrl: jsonData?.apiUrl || '',\n apiKey: '',\n isApiKeySet: Boolean(jsonData?.isApiKeySet),\n });\n\n const onResetApiKey = () =>\n setState({\n ...state,\n apiKey: '',\n isApiKeySet: false,\n });\n\n const onChangeApiKey = (event: ChangeEvent) => {\n setState({\n ...state,\n apiKey: event.target.value.trim(),\n });\n };\n\n const onChangeApiUrl = (event: ChangeEvent) => {\n setState({\n ...state,\n apiUrl: event.target.value.trim(),\n });\n };\n\n return (\n

    \n {/* ENABLE / DISABLE PLUGIN */}\n
    \n {!enabled && (\n <>\n
    The plugin is currently not enabled.
    \n \n updatePluginAndReload(plugin.meta.id, {\n enabled: true,\n pinned: true,\n jsonData,\n })\n }\n >\n Enable plugin\n \n \n )}\n\n {/* Disable the plugin */}\n {enabled && (\n <>\n
    The plugin is currently enabled.
    \n \n updatePluginAndReload(plugin.meta.id, {\n enabled: false,\n pinned: false,\n jsonData,\n })\n }\n >\n Disable plugin\n \n \n )}\n
    \n\n {/* CUSTOM SETTINGS */}\n
    \n {/* API Key */}\n \n \n \n\n {/* API Url */}\n \n \n \n\n
    \n \n updatePluginAndReload(plugin.meta.id, {\n enabled,\n pinned,\n jsonData: {\n apiUrl: state.apiUrl,\n isApiKeySet: true,\n },\n // This cannot be queried later by the frontend.\n // We don't want to override it in case it was set previously and left untouched now.\n secureJsonData: state.isApiKeySet\n ? undefined\n : {\n apiKey: state.apiKey,\n },\n })\n }\n disabled={Boolean(!state.apiUrl || (!state.isApiKeySet && !state.apiKey))}\n >\n Save API settings\n \n
    \n
    \n
    \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n colorWeak: css`\n color: ${theme.colors.text.secondary};\n `,\n marginTop: css`\n margin-top: ${theme.spacing(3)};\n `,\n marginTopXl: css`\n margin-top: ${theme.spacing(6)};\n `,\n});\n\nconst updatePluginAndReload = async (pluginId: string, data: Partial>) => {\n try {\n await updatePlugin(pluginId, data);\n\n // Reloading the page as the changes made here wouldn't be propagated to the actual plugin otherwise.\n // This is not ideal, however unfortunately currently there is no supported way for updating the plugin state.\n locationService.reload();\n } catch (e) {\n console.error('Error while updating the plugin', e);\n }\n};\n\nconst testIds = {\n appConfig: {\n container: 'data-testid ac-container',\n apiKey: 'data-testid ac-api-key',\n apiUrl: 'data-testid ac-api-url',\n submit: 'data-testid ac-submit-form',\n },\n};\n\nexport const updatePlugin = async (pluginId: string, data: Partial) => {\n const response = getBackendSrv().fetch({\n url: `/api/plugins/${pluginId}/settings`,\n method: 'POST',\n data,\n }) as unknown as Observable;\n\n const dataResponse = await lastValueFrom(response);\n\n return dataResponse.data;\n};\n\nexport default AppConfig;\n"],"names":["getStyles","theme","colorWeak","css","colors","text","secondary","marginTop","spacing","marginTopXl","updatePluginAndReload","pluginId","data","updatePlugin","locationService","reload","e","console","error","testIds","appConfig","container","apiKey","apiUrl","submit","response","getBackendSrv","fetch","url","method","lastValueFrom","plugin","s","useStyles2","enabled","pinned","jsonData","meta","state","setState","useState","isApiKeySet","Boolean","div","data-testid","FieldSet","label","className","Button","variant","onClick","id","Field","description","SecretInput","width","value","isConfigured","placeholder","onChange","event","target","trim","onReset","Input","type","secureJsonData","undefined","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js new file mode 100644 index 00000000..50133c58 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[206],{6206:(e,a,r)=>{r.r(a),r.d(a,{default:()=>o});var o={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"Editar filtro com a chave {{keyLabel}}","managed-filter":"Filtro gerido de {{origin}}","remove-filter-with-key":"Remover filtro com a chave {{keyLabel}} "},"adhoc-filters-combobox":{"remove-filter-value":"Remover o valor do filtro - {{itemLabel}} ","use-custom-value":"Utilizar valor personalizado: {{itemLabel}}"},"fallback-page":{content:"Se chegou aqui através de um link, pode existir um erro nesta aplicação.",subTitle:"O URL não corresponde a nenhuma página",title:"Não encontrado"},"nested-scene-renderer":{"collapse-button-label":"Recolher cena","expand-button-label":"Expandir cena","remove-button-label":"Remover cena"},"scene-debugger":{"object-details":"Detalhes do objeto","scene-graph":"Gráfico de cena","title-scene-debugger":"Depurador de cena"},"scene-grid-row":{"collapse-row":"Recolher linha","expand-row":"Expandir linha"},"scene-time-range-compare-renderer":{"button-label":"Comparação","button-tooltip":"Ativar a comparação de intervalos de tempo"},splitter:{"aria-label-pane-resize-widget":"Widget de redimensionamento de painel"},"viz-panel":{title:{title:"Título"}},"viz-panel-explore-button":{explore:"Explorar"},"viz-panel-renderer":{"loading-plugin-panel":"A carregar o painel de plugins...","panel-plugin-has-no-panel-component":"O plugin do painel não tem componente de painel"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"A renderização de demasiadas séries num único painel pode afetar o desempenho e dificultar a leitura dos dados. ","warning-message":"A mostrar apenas {{seriesLimit}} séries"}},utils:{"controls-label":{"tooltip-remove":"Remover"},"loading-indicator":{"content-cancel-query":"Cancelar consulta"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Editar operador de filtro"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Adicionar filtro","title-add-filter":"Adicionar filtro"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Remover filtro","key-select":{"placeholder-select-label":"Selecione etiqueta"},"label-select-label":"Selecione etiqueta","title-remove-filter":"Remover filtro","value-select":{"placeholder-select-value":"Selecionar valor"}},"data-source-variable":{label:{default:"padrão"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"limpar",tooltip:"Aplicado por predefinição neste painel de controlo. Em caso de edição, é transferido para outros painéis de controlo.","tooltip-restore-groupby-set-by-this-dashboard":"Restaurar grupo definido por este painel de controlo."},"format-registry":{formats:{description:{"commaseparated-values":"Valores separados por vírgulas","double-quoted-values":"Valores entre aspas duplas","format-date-in-different-ways":"Formatar a data de diferentes formas","format-multivalued-variables-using-syntax-example":"Formatar variáveis de valores múltiplos com a sintaxe glob, exemplo {value1,value2}","html-escaping-of-values":"Escape de valores HTML","json-stringify-value":"Valor no formato JSON (stringify)","keep-value-as-is":"Manter o valor como está","multiple-values-are-formatted-like-variablevalue":"Os valores múltiplos são formatados como variável=valor","single-quoted-values":"Valores entre aspas simples","useful-escaping-values-taking-syntax-characters":"Útil para valores de escape de URL, tendo em conta carateres de sintaxe URI","useful-for-url-escaping-values":"Útil para valores de escape de URL","values-are-separated-by-character":"Os valores são separados pelo caráter |"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Agrupar por seletor","placeholder-group-by-label":"Agrupar por etiqueta"},"interval-variable":{"placeholder-select-value":"Selecionar valor"},"loading-options-placeholder":{"loading-options":"A carregar opções..."},"multi-value-apply-button":{apply:"Aplicar"},"no-options-placeholder":{"no-options-found":"Nenhuma opção encontrada"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Ocorreu um erro ao obter as etiquetas. Clique para tentar novamente"},"test-object-with-variable-dependency":{title:{hello:"Olá"}},"test-variable":{text:{text:"Texto"}},"variable-value-input":{"placeholder-enter-value":"Introduza o valor"},"variable-value-select":{"placeholder-select-value":"Selecionar valor"}}}}}}]); +//# sourceMappingURL=206.js.map?_cache=e569ac060d9762698b17 \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js.map new file mode 100644 index 00000000..513b5b00 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/206.js.map @@ -0,0 +1 @@ +{"version":3,"file":"206.js?_cache=e569ac060d9762698b17","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,yCACxB,iBAAkB,8BAClB,yBAA0B,4CAE3B,yBAA0B,CACzB,sBAAuB,6CACvB,mBAAoB,+CAErB,gBAAiB,CAChBC,QAAS,2EACTC,SAAU,yCACVC,MAAO,kBAER,wBAAyB,CACxB,wBAAyB,gBACzB,sBAAuB,gBACvB,sBAAuB,gBAExB,iBAAkB,CACjB,iBAAkB,qBAClB,cAAe,kBACf,uBAAwB,qBAEzB,iBAAkB,CACjB,eAAgB,iBAChB,aAAc,kBAEf,oCAAqC,CACpC,eAAgB,aAChB,iBAAkB,8CAEnBC,SAAU,CACT,gCAAiC,yCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,WAGT,2BAA4B,CAC3BE,QAAS,YAEV,qBAAsB,CACrB,uBAAwB,oCACxB,sCAAuC,mDAExC,yBAA0B,CACzB,2DAA4D,mHAC5D,kBAAmB,4CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,WAEnB,oBAAqB,CACpB,uBAAwB,sBAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,6BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,iBAC5B,aAAc,CACb,2BAA4B,sBAE7B,qBAAsB,qBACtB,sBAAuB,iBACvB,eAAgB,CACf,2BAA4B,qBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,WAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,wHACT,gDAAiD,yDAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,iCACzB,uBAAwB,6BACxB,gCAAiC,uCACjC,oDAAqD,sFACrD,0BAA2B,yBAC3B,uBAAwB,oCACxB,mBAAoB,2BACpB,mDAAoD,0DACpD,uBAAwB,8BACxB,kDAAmD,8EACnD,iCAAkC,qCAClC,oCAAqC,6CAIxC,6BAA8B,CAC7B,+BAAgC,sBAChC,6BAA8B,wBAE/B,oBAAqB,CACpB,2BAA4B,oBAE7B,8BAA+B,CAC9B,kBAAmB,wBAEpB,2BAA4B,CAC3BC,MAAO,WAER,yBAA0B,CACzB,mBAAoB,4BAErB,4BAA6B,CAC5B,6CAA8C,uEAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,UAGR,uBAAwB,CACvB,0BAA2B,qBAE5B,wBAAyB,CACxB,2BAA4B,sB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/pt-PT/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"Editar filtro com a chave {{keyLabel}}\",\n\t\t\t\"managed-filter\": \"Filtro gerido de {{origin}}\",\n\t\t\t\"remove-filter-with-key\": \"Remover filtro com a chave {{keyLabel}} \"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Remover o valor do filtro - {{itemLabel}} \",\n\t\t\t\"use-custom-value\": \"Utilizar valor personalizado: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Se chegou aqui através de um link, pode existir um erro nesta aplicação.\",\n\t\t\tsubTitle: \"O URL não corresponde a nenhuma página\",\n\t\t\ttitle: \"Não encontrado\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Recolher cena\",\n\t\t\t\"expand-button-label\": \"Expandir cena\",\n\t\t\t\"remove-button-label\": \"Remover cena\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Detalhes do objeto\",\n\t\t\t\"scene-graph\": \"Gráfico de cena\",\n\t\t\t\"title-scene-debugger\": \"Depurador de cena\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Recolher linha\",\n\t\t\t\"expand-row\": \"Expandir linha\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Comparação\",\n\t\t\t\"button-tooltip\": \"Ativar a comparação de intervalos de tempo\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Widget de redimensionamento de painel\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Título\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explorar\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"A carregar o painel de plugins...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"O plugin do painel não tem componente de painel\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"A renderização de demasiadas séries num único painel pode afetar o desempenho e dificultar a leitura dos dados. \",\n\t\t\t\"warning-message\": \"A mostrar apenas {{seriesLimit}} séries\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Remover\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"Cancelar consulta\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Editar operador de filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Adicionar filtro\",\n\t\t\t\"title-add-filter\": \"Adicionar filtro\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Remover filtro\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Selecione etiqueta\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Selecione etiqueta\",\n\t\t\t\"title-remove-filter\": \"Remover filtro\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"padrão\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"limpar\",\n\t\t\ttooltip: \"Aplicado por predefinição neste painel de controlo. Em caso de edição, é transferido para outros painéis de controlo.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"Restaurar grupo definido por este painel de controlo.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Valores separados por vírgulas\",\n\t\t\t\t\t\"double-quoted-values\": \"Valores entre aspas duplas\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Formatar a data de diferentes formas\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Formatar variáveis de valores múltiplos com a sintaxe glob, exemplo {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Escape de valores HTML\",\n\t\t\t\t\t\"json-stringify-value\": \"Valor no formato JSON (stringify)\",\n\t\t\t\t\t\"keep-value-as-is\": \"Manter o valor como está\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Os valores múltiplos são formatados como variável=valor\",\n\t\t\t\t\t\"single-quoted-values\": \"Valores entre aspas simples\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Útil para valores de escape de URL, tendo em conta carateres de sintaxe URI\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Útil para valores de escape de URL\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Os valores são separados pelo caráter |\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Agrupar por seletor\",\n\t\t\t\"placeholder-group-by-label\": \"Agrupar por etiqueta\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"A carregar opções...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Aplicar\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nenhuma opção encontrada\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Ocorreu um erro ao obter as etiquetas. Clique para tentar novamente\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Olá\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Texto\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Introduza o valor\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Selecionar valor\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js new file mode 100644 index 00000000..3f9c52c5 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js @@ -0,0 +1,41 @@ +(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[211],{271:(e,t,n)=>{"use strict";n.d(t,{VV:()=>xt,jc:()=>yt});var r=n(5959),a=n.n(r),i=n(7781),s=n(118),o=n(7197),l=n(1829),c=n(8531),u=n(6089),d=n(2007),m=n(1051),p=n(940);const f=({exploration:e})=>{const{origin:t}=(0,p.A)(),[n,i]=(0,r.useState)("Copy url");return a().createElement(d.ToolbarButton,{variant:"canvas",icon:"share-alt",tooltip:n,onClick:()=>{navigator.clipboard&&(navigator.clipboard.writeText(t+(0,m.__)(e)),i("Copied!"),setTimeout(()=>{i("Copy url")},2e3))}})};var v=n(2645),g=n(775),h=n(3049),b=n(1269);function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e){for(var t=1;tObject.values(e.reduce((e,t)=>{if(t.label){const s=t.label.slice(t.label.indexOf(".")+1);if(O.includes(t.label)){var n;const r=null!==(n=e.recommended)&&void 0!==n?n:{label:"Recommended",options:[]};r.options.push(S(w({},t),{label:s})),e.recommended=r}else if(t.label.startsWith("resource.")){var r;const n=null!==(r=e.resource)&&void 0!==r?r:{label:"Resource",options:[]};n.options.push(S(w({},t),{label:s})),e.resource=n}else if(t.label.startsWith("span.")){var a;const n=null!==(a=e.span)&&void 0!==a?a:{label:"Span",options:[]};n.options.push(S(w({},t),{label:s})),e.span=n}else{var i;const n=null!==(i=e.other)&&void 0!==i?i:{label:"Other",options:[]};n.options.push(t),e.other=n}}return e},{})).sort((e,t)=>x.indexOf(e.label)-x.indexOf(t.label)),[e]);var l;return a().createElement("div",{className:s.container},a().createElement(d.Field,{label:"Add extra columns"},a().createElement(d.Select,{value:""!==(null==t?void 0:t.toString())&&null!==(l=null==t||null===(i=t.toString())||void 0===i?void 0:i.split(","))&&void 0!==l?l:"",placeholder:"Select an attribute",options:o,onChange:e=>n(e.map(e=>e.value).join(",")),isMulti:!0,isClearable:!0,virtualized:!0,prefix:a().createElement(d.Icon,{name:"columns"})})))}const j=()=>({container:(0,u.css)({display:"flex",minWidth:"300px","& > div":{width:"100%"}})});var k=n(6338);function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e){for(var t=1;te=>e.pipe((0,b.map)(e=>e.map(e=>{var t;const n=e.fields,r=n.find(e=>"traceName"===e.name),i={type:d.TableCellDisplayMode.Custom,cellComponent:e=>{const t=e.frame,n=null==t?void 0:t.fields.find(e=>"traceIdHidden"===e.name),r=null==t?void 0:t.fields.find(e=>"spanID"===e.name),i=null==n?void 0:n.values[e.rowIndex],s=null==r?void 0:r.values[e.rowIndex];if(!i)return e.value;const o=e.value?e.value:"";return a().createElement("div",{className:"cell-link-wrapper"},a().createElement("div",{className:"cell-link",title:o,onClick:()=>{this.publishEvent(new l.vR({traceId:i,spanId:s}),!0)}},o),a().createElement(d.Link,{href:this.getLinkToExplore(i,s),target:"_blank",title:"Open in new tab"},a().createElement(d.Icon,{name:"external-link-alt",size:"sm"})))}};return(null==r||null===(t=r.config)||void 0===t?void 0:t.custom)&&(r.config.custom.cellOptions=i),_(P({},e),{fields:n})})))]}updatePanel(e){var t,n;if((null==e?void 0:e.state)!==i.LoadingState.Loading&&(null==e?void 0:e.state)!==i.LoadingState.NotStarted&&(null==e?void 0:e.state)&&((null==e?void 0:e.state)!==i.LoadingState.Streaming||(null===(n=e.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length))){if((null==e?void 0:e.state)===i.LoadingState.Done||(null==e?void 0:e.state)===i.LoadingState.Streaming)if(0===e.series.length||0===e.series[0].length){if("empty"===this.state.dataState&&this.state.panel)return;this.setState({dataState:"empty",panel:new s.G1({children:[new s.vA({body:new g.v({message:l.PL,remedyMessage:l.a5,padding:"32px"})})]})})}else"done"!==this.state.dataState&&this.setState({dataState:"done",panel:new s.G1({direction:"row",children:[new s.vA({body:s.d0.table().setHoverHeader(!0).setOverrides(e=>e.matchFieldsWithName("spanID").overrideCustomFieldConfig("hidden",!0).matchFieldsWithName("traceService").overrideCustomFieldConfig("width",350).matchFieldsWithName("traceName").overrideCustomFieldConfig("width",350)).build()})]})})}else{if("loading"===this.state.dataState)return;this.setState({dataState:"loading",panel:new s.G1({direction:"row",children:[new v.G({component:T})]})})}}constructor(e){super(P({dataState:"empty"},e)),C(this,"getLinkToExplore",(e,t)=>{const n=(0,m.zY)(this),r=(0,m.U4)(n),a=s.jh.getTimeRange(this).state.value,o=JSON.stringify({"explore-traces":{range:(0,i.toURLRange)(a.raw),queries:[{refId:"traceId",queryType:"traceql",query:e,datasource:r}],panelsState:{trace:{spanId:t}},datasource:r}});var l;const u=null!==(l=c.config.appSubUrl)&&void 0!==l?l:"";return i.urlUtil.renderUrl(`${u}/explore`,{panes:o,schemaVersion:1})}),C(this,"onChange",e=>{const t=(0,m.gi)(this);t.getValue()!==e&&(t.changeValueTo(e),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.span_list_columns_changed,{columns:e}))}),this.addActivationHandler(()=>{this.setState({$data:new s.Es({transformations:this.setupTransformations()})});const e=s.jh.getData(this);this.updatePanel(e.state.data),this._subs.add(e.subscribeToState(e=>{this.updatePanel(e.data)}))})}}C(N,"Component",({model:e})=>{const{panel:t}=e.useState(),n=D((0,d.useTheme2)()),r=(0,m.gi)(e),{attributes:s}=(0,m.YX)(e).useState();var o;if(t)return a().createElement("div",{className:n.container},a().createElement("div",{className:n.header},a().createElement("div",{className:n.description},"View a list of spans for the current set of filters."),a().createElement(E,{options:null!==(o=null==s?void 0:s.map(e=>(0,i.toOption)(e)))&&void 0!==o?o:[],value:r.getValue(),onChange:e.onChange})),a().createElement(t.Component,{model:t}))});const D=e=>({container:(0,u.css)({display:"contents",'[role="cell"] > div':{display:"flex",width:"100%"},".cell-link-wrapper":{display:"flex",gap:"4px",justifyContent:"space-between",alignItems:"center",width:"100%",a:{padding:4,fontSize:0,":hover":{background:e.colors.background.secondary}}},".cell-link":{color:e.colors.text.link,cursor:"pointer",maxWidth:"300px",overflow:"hidden",textOverflow:"ellipsis",":hover":{textDecoration:"underline"}}}),description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0 ${e.spacing(2)} 0`}),header:(0,u.css)({display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"10px"})}),T=()=>{const e=(0,d.useStyles2)(I);return a().createElement("div",{className:e.container},a().createElement("div",{className:e.title},a().createElement(h.A,{count:1,width:80})),[...Array(3)].map((t,n)=>a().createElement("div",{className:e.row,key:n},[...Array(6)].map((t,n)=>a().createElement("span",{className:e.rowItem,key:n},a().createElement(h.A,{count:1}))))))};function I(e){return{container:(0,u.css)({height:"100%",width:"100%",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),title:(0,u.css)({marginBottom:"20px"}),row:(0,u.css)({marginBottom:"5px",display:"flex",justifyContent:"space-around"}),rowItem:(0,u.css)({width:"14%"})}}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class $ extends s.Bs{_onActivate(){var e;this._subs.add(null===(e=(0,m.YX)(this).state.$data)||void 0===e?void 0:e.subscribeToState(()=>{this.updateBody()})),this._subs.add((0,m.YX)(this).subscribeToState((e,t)=>{var n,r;(null===(n=e.$data)||void 0===n?void 0:n.state.key)!==(null===(r=t.$data)||void 0===r?void 0:r.state.key)&&this.updateBody()})),this._subs.add((0,m.H_)(this).subscribeToState((e,t)=>{e.value!==t.value&&this.updateBody()})),this.updateBody()}updateBody(){this.setState({body:new N({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});class F{addSpan(e){this.left=Math.min(L(e),this.left),this.right=Math.max(V(e),this.right),this.spans.push(e)}addChild(e){e.parent=this,this.children.push(e)}isChild(e){return L(e)>this.left&&V(e)"service.name"===e.key);var i,s,o,l;return new F({left:L(e),right:V(e),name:M(e),serviceName:null!==(s=null!==(i=null==a?void 0:a.value.stringValue)&&void 0!==i?i:null==a||null===(r=a.value)||void 0===r||null===(n=r.Value)||void 0===n?void 0:n.string_value)&&void 0!==s?s:"",operationName:null!==(o=e.name)&&void 0!==o?o:"",spans:[e],traceID:null!==(l=e.traceId)&&void 0!==l?l:""})}function M(e){let t="";for(const n of e.attributes||[])"service.name"===n.key&&n.value.stringValue&&(t=n.value.stringValue);return`${t}:${e.name}`}function R(e){e.left=Number.MAX_SAFE_INTEGER,e.right=Number.MIN_SAFE_INTEGER;for(const t of e.children)R(t)}var H=n(3733);function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e){for(var t=1;t{var t,n,r,a;if((null===(t=e.data)||void 0===t?void 0:t.state)!==i.LoadingState.Loading&&(null===(n=e.data)||void 0===n?void 0:n.state)!==i.LoadingState.Streaming){if((null===(r=e.data)||void 0===r?void 0:r.state)===i.LoadingState.Done&&(null===(a=e.data)||void 0===a?void 0:a.series.length)){var o;const t=null===(o=e.data)||void 0===o?void 0:o.series[0].fields[0].values[0];if(t){const e=function(e){const t=new F({name:"root",serviceName:"",operationName:"",left:Number.MIN_SAFE_INTEGER,right:Number.MAX_SAFE_INTEGER,spans:[],traceID:""});if(e&&e.length>0)for(const r of e){var n;if(1!==(null===(n=r.spanSets)||void 0===n?void 0:n.length))throw new Error("there should be only 1 spanset!");const e=parseInt(r.startTimeUnixNano||"0",10),a=r.spanSets[0];a.spans.sort((e,t)=>L(e)-L(t));let i=t;R(t);for(const t of a.spans){for(t.traceId=r.traceID,t.startTimeUnixNano=""+(parseInt(t.startTimeUnixNano,10)-e);null!==i.parent&&!i.isChild(t);)i=i.parent;const n=i.findMatchingChild(t);if(n){n.addSpan(t),i=n;continue}const a=z(t);a.traceID=r.traceID,i.addChild(a),i=a}}return t}(JSON.parse(t));e.children.sort((e,t)=>X(t)-X(e)),this.setState({loading:!1,tree:e,panel:new s.G1({height:"100%",wrap:"wrap",children:this.getPanels(e)})})}}}else this.setState({loading:!0})}))}getPanels(e){return e.children.map(e=>new s.vA({height:150,width:"100%",minHeight:"400px",body:this.getPanel(e)}))}getPanel(e){const t=s.jh.getTimeRange(this),n=t.state.value.from,r=t.state.value.to,a=(0,m.w$)(this);return s.d0.traces().setTitle(`Structure for ${e.serviceName} [${X(e)} spans used]`).setOption("createFocusSpanLink",(e,t)=>({title:"Open trace",href:"#",onClick:()=>a(e,t),origin:{},target:"_self"})).setData(new s.Zv({data:{state:i.LoadingState.Done,timeRange:{from:n,to:r,raw:{from:n,to:r}},series:[G({},this.buildData(e))]}})).build()}buildData(e){const t=this.getTrace(e,W),n=t[0].serviceName+":"+t[0].operationName;return(0,i.createDataFrame)({name:`Trace ${n}`,refId:`trace_${n}`,fields:[{name:"references",type:i.FieldType.other,values:t.map(e=>e.references)},{name:"traceID",type:i.FieldType.string,values:t.map(e=>e.traceID)},{name:"spanID",type:i.FieldType.string,values:t.map(e=>e.spanID)},{name:"parentSpanID",type:i.FieldType.string,values:t.map(e=>e.parentSpanId)},{name:"serviceName",type:i.FieldType.string,values:t.map(e=>e.serviceName)},{name:"operationName",type:i.FieldType.string,values:t.map(e=>e.operationName)},{name:"duration",type:i.FieldType.number,values:t.map(e=>e.duration)},{name:"startTime",type:i.FieldType.number,values:t.map(e=>e.startTime)},{name:"statusCode",type:i.FieldType.number,values:t.map(e=>e.statusCode)}]})}getTrace(e,t){const n=e.spans.reduce((e,t)=>{var n,r;return"error"===(null===(r=t.attributes)||void 0===r||null===(n=r.find(e=>"status"===e.key))||void 0===n?void 0:n.value.stringValue)?e+1:e},0);let r=1e-4;t!==W&&(r=e.spans.reduce((e,t)=>e+parseInt(t.startTimeUnixNano,10),0)/e.spans.length/1e6);const a=[{references:e.spans.slice(-5).map(e=>({refType:"EXTERNAL",traceID:e.traceId,spanID:e.spanID})),traceID:e.traceID,spanID:e.spans[0].spanID,parentSpanId:t,serviceName:e.serviceName,operationName:e.operationName,statusCode:n>0?2:0,duration:e.spans.reduce((e,t)=>e+parseInt(t.durationNanos,10),0)/e.spans.length/1e6,startTime:r}];for(const t of e.children)a.push(...this.getTrace(t,e.spans[0].spanID));return a}constructor(e){super(G({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Y(e.metric)]}),transformations:l.s9}),loading:!0},e)),this.addActivationHandler(this._onActivate.bind(this))}}function Y(e){let t,n="";switch(e){case"errors":t="status = error",n="status = error";break;case"duration":t=`duration > ${l.Ld}`,n=`duration > ${l.xT}`;break;default:t="kind = server"}return{refId:"A",query:`{${l.ui} ${n.length?`&& ${n}`:""}} &>> { ${t} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,queryType:"traceql",tableType:"raw",limit:200,spss:20,filters:[]}}q(U,"Component",({model:e})=>{var t,n;const{tree:r,loading:s,panel:o,$data:c}=e.useState(),u=K((0,d.useTheme2)()),p=(0,d.useTheme2)(),f=(0,m.zY)(e),{value:v}=f.getMetricVariable().useState(),g=v;let b,y=s||!(null==r?void 0:r.children.length);(null==c||null===(t=c.state.data)||void 0===t?void 0:t.state)===i.LoadingState.Done&&(y=!1);let w="";switch(g){case"rate":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the service structure of the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="server";break;case"errors":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the errors structure of the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="error";break;case"duration":b=a().createElement(a().Fragment,null,a().createElement("div",null,"Analyse the structure of slow spans from the traces that match the current filters."),a().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),w="slow"}const S=ot(g),O=a().createElement(a().Fragment,null,a().createElement(d.Text,{textAlignment:"center",variant:"h3"},l.PL),a().createElement(d.Text,{textAlignment:"center",variant:"body"},a().createElement("div",{className:u.longText},"The structure tab shows ",w," spans beneath what you are currently investigating. Currently, there are no descendant ",w," spans beneath the spans you are investigating.")),a().createElement(d.Stack,{gap:.5,alignItems:"center"},a().createElement(d.Icon,{name:"info-circle"}),a().createElement(d.Text,{textAlignment:"center",variant:"body"},"The structure tab works best with full traces.")),a().createElement("div",{className:u.actionContainer},"Read more about",a().createElement("div",{className:u.action},a().createElement(d.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/concepts/#trace-structure"},`${S.toLowerCase()}`))));return a().createElement(d.Stack,{direction:"column",gap:1},a().createElement("div",{className:u.description},b),y&&a().createElement(d.Stack,{direction:"column",gap:2},a().createElement(h.A,{count:4,height:200,baseColor:p.colors.background.secondary,highlightColor:p.colors.background.primary})),!y&&r&&r.children.length>0&&a().createElement("div",{className:u.traceViewList},o&&a().createElement(o.Component,{model:o})),(null==c||null===(n=c.state.data)||void 0===n?void 0:n.state)===i.LoadingState.Done&&!(null==r?void 0:r.children.length)&&a().createElement(H.p,{message:O,padding:"32px"}))});const K=e=>({description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0`}),traceViewList:(0,u.css)({display:"flex",flexDirection:"column",gap:e.spacing.x1,'div[class*="panel-content"] > div':{overflow:"auto",'> :not([class*="TraceTimelineViewer"])':{display:"none"}},'div[data-testid="span-detail-component"] > :nth-child(4) > :nth-child(1)':{display:"none"},".span-detail-row":{display:"none"},'div[data-testid="TimelineRowCell"]':{'button[role="switch"]':{cursor:"text"}},'div[data-testid="span-view"]':{cursor:"text !important"}}),longText:(0,u.css)({maxWidth:"800px",margin:"0 auto"}),action:(0,u.css)({marginLeft:e.spacing(1)}),actionContainer:(0,u.css)({display:"flex",justifyContent:"space-between",alignItems:"center"})});function X(e){let t=e.spans.length;for(const n of e.children)t+=X(n);return t}var Q=n(5540);function Z({options:e,radioAttributes:t,value:n,onChange:i,showAll:s=!1,model:o}){var c,u;const p=(0,d.useStyles2)(J),f=(0,d.useTheme2)(),{fontSize:v}=f.typography,[g,h]=(0,r.useState)(""),[b,y]=(0,r.useState)(!0),[w,S]=(0,r.useState)(0),O=(0,r.useRef)(null),{initialGroupBy:x}=(0,m.zY)(o).useState(),{filters:E}=(0,m.gG)(o).useState(),{value:j}=(0,m.H_)(o).useState(),k=j;(0,Q.w)({ref:O,onResize:()=>{const e=O.current;e&&S(e.clientWidth)}});const C=(0,r.useMemo)(()=>{let n=0;return t.filter(t=>{let n=!!e.find(e=>e.value===t);return!E.find(e=>e.key===t&&("="===e.operator||"!="===e.operator))&&(E.find(e=>"nestedSetParent"===e.key)&&(n=n&&"rootName"!==t&&"rootServiceName"!==t),"rate"!==k&&"errors"!==k||(n=n&&"status"!==t),n)}).map(e=>({label:e.replace(l.zd,"").replace(l.$d,""),text:e,value:e})).filter(e=>{const t=e.label||e.text||"",r=(0,d.measureText)(t,v).width;return n+r+40+180{const t=e.filter(e=>!C.find(t=>{var n;return t.value===(null===(n=e.value)||void 0===n?void 0:n.toString())}));return ee(t,g)},[g,e,C]),_=e=>e.filter(e=>{var t;return!l.uK.includes(null===(t=e.value)||void 0===t?void 0:t.toString())}).map(e=>{var t;return{label:null===(t=e.label)||void 0===t?void 0:t.replace(l.zd,"").replace(l.$d,""),value:e.value}});var N;const D=null!==(N=null!=x?x:null===(c=C[0])||void 0===c?void 0:c.value)&&void 0!==N?N:null===(u=P[0])||void 0===u?void 0:u.value;(0,r.useEffect)(()=>{D&&!s&&b&&(i(D,!0),y(!1))},[n,D,s,i,b]),(0,r.useEffect)(()=>{t.length>0&&y(!0)},[t]),(0,r.useEffect)(()=>{E.some(e=>e.key===n)&&y(!0)},[E,n]);const T=s?[{label:l.y2,value:l.y2}]:[],I=s?l.y2:"";return a().createElement(d.Field,{label:"Group by"},a().createElement("div",{ref:O,className:p.container},C.length>0&&a().createElement(d.RadioButtonGroup,{options:[...T,...C],value:n,onChange:i}),a().createElement(d.Select,{value:n&&_(P).some(e=>e.value===n)?n:null,placeholder:"Other attributes",options:_(P),onChange:e=>{var t;const n=null!==(t=null==e?void 0:e.value)&&void 0!==t?t:I;i(n)},className:p.select,isClearable:!0,onInputChange:(e,{action:t})=>{"input-change"===t&&h(e)},onCloseMenu:()=>h(""),virtualized:!0})))}function J(e){return{select:(0,u.css)({maxWidth:e.spacing(22)}),container:(0,u.css)({display:"flex",gap:e.spacing(1)})}}const ee=(e,t)=>{if(0===e.length)return[];if(0===t.length)return e.slice(0,l.nr);const n=t.toLowerCase();return e.filter(e=>!!(e.value&&e.value.length>0)&&e.value.toLowerCase().includes(n)).slice(0,l.nr)};function te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ne extends s.Bs{Selector({model:e}){const{active:t,options:n}=e.useState();return a().createElement(d.Field,{label:"View"},a().createElement(d.RadioButtonGroup,{options:n,value:t,onChange:e.onLayoutChange}))}constructor(...e){super(...e),te(this,"onLayoutChange",e=>{this.setState({active:e}),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.layout_type_changed,{layout:e})})}}te(ne,"Component",({model:e})=>{const{layouts:t,options:n,active:r}=e.useState(),i=n.findIndex(e=>e.value===r);if(-1===i)return null;const s=t[i];return a().createElement(s.Component,{model:s})});var re=n(806),ae=n(8327),ie=n(9840),se=n(6997);const oe=()=>s.d0.timeseries().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:d.TooltipDisplayMode.Multi}).setCustomFieldConfig("fillOpacity",15);var le=n(6374),ce=n(3241);function ue(){return e=>{const t=new Map,n=e.subscribeToEvent(l.sv,n=>{const r=n.payload.series;null==r||r.forEach(e=>{e.fields.slice(1).forEach(n=>{t.set(e.refId,Math.max(...n.values.filter(e=>e)))})}),function(e,t){const n=s.jh.findAllObjects(e,e=>e instanceof s.Eb);for(const e of n)e.clearFieldConfigCache(),e.setState({fieldConfig:(0,ce.merge)((0,ce.cloneDeep)(e.state.fieldConfig),{defaults:{max:t}})})}(e,Math.max(...t.values()))});return()=>{n.unsubscribe()}}}var de=n(3247),me=n(4524);function pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fe(e){for(var t=1;te=>e.pipe((0,b.map)(e=>(e.forEach(e=>(0,i.reduceField)({field:e.fields[1],reducers:[i.ReducerID.max]})),e.sort((e,t)=>{var n,r,a,i;return((null===(r=t.fields[1].state)||void 0===r||null===(n=r.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[1].state)||void 0===i||null===(a=i.calcs)||void 0===a?void 0:a.max)||0)}))))]}),options:[{value:"single",label:"Single"},{value:"grid",label:"Grid"},{value:"rows",label:"Rows"}],active:"grid",layouts:[new s.G1({direction:"column",children:[new s.vA({minHeight:300,body:("duration"===r?oe().setUnit("s"):oe()).build()})]}),new ae.hE({body:new s.gF({templateColumns:l.MV,autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:he(o,m.ee,t,r,n)}),new ae.hE({body:new s.gF({templateColumns:"1fr",autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:he(o,m.ee,t,r,n)})]})}function he(e,t,n,r,a){return(i,o)=>{var l;const c=o.name?e[o.name]:void 0,u=new s.Zv({data:ve(fe({},i),{annotations:null===(l=i.annotations)||void 0===l?void 0:l.filter(e=>e.refId===o.refId),series:[ve(fe({},o),{fields:o.fields.sort((e,t)=>{var n,r,a;return(null===(a=e.labels)||void 0===a||null===(r=a.status)||void 0===r?void 0:r.localeCompare((null===(n=t.labels)||void 0===n?void 0:n.status)||""))||0})})]})});var d;if(c)return null===(d=c.state.body)||void 0===d||d.setState({$data:u}),c;const p=s.jh.interpolate(n,(0,ie.n)({metric:r,extraFilters:`${n.getValueText()}=${(0,m.xo)((0,m.ee)(o))}`})),f=("duration"===r?oe().setUnit("s"):(0,se.z)(r)).setTitle(t(o,n.getValueText())).setMenu(new me.GD({query:p,labelValue:(0,m.ee)(o)})).setData(u),v=a(o);v&&f.setHeaderActions(v);const g=new s.xK({body:f.build()});return o.name&&(e[o.name]=g),g}}function be({description:e,tags:t}){const n=function(e){return{infoFlex:(0,u.css)({display:"flex",gap:e.spacing(2),alignItems:"center",padding:`${e.spacing(1)} 0 ${e.spacing(2)} 0`}),tagsFlex:(0,u.css)({display:"flex",gap:e.spacing(1),alignItems:"center"}),tag:(0,u.css)({display:"inline-block",width:e.spacing(2),height:e.spacing(.5),borderRadius:e.spacing(.5)})}}((0,d.useTheme2)());return a().createElement("div",{className:n.infoFlex},a().createElement("div",{className:n.tagsFlex},e),t.length>0&&t.map(e=>a().createElement("div",{className:n.tagsFlex,key:e.label},a().createElement("div",{className:n.tag,style:{backgroundColor:e.color}}),a().createElement("div",null,e.label))))}function ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class we extends s.Bs{_onActivate(){const e=(0,m.pl)(this);e.subscribeToState(()=>{this.setBody(e)}),(0,m.YX)(this).subscribeToState(()=>{this.setBody(e)}),this.setBody(e)}onReferencedVariableValueChanged(){const e=(0,m.pl)(this);e.changeValueTo(l.u0[0]),this.setBody(e)}onAddToFiltersClick(e){(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.breakdown_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t{this.setState({body:ge(this,e,t=>[new re.Ms({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})])})}),ye(this,"onChange",(e,t)=>{const n=(0,m.pl)(this);n.getValueText()!==e&&(n.changeValueTo(e,void 0,!t),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.breakdown_group_by_changed,{groupBy:e}))}),this.addActivationHandler(this._onActivate.bind(this))}}function Se(e){return{container:(0,u.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),content:(0,u.css)({flexGrow:1,display:"flex",paddingTop:e.spacing(0)}),controls:(0,u.css)({flexGrow:0,display:"flex",alignItems:"top",gap:e.spacing(2)}),controlsRight:(0,u.css)({flexGrow:0,display:"flex",justifyContent:"flex-end"}),scope:(0,u.css)({marginRight:e.spacing(2)}),groupBy:(0,u.css)({width:"100%"}),controlsLeft:(0,u.css)({display:"flex",justifyContent:"flex-left",justifyItems:"left",width:"100%",flexDirection:"row"})}}function Oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}ye(we,"Component",({model:e})=>{const{value:t}=(0,m.pl)(e).useState(),n=t,i=n.includes(l.zd)||l.jx.includes(n)?l.BS:l.bD,[s,o]=(0,r.useState)(i),{body:c}=e.useState(),u=(0,d.useStyles2)(Se),{attributes:p}=(0,m.YX)(e).useState(),f=s===l.bD?l.$d:l.zd;let v=null==p?void 0:p.filter(e=>e.includes(f));s===l.BS&&(v=null==v?void 0:v.concat(l.jx));const g=(0,m.zY)(e),{value:h}=g.getMetricVariable().useState(),b=(e=>{switch(e){case"rate":return"Attributes are ordered by their rate of requests per second.";case"errors":return"Attributes are ordered by their rate of errors per second.";case"duration":return"Attributes are ordered by their average duration.";default:throw new Error("Metric not supported")}})(h);return(0,r.useEffect)(()=>{s!==i&&o(i)},[n]),a().createElement("div",{className:u.container},a().createElement(be,{description:b,tags:"duration"===h?[]:[{label:"Rate",color:"green"},{label:"Error",color:"red"}]}),a().createElement("div",{className:u.controls},(null==v?void 0:v.length)&&a().createElement("div",{className:u.controlsLeft},a().createElement("div",{className:u.scope},a().createElement(d.Field,{label:"Scope"},a().createElement(d.RadioButtonGroup,{options:(0,m._g)([l.bD,l.BS]),value:s,onChange:o}))),a().createElement("div",{className:u.groupBy},a().createElement(Z,{options:(0,m._g)(v),radioAttributes:s===l.bD?l.u0:l.jx,value:n,onChange:e.onChange,model:e}))),c instanceof ne&&a().createElement("div",{className:u.controlsRight},a().createElement(c.Selector,{model:c}))),a().createElement("div",{className:u.content},c&&a().createElement(c.Component,{model:c})))});class xe extends s.Bs{_onActivate(){this.updateBody()}updateBody(){this.setState({body:new we({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});var Ee=n(1625);var je=n(7975);function ke(e){if(!e.length)return[];e.sort((e,t)=>e-t);const t=(e[e.length-1]-e[0])/1e3,n=1e3*(0,je.KS)(t,50),r=new Map;for(const t of e){const e=Math.floor(t/n)*n;r.set(e,(r.get(e)||0)+1)}return Array.from(r.entries()).map(([e,t])=>({time:e,count:t})).sort((e,t)=>e.time-t.time)}function Ce(e){return e?e.replace(/\s+/g," ").trim():""}function Pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e){for(var t=1;t0){const t=this.calculateExceptionsCount(e);this.setState({dataState:"done",exceptionsCount:t,panel:new s.G1({children:[new s.vA({body:s.d0.table().setOption("cellHeight",Ee.qM.Lg).setHoverHeader(!0).setOverrides(e=>e.matchFieldsWithName("Service").overrideCustomFieldConfig("width",200).matchFieldsWithName("Occurrences").overrideCustomFieldConfig("width",120).matchFieldsWithName("Time Series").overrideCustomFieldConfig("width",220).matchFieldsWithName("Last Seen").overrideCustomFieldConfig("width",120)).build()})]})})}}else this.setState({dataState:"empty",exceptionsCount:0,panel:new s.G1({children:[new s.vA({body:new g.v({message:l.PL,remedyMessage:l.a5,padding:"32px"})})]})})}createTransformation(){return()=>e=>e.pipe((0,b.map)(e=>e.map(e=>{const t=e.fields.find(e=>"exception.message"===e.name),n=e.fields.find(e=>"exception.type"===e.name),r=e.fields.find(e=>"service.name"===e.name),a=e.fields.find(e=>"time"===e.name);let s=[],o=[],l=[],c=[],u=[],m=[];if(!(!t||!t.values.length)){const e=function(e,t,n,r){const a=new Map,i=new Map,s=new Map,o=new Map,l=new Map,c=new Map;for(let l=0;l(s.get(e)||0)&&s.set(e,t)}}}for(const[e,t]of c.entries()){const n=ke(t);l.set(e,n)}const u=Array.from(a.entries()).sort((e,t)=>t[1]-e[1]);return{messages:u.map(([e])=>e),types:u.map(([e])=>i.get(e)||""),occurrences:u.map(([,e])=>e),services:u.map(([e])=>o.get(e)||""),timeSeries:u.map(([e])=>l.get(e)||[]),lastSeenTimes:u.map(([e])=>{const t=s.get(e);if(!t)return"";const n=Date.now()-t;return n<6e4?"Just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`})}}(t,n,a,r);s=e.messages,o=e.types,l=e.occurrences,c=e.lastSeenTimes,u=e.services,m=e.timeSeries}const p={type:d.TableCellDisplayMode.Custom,cellComponent:e=>{const t=e.value;return this.renderSparklineCell(t)}};return Ne(_e({},e),{length:s.length,fields:[{name:"Message",type:i.FieldType.string,values:s,config:{links:s.length>0?[this.createDataLink()]:[]}},{name:"Type",type:i.FieldType.string,values:o,config:{}},{name:"Trace Service",type:i.FieldType.string,values:u,config:{}},{name:"Occurrences",type:i.FieldType.number,values:l,config:{}},{name:"Frequency",type:i.FieldType.other,values:m,config:{custom:{cellOptions:p}}},{name:"Last Seen",type:i.FieldType.string,values:c,config:{}}]})})))}createDataLink(){return{title:"View traces for this exception",url:"",onClick:e=>{var t;const n=null===(t=e.origin)||void 0===t?void 0:t.rowIndex;if(void 0!==n){var r,a,i;const t=null===(i=e.origin)||void 0===i||null===(a=i.field)||void 0===a||null===(r=a.values)||void 0===r?void 0:r[n];t&&((0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.exception_message_clicked),this.navigateToTracesWithFilter(t))}}}}escapeFilterValue(e){return e.replace(/[\n\r\t]/g," ").replace(/\s+/g," ").replace(/\\/g,"\\\\").replace(/"/g,'"').trim()}calculateExceptionsCount(e){var t;if(!(null==e||null===(t=e.series)||void 0===t?void 0:t[0]))return 0;const n=e.series[0].fields.find(e=>"Occurrences"===e.name);return(null==n?void 0:n.values)?n.values.reduce((e,t)=>e+(t||0),0):0}getExceptionsCount(){return this.state.exceptionsCount||0}constructor(e){super(_e({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[{refId:"A",query:`{${l.ui} && status = error} | select(resource.service.name, event.exception.message,event.exception.stacktrace,event.exception.type) with(most_recent=true)`,queryType:"traceql",tableType:"spans",limit:400,spss:10,filters:[]}]}),transformations:[]}),dataState:"empty"},e)),Pe(this,"renderSparklineCell",e=>{const t=(0,d.useStyles2)(Te),n=()=>{const n=(0,d.useTheme2)();if(!e||!e.length)return a().createElement("div",{className:t.sparklineMessage},"No data");const r=e.map(e=>e.count),s=e.map(e=>e.time),o=r.filter(e=>isFinite(e)&&!isNaN(e)),l=s.filter(e=>isFinite(e)&&!isNaN(e));if(o.length<2||l.length<2)return a().createElement("div",{className:t.sparklineMessage},"Not enough data");const c=Math.min(...o),u=Math.max(...o),m=Math.min(...l),p=Math.max(...l),f=u-c,v=p-m,g=0===f?1:f,h=0===v?1:v,b={y:{name:"count",type:i.FieldType.number,values:o,config:{},state:{range:{min:c,max:u,delta:g}}},x:{name:"time",type:i.FieldType.time,values:l,config:{},state:{range:{min:m,max:p,delta:h}}}};return a().createElement("div",{className:t.sparklineContainer},a().createElement(d.Sparkline,{width:180,height:20,sparkline:b,theme:n,config:{custom:{drawStyle:Ee.GR.Line,fillOpacity:5,fillColor:n.colors.background.secondary,lineWidth:1,showPoints:Ee.yL.Never}}}))};return a().createElement(n,null)}),Pe(this,"navigateToTracesWithFilter",e=>{const t=(0,m.gG)(this);if(!t)return;const n=(0,m.YX)(this);null==n||n.setActionView("traceList");const r=t.state.filters||[],a=this.escapeFilterValue(e),i=r.findIndex(e=>"event.exception.message"===e.key),s={key:"event.exception.message",operator:"=",value:a},o=i>=0?r.map((e,t)=>t===i?s:e):[...r,s];t.setState({filters:o})});this.state.$data.setState({transformations:[...l.s9,this.createTransformation()]}),this.addActivationHandler(()=>{const e=this.state.$data;this._subs.add(e.subscribeToState((e,t)=>{e.data!==t.data&&this.updatePanel(e.data)}))})}}Pe(De,"Component",({model:e})=>{const t=(0,d.useStyles2)(Te),n=(0,d.useTheme2)(),{panel:r,dataState:i}=e.useState();return a().createElement("div",{className:t.container},a().createElement("div",{className:t.description},"View exception details from errored traces for the current set of filters."),"loading"===i&&a().createElement("div",{className:t.loadingContainer},a().createElement(h.A,{count:10,height:40,baseColor:n.colors.background.secondary,highlightColor:n.colors.background.primary})),r&&a().createElement(r.Component,{model:r}))});const Te=e=>({container:(0,u.css)({display:"flex",flexDirection:"column",gap:e.spacing(2),height:"100%"}),description:(0,u.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0`}),loadingContainer:(0,u.css)({padding:e.spacing(2)}),sparklineContainer:(0,u.css)({width:"200px",display:"flex",alignItems:"center",justifyContent:"center"}),sparklineMessage:(0,u.css)({fontSize:e.typography.bodySmall.fontSize,color:e.colors.text.secondary,padding:e.spacing(1)})}),Ie=()=>{const e=(0,d.useStyles2)(Ae),t=(0,d.useTheme2)();return a().createElement("div",{className:e.container},a().createElement(h.A,{count:10,height:40,baseColor:t.colors.background.secondary,highlightColor:t.colors.background.primary}))};function Ae(e){return{container:(0,u.css)({padding:e.spacing(2)})}}var $e=n(9938),Le=n(2468);function Ve(e){var t,n,r,a;let i="";if(!e)return"{}";e.query&&(i+=e.query);const s=[];(null===(t=e.duration)||void 0===t?void 0:t.from.length)&&s.push(`duration >= ${e.duration.from}`),(null===(n=e.duration)||void 0===n?void 0:n.to.length)&&s.push(`duration <= ${e.duration.to}`),s.length&&(i.length&&(i+=" && "),i+=s.join(" && "));const o=null===(r=e.timeRange)||void 0===r?void 0:r.from,l=null===(a=e.timeRange)||void 0===a?void 0:a.to;return`{${i}}, 10${o&&l?`, ${1e9*o}, ${1e9*l}`:""}`}function Be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Fe(e){for(var t=1;te.name===u),m=[],p=null==d?void 0:d.fields.find(e=>"Value"===e.name),f=null==d?void 0:d.fields.find(e=>"Baseline"===e.name),v=null==d?void 0:d.fields.find(e=>"Selection"===e.name);if(p&&f&&v)for(let e=0;ee=>e.pipe((0,b.map)(e=>(e.forEach(e=>(0,i.reduceField)({field:e.fields[2],reducers:[i.ReducerID.max]})),e.sort((e,t)=>{var n,r,a,i;return((null===(r=t.fields[2].state)||void 0===r||null===(n=r.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[2].state)||void 0===i||null===(a=i.calcs)||void 0===a?void 0:a.max)||0)}))))]}),body:new s.gF({templateColumns:l.MV,autoRows:"200px",isLazy:!0,children:[]}),getLayoutChild:He({},Re,n,r)})}const Re=e=>e.name||"No name available";function He(e,t,n,r){return(a,i)=>{const o=i.name?e[i.name]:void 0,l=new s.Zv({data:ze(Fe({},a),{series:[Fe({},i)]})});var c;if(o)return null===(c=o.state.body)||void 0===c||c.setState({$data:l}),o;const u=(0,$e.x)(r).setTitle(t(i)).setData(l),d=n(i);d&&u.setHeaderActions(d);const m=new s.xK({body:u.build()});return i.name&&(e[i.name]=m),m}}class qe extends s.Bs{}var Ge,We,Ue;Ue=({model:e})=>e.state.attribute?a().createElement(d.Button,{variant:"secondary",size:"sm",fill:"solid",onClick:()=>e.state.onClick()},"Inspect"):null,(We="Component")in(Ge=qe)?Object.defineProperty(Ge,We,{value:Ue,enumerable:!0,configurable:!0,writable:!0}):Ge[We]=Ue;var Ye=n(4917);function Ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Xe extends s.Bs{_onActivate(){const e=(0,m.pl)(this);e.changeValueTo(l.y2),this.updateData(),e.subscribeToState((t,n)=>{t.value!==n.value&&this.setBody(e)}),(0,m.h7)(this).subscribeToState(()=>{this.updateData(),this.setBody(e)}),(0,m.YX)(this).subscribeToState((t,n)=>{(0,ce.isEqual)(t.selection,n.selection)||(this.updateData(),this.setBody(e))}),s.jh.getTimeRange(this).subscribeToState(()=>{this.updateData()}),this.setBody(e)}updateData(){const e=(0,m.YX)(this),t=s.jh.getTimeRange(this),n=t.state.value.from.unix(),r=t.state.value.to.unix(),a=(0,m.h7)(this).state.value,i=this.getFilteredAttributes(a);this.setState({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Qe(n,r,Ve(e.state.selection))]}),transformations:[()=>e=>e.pipe((0,b.map)(e=>{const t=Ze(e);return Object.entries(t).filter(([e,t])=>!i.includes(e)).map(([e,t])=>Je(e,t)).sort((e,t)=>{const n=(0,Ye.p)(e),r=(0,Ye.p)(t);return Math.abs(r.maxDifference)-Math.abs(n.maxDifference)})}))]})})}onReferencedVariableValueChanged(){const e=(0,m.pl)(this);e.changeValueTo(l.y2),this.setBody(e)}onAddToFiltersClick(e){(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.comparison_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t"nestedSetParent<0"===e?["rootName","rootServiceName"]:[]),Ke(this,"setBody",e=>{const t=(0,m.zY)(this);this.setState({body:e.hasAllValue()||e.getValue()===l.y2?(0,$e.nF)(e=>new qe({attribute:e.name,onClick:()=>this.onChange(e.name||"")}),t.getMetricFunction()):Me(this,e,t=>[new re.Ms({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})],t.getMetricFunction())})}),Ke(this,"onChange",(e,t)=>{(0,m.pl)(this).changeValueTo(e,void 0,!t),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.select_attribute_in_comparison_clicked,{value:e})}),this.addActivationHandler(this._onActivate.bind(this))}}function Qe(e,t,n){const r=`${(0,Le.duration)(t-e,"s").asSeconds()}s`;return{refId:"A",query:`{${l.ui}} | compare(${n})`,step:r,queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}Ke(Xe,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,m.pl)(e),r=(0,m.zY)(e),{attributes:i}=(0,m.YX)(e).useState(),s=(0,d.useStyles2)(tt);return a().createElement("div",{className:s.container},a().createElement(be,{description:"Attributes are ordered by the difference between the baseline and selection values for each value.",tags:[{label:"Baseline",color:"duration"===r.getMetricFunction()?$e.bT:(0,d.getTheme)().visualization.getColorByName("semi-dark-green")},{label:"Selection",color:"duration"===r.getMetricFunction()?$e._E:(0,d.getTheme)().visualization.getColorByName("semi-dark-red")}]}),a().createElement("div",{className:s.controls},(null==i?void 0:i.length)&&a().createElement("div",{className:s.controlsLeft},a().createElement(Z,{options:(0,m._g)(i),radioAttributes:l.jx,value:n.getValueText(),onChange:e.onChange,showAll:!0,model:e})),t instanceof ne&&a().createElement("div",{className:s.controlsRight},a().createElement(t.Selector,{model:t}))),a().createElement("div",{className:s.content},t&&a().createElement(t.Component,{model:t})))});const Ze=e=>e.reduce((e,t)=>{const n=t.fields.find(e=>"number"===e.type),r=Object.keys((null==n?void 0:n.labels)||{}).find(e=>!e.startsWith("__"));return r&&(e[r]=[...e[r]||[],t]),e},{}),Je=(e,t)=>{const n={name:e,refId:e,fields:[],length:0},r={name:"Value",type:i.FieldType.string,values:[],config:{},labels:{[e]:e}},a={name:"Baseline",type:i.FieldType.number,values:[],config:{}},s={name:"Selection",type:i.FieldType.number,values:[],config:{}},o=t.reduce((t,n)=>{var r;const a=n.fields.find(e=>"number"===e.type),i=null==a||null===(r=a.labels)||void 0===r?void 0:r[e];return i&&(t[i]=[...t[i]||[],a]),t},{}),l=et(t,"baseline",o),c=et(t,"selection",o);return n.length=Object.keys(o).length,Object.entries(o).forEach(([e,t])=>{var n,i;r.values.push(e),a.values.push((null===(n=t.find(e=>{var t;return'"baseline"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)}))||void 0===n?void 0:n.values[0])/l),s.values.push((null===(i=t.find(e=>{var t;return'"selection"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)}))||void 0===i?void 0:i.values[0])/c)}),n.fields=[r,a,s],n};function et(e,t,n){const r=Object.values(n).reduce((e,n)=>{const r=n.find(e=>{var n;return(null===(n=e.labels)||void 0===n?void 0:n.__meta_type)===`"${t}"`});return e+((null==r?void 0:r.values[0])||0)},0);let a=e.reduce((e,n)=>{var r;const a=n.fields.find(e=>"number"===e.type);return(null==a||null===(r=a.labels)||void 0===r?void 0:r.__meta_type)===`"${t}_total"`?a.values[0]:e},1);return a{const{body:t}=e.useState();return t&&a().createElement(t.Component,{model:t})});var at=n(3518);const it=[{displayName:function(e){return"Breakdown"},value:"breakdown",getScene:function(){return new s.vA({body:new xe({})})}},{displayName:ot,value:"structure",getScene:function(e){return new s.vA({body:new U({metric:e})})}},{displayName:function(e){return"Comparison"},value:"comparison",getScene:function(){return new s.vA({body:new rt({})})}},{displayName:function(e){return"Exceptions"},value:"exceptions",getScene:function(){return new s.vA({body:new De({})})}},{displayName:function(e){return"errors"===e?"Errored traces":"duration"===e?"Slow traces":"Traces"},value:"traceList",getScene:function(){return new s.vA({body:new $({})})}}];class st extends s.Bs{}function ot(e){switch(e){case"rate":return"Service structure";case"errors":return"Root cause errors";case"duration":return"Root cause latency"}}function lt(e){return{actions:(0,u.css)({[e.breakpoints.up(e.breakpoints.values.md)]:{position:"absolute",right:0,top:5,zIndex:2}})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(st,"Component",({model:e})=>{var t,n,o,l;const c=(0,d.useStyles2)(lt),[u,p]=(0,r.useState)(0),v=(0,m.YX)(e),g=(0,m.zY)(e),{actionView:h}=v.useState(),{value:b}=g.getMetricVariable().useState(),{allowedActionViews:y}=g.useState(),w=s.jh.getData(e).useState(),S=null===(o=w.data)||void 0===o||null===(n=o.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length,O=it.filter(e=>("exceptions"!==e.value||"errors"===b)&&(!(null==y?void 0:y.length)||y.includes(e.value))),x=(0,m.gG)(e),E=(0,m.h7)(e),j=s.jh.getTimeRange(e),{filters:k}=x.useState(),{value:C}=E.useState(),{value:P}=j.useState();return(0,r.useEffect)(()=>{if("errors"!==b)return void p(0);const t=(0,m.dB)(e);if(!t)return void p(0);p(t.getExceptionsCount());const n=t.subscribeToState((e,t)=>{e.exceptionsCount!==t.exceptionsCount&&p(e.exceptionsCount||0)});return()=>{n.unsubscribe()}},[b,e,h,k,C,P]),(0,r.useEffect)(()=>{var e;if(!v.state.hasSetView)return g.state.embedded&&(null===(e=w.data)||void 0===e?void 0:e.state)===i.LoadingState.Done&&void 0!==S&&S>20?(v.setState({hasSetView:!0}),void v.setActionView("traceList")):void 0},[null===(l=w.data)||void 0===l?void 0:l.state,g.state.embedded,v,S]),(0,at.A)(()=>{1===O.length&&v.setActionView(O[0].value)}),1===O.length?null:a().createElement(d.Box,null,a().createElement("div",{className:c.actions},a().createElement(d.Stack,{gap:1},a().createElement(f,{exploration:g}))),a().createElement(d.TabsBar,null,O.map((e,t)=>a().createElement(d.Tab,{key:t,label:e.displayName(b),active:h===e.value,onChangeTab:()=>v.setActionView(e.value),counter:"traceList"===e.value?S:"exceptions"===e.value?u:void 0}))))});var ct=n(892),ut=n(8855),dt=n(2860);function mt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class pt extends s.Bs{_onActivate(){this.setState({$data:new s.Es({$data:new le.$({maxDataPoints:"duration"===this.state.metric?24:64,datasource:l.Vl,queries:["duration"===this.state.metric?(0,ct.z)():(0,ie.l)({metric:this.state.metric,sample:!0})]}),transformations:"duration"===this.state.metric?[...(0,de.h)()]:[...(0,de.G)((0,m.w$)(this))]}),panel:this.getVizPanel(this.state.metric)})}getVizPanel(e){return new s.G1({direction:"row",children:[new s.vA({body:"duration"===e?this.getDurationVizPanel():this.getRateOrErrorPanel(e)})]})}getRateOrErrorPanel(e){const t=(0,se.z)(e).setHoverHeader(!0).setDisplayMode("transparent");return"rate"===e?t.setCustomFieldConfig("axisLabel","span/s"):"errors"===e&&t.setTitle("Errors rate").setCustomFieldConfig("axisLabel","error/s").setColor({fixedColor:"semi-dark-red",mode:"fixed"}),t.build()}getDurationVizPanel(){return(0,ut.dX)().setTitle("Histogram by duration").setHoverHeader(!0).setDisplayMode("transparent").build()}constructor(e){super(function(e){for(var t=1;t{this._onActivate();const e=s.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n,r;this.setState({isStreaming:(null===(t=e.data)||void 0===t?void 0:t.state)===i.LoadingState.Streaming}),(null===(n=e.data)||void 0===n?void 0:n.state)===i.LoadingState.Done?0===e.data.series.length||0===e.data.series[0].length||(0,m.W6)(e)?this.setState({panel:new s.G1({children:[new s.vA({body:new g.v({imgWidth:110})})]})}):this.setState({panel:this.getVizPanel(this.state.metric)}):(null===(r=e.data)||void 0===r?void 0:r.state)===i.LoadingState.Loading&&this.setState({panel:new s.G1({direction:"column",maxHeight:xt,height:xt,children:[new v.G({component:()=>(0,ae.NO)(1)})]})})}))})}}function ft(e){return{container:(0,u.css)({flex:1,width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,paddingTop:"8px","section, section:hover":{borderColor:"transparent"},"& .show-on-hover":{display:"none"}}),headerWrapper:(0,u.css)({display:"flex",alignItems:"center",position:"absolute",top:"4px",left:"8px",zIndex:2}),clickable:(0,u.css)({cursor:"pointer",maxHeight:xt,'[class*="loading-state-scene"]':{height:xt,overflow:"hidden"},":hover":{background:e.colors.background.secondary,input:{backgroundColor:"#ffffff",border:"5px solid #3D71D9",cursor:"pointer"}}}),radioButton:(0,u.css)({display:"block"}),indicatorWrapper:(0,u.css)({position:"absolute",top:"4px",right:"8px",zIndex:2})}}function vt(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function gt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ht(e){for(var t=1;t{const{panel:t,isStreaming:n}=e.useState(),r=(0,d.useStyles2)(ft),i=(0,m.zY)(e),s=()=>{(0,k.EE)(k.NO.common,k.ir.common.metric_changed,{metric:e.state.metric,location:"panel"}),i.onChangeMetricFunction(e.state.metric)};if(t)return a().createElement("div",{className:(0,u.css)([r.container,r.clickable]),onClick:s},a().createElement("div",{className:r.headerWrapper},a().createElement(d.RadioButtonList,{className:r.radioButton,name:`metric-${e.state.metric}`,options:[{title:"",value:"selected"}],onChange:()=>s(),value:"not-selected"})),n&&a().createElement("div",{className:r.indicatorWrapper},a().createElement(dt.M,{isStreaming:!0,iconSize:10})),a().createElement(t.Component,{model:t}))});class yt extends s.Bs{_onActivate(){const e=new URLSearchParams(window.location.search).get("actionView");e&&it.find(t=>t.value===e)&&this.setState({actionView:e}),this.updateBody();const t=(0,m.zY)(this).getMetricVariable();this._subs.add(t.subscribeToState((e,t)=>{if(e.value!==t.value){const t=(0,Ye.F)(e.value);t&&this.setState({selection:t}),this.updateQueryRunner(e.value),this.updateExceptionsScene(e.value),this.updateBody()}})),this.updateExceptionsScene(t.getValue()),this._subs.add(this.subscribeToState((e,n)=>{var r,a;const i=s.jh.getTimeRange(this),o=null===(a=e.selection)||void 0===a||null===(r=a.timeRange)||void 0===r?void 0:r.from;if(o&&o{this.updateAttributes()})),this._subs.add((0,m.gi)(this).subscribeToState(()=>{this.updateQueryRunner(t.getValue())})),this.updateQueryRunner(t.getValue()),this.updateAttributes()}updateBody(){const e=(0,m.zY)(this).getMetricVariable().getValue(),t=it.find(e=>e.value===this.state.actionView);this.setState({body:kt(e,t?[null==t?void 0:t.getScene(e)]:void 0)}),void 0===this.state.actionView&&this.setActionView("breakdown")}updateExceptionsScene(e){if("errors"===e){if(!this.state.exceptionsScene){const e=new De({});this.setState({exceptionsScene:e}),setTimeout(()=>{e.activate()},0)}}else this.state.exceptionsScene&&this.setState({exceptionsScene:void 0})}updateAttributes(){return(e=function*(){var e;const t=yield(0,c.getDataSourceSrv)().get(l.gR,{__sceneObject:{value:this}});if(!t)return;const n={timeRange:s.jh.getTimeRange(this).state.value,filters:[]};null===(e=t.getTagKeys)||void 0===e||e.call(t,n).then(e=>{let t=[];t="data"in e?e.data:e;const n=t.map(e=>e.text);n!==this.state.attributes&&this.setState({attributes:n})})},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){vt(i,r,a,s,o,"next",e)}function o(e){vt(i,r,a,s,o,"throw",e)}s(void 0)})}).call(this);var e}getUrlState(){return{actionView:this.state.actionView,selection:this.state.selection?JSON.stringify(this.state.selection):void 0}}updateFromUrl(e){if("string"==typeof e.actionView){if(this.state.actionView!==e.actionView){const t=it.find(t=>t.value===e.actionView);t&&this.setActionView(t.value)}}else null===e.actionView&&this.setActionView("breakdown");if("string"==typeof e.selection){const t=JSON.parse(e.selection);(0,ce.isEqual)(t,this.state.selection)||this.setState({selection:t})}}onUserUpdateSelection(e){this._urlSync.performBrowserHistoryAction(()=>{this.setState({selection:e})})}setActionView(e){const{body:t}=this.state,n=it.find(t=>t.value===e),r=(0,m.zY)(this).getMetricVariable().getValue();if(t.state.children.length>1&&n){let a;a="exceptions"===e&&this.state.exceptionsScene?new s.vA({body:this.state.exceptionsScene}):n.getScene(r),t.setState({children:[...t.state.children.slice(0,2),a]}),(0,k.EE)(k.NO.analyse_traces,k.ir.analyse_traces.action_view_changed,{oldAction:this.state.actionView,newAction:e}),this.setState({actionView:n.value})}}updateQueryRunner(e){var t;const n=this.state.selection;var r;const a=null!==(r=null===(t=(0,m.gi)(this).getValue())||void 0===t?void 0:t.toString())&&void 0!==r?r:"";this.setState({$data:new s.Es({$data:new s.dt({datasource:l.Vl,queries:[Et(e,a,n)],$timeRange:jt(n)}),transformations:[...l.s9,...Ct]})})}constructor(e){var t;super(ht({body:null!==(t=e.body)&&void 0!==t?t:new s.G1({children:[]})},e)),gt(this,"_urlSync",new s.So(this,{keys:["actionView","selection"]})),this.addActivationHandler(this._onActivate.bind(this))}}gt(yt,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,d.useStyles2)(St);return a().createElement(a().Fragment,null,a().createElement("div",{className:n.title},a().createElement(d.Tooltip,{content:a().createElement(wt,null),placement:"right-start",interactive:!0},a().createElement("span",{className:n.hand},"Select metric type ",a().createElement(d.Icon,{name:"info-circle"})))),a().createElement(t.Component,{model:t}))});const wt=()=>{const e=(0,d.useStyles2)(St);return a().createElement(d.Stack,{direction:"column",gap:1},a().createElement("div",{className:e.tooltip.title},"RED metrics for traces"),a().createElement("span",{className:e.tooltip.subtitle},"Explore rate, errors, and duration (RED) metrics generated from traces by Tempo."),a().createElement("div",{className:e.tooltip.text},a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Rate")," - Spans per second that match your filter, useful to find unusual spikes in activity"),a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Errors")," -Spans that are failing, overall issues in tracing ecosystem"),a().createElement("div",null,a().createElement("span",{className:e.tooltip.emphasize},"Duration")," - Amount of time those spans take, represented as a heat map (responds time, latency)")),a().createElement("div",{className:e.tooltip.button},a().createElement(d.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces/concepts/#rate-error-and-duration-metrics",onClick:()=>(0,k.EE)(k.NO.common,k.ir.common.metric_docs_link_clicked)},"Read documentation")))};function St(e){return{title:(0,u.css)({label:"title",display:"flex",gap:e.spacing.x0_5,fontSize:e.typography.bodySmall.fontSize,paddingBottom:e.spacing.x0_5,alignItems:"center"}),hand:(0,u.css)({label:"hand",cursor:"pointer"}),tooltip:{label:"tooltip",title:(0,u.css)({fontSize:"14px",fontWeight:500}),subtitle:(0,u.css)({marginBottom:e.spacing.x1}),text:(0,u.css)({label:"text",color:e.colors.text.secondary,div:{marginBottom:e.spacing.x0_5}}),emphasize:(0,u.css)({label:"emphasize",color:e.colors.text.primary}),button:(0,u.css)({marginBottom:e.spacing.x0_5})}}}const Ot=240,xt=(Ot-8)/2;function Et(e,t,n){const r=""!==t?` | select(${t})`:"";let a="";switch(e){case"errors":a=" && status = error";break;case"duration":if(n){var i,s;const e=[];(null===(i=n.duration)||void 0===i?void 0:i.from.length)&&e.push(`duration >= ${n.duration.from}`),(null===(s=n.duration)||void 0===s?void 0:s.to.length)&&e.push(`duration <= ${n.duration.to}`),e.length&&(a+="&& "+e.join(" && "))}a.length||(a=`&& duration > ${l.xT}`)}return{refId:"A",query:`{${l.ui}${a}}${r}`,queryType:"traceql",tableType:"spans",limit:200,spss:10,filters:[]}}function jt(e){var t,n;const r=1e3*((null==e||null===(t=e.timeRange)||void 0===t?void 0:t.from)||0),a=1e3*((null==e||null===(n=e.timeRange)||void 0===n?void 0:n.to)||0);return r&&a?new s.JZ({from:r.toFixed(0),to:a.toFixed(0),value:{from:(0,i.dateTime)(r),to:(0,i.dateTime)(a),raw:{from:(0,i.dateTime)(r),to:(0,i.dateTime)(a)}}}):void 0}function kt(e,t){const n=new pt("rate"===e?{metric:"errors"}:{metric:"rate"}),r=new pt("duration"===e?{metric:"errors"}:{metric:"duration"});return new s.G1({direction:"column",$behaviors:[new s.Gg.K2({key:"metricCrosshairSync",sync:i.DashboardCursorSync.Crosshair})],children:[new s.G1({direction:"row",ySizing:"content",children:[new s.vA({minHeight:Ot,maxHeight:Ot,width:"60%",body:new o.Mu({})}),new s.G1({direction:"column",minHeight:Ot,maxHeight:Ot,children:[new s.vA({minHeight:xt,maxHeight:xt,height:xt,body:n}),new s.vA({minHeight:xt,maxHeight:xt,height:xt,ySizing:"fill",body:r})]})]}),new s.vA({ySizing:"content",body:new st({})}),...t||[]]})}const Ct=[()=>e=>e.pipe((0,b.map)(e=>e.map(e=>bt(ht({},e),{fields:e.fields.filter(e=>!e.name.startsWith("nestedSet"))})))),{id:"sortBy",options:{fields:{},sort:[{field:"Duration",desc:!0}]}},{id:"organize",options:{indexByName:{"Start time":0,status:1,"Trace Service":2,"Trace Name":3,Duration:4,"Span ID":5,"span.http.method":6,"span.http.request.method":7,"span.http.path":8,"span.http.route":9,"span.http.status_code":10,"span.http.response.status_code":11}}}]},775:(e,t,n)=>{"use strict";n.d(t,{v:()=>u});var r,a,i,s=n(118),o=n(5959),l=n.n(o),c=n(3733);class u extends s.Bs{}i=({model:e})=>{const{message:t,remedyMessage:n,imgWidth:r,padding:a}=e.useState();return l().createElement(c.p,{message:t,remedyMessage:n,imgWidth:r,padding:a})},(a="Component")in(r=u)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},806:(e,t,n)=>{"use strict";n.d(t,{D9:()=>m,Ms:()=>u,Qt:()=>d});var r=n(5959),a=n.n(r),i=n(118),s=n(2007),o=n(1051),l=n(3761);function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class u extends i.Bs{constructor(...e){super(...e),c(this,"onClick",()=>{var e;const t=(0,o.gG)(this);var n;const r=null!==(n=null===(e=this.state.frame.fields.find(e=>e.labels))||void 0===e?void 0:e.labels)&&void 0!==n?n:{};if(this.state.labelKey){if(!r[this.state.labelKey])return}else if(1!==Object.keys(r).length)return;var a;const i=null!==(a=this.state.labelKey)&&void 0!==a?a:Object.keys(r)[0],s=(0,o.ee)(this.state.frame,this.state.labelKey);d(t,i,s),this.state.onClick({labelName:i})})}}c(u,"Component",({model:e})=>{var t,n,r,i,l;const c=null!==(l=null===(t=e.state)||void 0===t?void 0:t.labelKey)&&void 0!==l?l:"",u=null===(n=e.state)||void 0===n?void 0:n.frame.fields.filter(e=>"time"!==e.type);var d;const p=null!==(d=null==u||null===(i=u[0])||void 0===i||null===(r=i.labels)||void 0===r?void 0:r[c])&&void 0!==d?d:"";return m((0,o.gG)(e),c,p.replace(/"/g,""))?a().createElement(a().Fragment,null):a().createElement(s.Button,{variant:"primary",size:"sm",fill:"text",onClick:e.onClick,icon:"search-plus"},"Add to filters")});const d=(e,t,n)=>{const r=e.state.filters.filter(e=>e.key===l.iH||e.key!==t);history.pushState(null,""),e.setState({filters:[...r,{key:t,operator:"=",value:n}]})},m=(e,t,n)=>(0,o.gG)(e).state.filters.find(e=>e.key===t&&e.value===n)},892:(e,t,n)=>{"use strict";n.d(t,{z:()=>a});var r=n(1829);function a(){return{refId:"A",query:`{${r.ui}} | histogram_over_time(duration) with(sample=true)`,queryType:"traceql",tableType:"spans",limit:1e3,spss:10,filters:[]}}},1051:(e,t,n)=>{"use strict";n.d(t,{BB:()=>Ke,W6:()=>We,xo:()=>Ye,_g:()=>Te,Is:()=>He,U4:()=>De,_b:()=>Re,u1:()=>Pe,dB:()=>ke,gG:()=>Fe,pl:()=>Ae,Ey:()=>Me,oT:()=>Ee,ee:()=>Ie,F3:()=>Ve,Kf:()=>Le,GK:()=>Ge,H_:()=>Be,Fp:()=>_e,w$:()=>Xe,h7:()=>ze,gi:()=>$e,YX:()=>je,zY:()=>xe,__:()=>Ne,Et:()=>Ue,em:()=>Ce,H:()=>qe});var r=n(7781),a=n(118),i=n(2395),s=n(1829),o=n(271),l=n(6089),c=n(5959),u=n.n(c),d=n(2468),m=n(2007),p=n(2645),f=n(8531),v=n(6338);const g=e=>{const{index:t,type:n,label:r,labelTitle:a,value:i,valueTitle:s,url:o}=e,l=(0,m.useStyles2)(h);return u().createElement("div",{key:t},0===t&&u().createElement("div",{className:l.rowHeader},u().createElement("span",null,a),u().createElement("span",{className:l.valueTitle},s)),u().createElement("div",{className:l.row,key:t,onClick:()=>{(0,v.EE)(v.NO.home,v.ir.home.panel_row_clicked,{type:n,index:t,value:i}),f.locationService.push(o)}},u().createElement("div",{className:"rowLabel"},r),u().createElement("div",{className:l.action},u().createElement("span",{className:l.actionText},i),u().createElement(m.Icon,{className:l.actionIcon,name:"arrow-right",size:"xl"}))))};function h(e){return{rowHeader:(0,l.css)({color:e.colors.text.secondary,display:"flex",justifyContent:"space-between",alignItems:"center",padding:`0 ${e.spacing(2)} ${e.spacing(1)} ${e.spacing(2)}`}),valueTitle:(0,l.css)({margin:"0 45px 0 0"}),row:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"center",gap:e.spacing(2),padding:`${e.spacing(.75)} ${e.spacing(2)}`,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,cursor:"pointer",".rowLabel":{textDecoration:"underline"}}}),action:(0,l.css)({display:"flex",alignItems:"center"}),actionText:(0,l.css)({color:"#d5983c",padding:`0 ${e.spacing(1)}`,width:"max-content"}),actionIcon:(0,l.css)({cursor:"pointer",margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`})}}const b=e=>{var t;const{series:n,type:a}=e,i=(0,m.useStyles2)(y),o=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==r?r:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"errors"};return r.urlUtil.renderUrl(s.D5,t)},c=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t,0))&&void 0!==r?r:1};return u().createElement("div",{className:i.container},null===(t=n.sort((e,t)=>c(t)-c(e)).slice(0,10))||void 0===t?void 0:t.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:a,index:t,label:o(e),labelTitle:"Service",value:c(e),valueTitle:"Total errors",url:l(e)}))))};function y(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}var w=n(7975);function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const x=e=>{const{series:t,type:n}=e,a=(0,m.useStyles2)(E),i=t[0].fields.find(e=>"duration"===e.name);if(i&&i.values){var o,l;const e=null==i||null===(o=i.values.map((e,t)=>t))||void 0===o?void 0:o.sort((e,t)=>(null==i?void 0:i.values[t])-(null==i?void 0:i.values[e])),c=t[0].fields.map(t=>O(function(e){for(var t=1;tt.values[e])})),d=(e,t,n)=>{let r="";return(null==e?void 0:e.values[n])&&(r=e.values[n]),(null==t?void 0:t.values[n])&&(r=0===r.length?t.values[n]:`${r}: ${t.values[n]}`),0===r.length?"Trace service & name not found":r},m=(e,t,n,a)=>{if(!(t&&t.values[a]&&n&&n.values[a]))return console.error("SpanId or traceService not found"),s.bw.Explore;const i={traceId:e,spanId:t.values[a],"var-filters":`resource.service.name|=|${n.values[a]}`,"var-metric":"duration"};return r.urlUtil.renderUrl(s.D5,i)},p=(e,t)=>e&&e.values?(0,w.a3)(e.values[t]/1e3):"Duration not found",f=c.find(e=>"traceIdHidden"===e.name),v=c.find(e=>"spanID"===e.name),h=c.find(e=>"traceName"===e.name),b=c.find(e=>"traceService"===e.name),y=c.find(e=>"duration"===e.name);return u().createElement("div",{className:a.container},null==f||null===(l=f.values)||void 0===l?void 0:l.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:n,index:t,label:d(b,h,t),labelTitle:"Trace",value:p(y,t),valueTitle:"Duration",url:m(e,v,b,t)}))))}return null};function E(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const j=e=>{var t;const{series:n,type:a}=e,i=(0,m.useStyles2)(k),o=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==r?r:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"duration"};return r.urlUtil.renderUrl(s.D5,t)},c=e=>{var t;const n=e.fields.find(e=>"time"!==e.name);var r;return null!==(r=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t,0))&&void 0!==r?r:1};return u().createElement("div",{className:i.container},null===(t=n.sort((e,t)=>c(t)-c(e)).slice(0,10))||void 0===t?void 0:t.map((e,t)=>u().createElement("span",{key:t},u().createElement(g,{type:a,index:t,label:o(e),labelTitle:"Service",value:(0,w.a3)(1e6*c(e)),valueTitle:"p90",url:l(e)}))))};function k(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const C=e=>{const{series:t,type:n,message:r}=e,a=(0,m.useStyles2)(P);if(r)return u().createElement("div",{className:a.container},u().createElement("div",{className:a.message},u().createElement(m.Icon,{className:a.icon,name:"exclamation-circle",size:"xl"}),r));if(t&&t.length>0)switch(n){case"slowest-traces":return u().createElement(x,{series:t,type:n});case"errored-services":return u().createElement(b,{series:t,type:n});case"slowest-services":return u().createElement(j,{series:t,type:n})}return u().createElement("div",{className:a.container},"No series data")};function P(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`}),icon:(0,l.css)({margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`}),message:(0,l.css)({display:"flex",gap:e.spacing(1.5),margin:`${e.spacing(2)} auto`,width:"60%"})}}class _ extends a.Bs{}var N,D,T;function I(e){switch(e){case"slowest-services":return"clock-nine";case"slowest-traces":return"crosshair";default:return"exclamation-triangle"}}function A(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.isDark?e.colors.text.secondary:e.colors.text.primary,backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderTopLeftRadius:e.spacing(.5),borderTopRightRadius:e.spacing(.5),display:"flex",justifyContent:"center",alignItems:"center",fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`}),titleText:(0,l.css)({marginLeft:e.spacing(1)})}}T=({model:e})=>{const{series:t,title:n,type:r,message:a}=e.useState(),i=(0,m.useStyles2)(A);return u().createElement("div",{className:i.container},u().createElement("div",{className:i.title},u().createElement(m.Icon,{name:I(r),size:"lg"}),u().createElement("span",{className:i.titleText},n)),u().createElement(C,{series:t,type:r,message:a}))},(D="Component")in(N=_)?Object.defineProperty(N,D,{value:T,enumerable:!0,configurable:!0,writable:!0}):N[D]=T;var $=n(3049),L=n(7197);function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t{const t=a.jh.getData(this);this._subs.add(t.subscribeToState(t=>{var n,i,s,l;if((null===(n=t.data)||void 0===n?void 0:n.state)===r.LoadingState.Done||(null===(i=t.data)||void 0===i?void 0:i.state)===r.LoadingState.Streaming)if((null===(l=t.data)||void 0===l?void 0:l.state)!==r.LoadingState.Done||0!==t.data.series.length&&0!==t.data.series[0].length){if(t.data.series.length>0){var c;if("slowest-traces"!==e.type||e.renderDurationPanel)this.setState({panel:new a.G1({children:[new _({series:t.data.series,title:e.title,type:e.type})]})});else if((null===(c=t.data)||void 0===c?void 0:c.state)===r.LoadingState.Done){var u,d;let n=(0,L.FC)(null!==(d=null===(u=t.data)||void 0===u?void 0:u.series)&&void 0!==d?d:[]);if(null==n?void 0:n.length){const{minDuration:t}=(0,L.jD)(n);var m;this.setState({panel:new a.G1({children:[new z({query:{query:`{nestedSetParent<0 && duration > ${t} ${null!==(m=e.filter)&&void 0!==m?m:""}}`},title:e.title,type:e.type,renderDurationPanel:!0})]})})}}}}else this.setState({panel:new a.G1({children:[new _({message:_e(e.title.toLowerCase()),title:e.title,type:e.type})]})});else(null===(s=t.data)||void 0===s?void 0:s.state)===r.LoadingState.Error?this.setState({panel:new a.G1({children:[new _({message:Pe(t),title:e.title,type:e.type})]})}):this.setState({panel:new a.G1({direction:"column",maxHeight:o.VV,height:o.VV,children:[new p.G({component:()=>R()})]})})}))})}}function M(){return{container:(0,l.css)({minWidth:"350px",width:"-webkit-fill-available"})}}V(z,"Component",({model:e})=>{const{panel:t}=e.useState(),n=(0,m.useStyles2)(M);if(t)return u().createElement("div",{className:n.container},u().createElement(t.Component,{model:t}))});const R=()=>{const e=(0,m.useStyles2)(H);return u().createElement("div",{className:e.container},u().createElement("div",{className:e.title},u().createElement($.A,{count:1,width:200})),u().createElement("div",{className:e.tracesContainer},[...Array(11)].map((t,n)=>u().createElement("div",{className:e.row,key:n},u().createElement("div",{className:e.rowLeft},u().createElement($.A,{count:1})),u().createElement("div",{className:e.rowRight},u().createElement($.A,{count:1}))))))};function H(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.colors.text.secondary,backgroundColor:e.colors.background.secondary,fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`,textAlign:"center"}),tracesContainer:(0,l.css)({padding:`13px ${e.spacing(2)}`}),row:(0,l.css)({display:"flex",justifyContent:"space-between"}),rowLeft:(0,l.css)({margin:"7px 0",width:"150px"}),rowRight:(0,l.css)({width:"50px"})}}const q=()=>u().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},u().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#24292E",fillOpacity:"0.75"})),G=()=>u().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},u().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#CCCCDC",fillOpacity:"0.65"}));var W=n(1159);function U(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function Y(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){U(i,r,a,s,o,"next",e)}function o(e){U(i,r,a,s,o,"throw",e)}s(void 0)})}}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const Q=e=>(e.delete(s.$V),e.delete(`var-${s.pf}`),e.delete(`var-${s.xc}`),e),Z=()=>{const e=(0,f.usePluginUserStorage)();return{getBookmarks:()=>te(e),removeBookmark:t=>ae(e,t),bookmarkExists:t=>ie(e,t),toggleBookmark:()=>ne(e)}},J=e=>{if(!e||!e.params)return s.D5;const t=new URLSearchParams(e.params),n=Object.fromEntries(t.entries()),a=t.getAll(`var-${s.Ao}`),i=r.urlUtil.renderUrl(s.D5,X(function(e){for(var t=1;tY(function*(){try{yield e.setItem(s.Sr,JSON.stringify(t))}catch(e){console.error("Failed to save bookmarks to storage:",e)}})(),te=e=>Y(function*(){try{const t=yield e.getItem(s.Sr);return t?JSON.parse(t):[]}catch(e){return console.error("Failed to get bookmarks from storage:",e),[]}})(),ne=e=>Y(function*(){const t={params:Q(new URLSearchParams(window.location.search)).toString()};return(yield ie(e,t))?(yield ae(e,t),!1):(yield re(e,t),!0)})(),re=(e,t)=>Y(function*(){const n=yield te(e);n.push(t),yield ee(e,n)})(),ae=(e,t)=>Y(function*(){const n=(yield te(e)).filter(e=>!se(t,e));yield ee(e,n)})(),ie=(e,t)=>Y(function*(){return(yield te(e)).some(e=>se(t,e))})(),se=(e,t)=>{const n=Q(new URLSearchParams(e.params)),r=Q(new URLSearchParams(t.params)),a=`var-${s.Ao}`,i=Array.from(n.keys()).filter(e=>e!==a),o=Array.from(r.keys()).filter(e=>e!==a);if(i.length!==o.length)return!1;const l=i.every(e=>r.has(e)&&n.get(e)===r.get(e));if(!l)return!1;const c=n.getAll(a),u=r.getAll(a);return c.length===u.length&&c.every(e=>u.includes(e))};var oe=n(3761);const le=({bookmark:e})=>{let{actionView:t,primarySignal:n,metric:r,filters:a}=(e=>{if(!e||!e.params)return{actionView:"",primarySignal:"",filters:"",metric:""};const t=new URLSearchParams(e.params);var n,r,a;return{actionView:null!==(n=t.get(s.V2))&&void 0!==n?n:"",primarySignal:null!==(r=t.get(s.W5))&&void 0!==r?r:"",filters:t.getAll(`var-${s.Ao}`).join(s.x5),metric:null!==(a=t.get(`var-${s.PU}`))&&void 0!==a?a:""}})(e);const i=(0,m.useStyles2)(ce);return a=((e,t)=>{const n=(e=>{const t=(0,oe.$L)(e);if(!t||!t.filter)return"";const n=t.filter;return n.key&&n.operator&&void 0!==n.value?`${n.key}|${n.operator}|${n.value}`:""})(t);let r=e.split(s.x5);return r=r.filter(e=>e!==n),r.join(s.x5)})(a,n),a=a.replace(/\|=\|/g," = "),a=a.replace(s.$d,"").replace(s.zd,"").replace(s.X0,""),u().createElement("div",{title:a},u().createElement("div",null,u().createElement("b",null,Ke(r))," of ",u().createElement("b",null,n.replace("_"," "))," (",t,")"),u().createElement("div",{className:i.filters},a))};function ce(){return{filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"})}}function ue(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function de(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){ue(i,r,a,s,o,"next",e)}function o(e){ue(i,r,a,s,o,"throw",e)}s(void 0)})}}const me=()=>{const e=(0,m.useStyles2)(pe),{getBookmarks:t,removeBookmark:n}=Z(),[r,a]=(0,c.useState)([]),[i,s]=(0,c.useState)(!0),[o,l]=(0,c.useState)(!1);(0,c.useEffect)(()=>{de(function*(){s(!0);try{const e=yield t();a(e)}catch(e){console.error("Error loading bookmarks:",e),a([])}finally{s(!1)}})()},[]);return i?u().createElement("div",null,u().createElement("div",{className:e.header},u().createElement("h4",null,"Or view bookmarks")),u().createElement("div",{className:e.loading},u().createElement(m.LoadingPlaceholder,{text:"Loading bookmarks..."}))):u().createElement("div",null,u().createElement("div",{className:e.header},u().createElement("h4",null,"Or view bookmarks")),0===r.length?u().createElement("p",{className:e.noBookmarks},"Bookmark your favorite queries to view them here."):u().createElement("div",{className:e.bookmarks},r.map((r,i)=>u().createElement("div",{className:e.bookmark,key:i,onClick:()=>(e=>{(0,v.EE)(v.NO.home,v.ir.home.go_to_bookmark_clicked);const t=J(e);f.locationService.push(t)})(r)},u().createElement("div",{className:e.bookmarkItem},u().createElement(le,{bookmark:r})),u().createElement("div",{className:e.remove},u().createElement(m.Button,{variant:"secondary",fill:"text",icon:"trash-alt",disabled:o,onClick:e=>((e,r)=>de(function*(){r.stopPropagation(),l(!0);try{yield n(e);const r=yield t();a(r)}catch(e){console.error("Error removing bookmark:",e)}finally{l(!1)}})())(r,e)}))))))};function pe(e){return{header:(0,l.css)({textAlign:"center",h4:{margin:0}}),bookmarks:(0,l.css)({display:"flex",flexWrap:"wrap",gap:e.spacing(2),margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,justifyContent:"center"}),bookmark:(0,l.css)({display:"flex",flexDirection:"column",justifyContent:"space-between",cursor:"pointer",width:"318px",border:`1px solid ${e.colors.border.medium}`,borderRadius:e.shape.radius.default,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary}}),bookmarkItem:(0,l.css)({padding:`${e.spacing(1.5)} ${e.spacing(1.5)} 0 ${e.spacing(1.5)}`,overflow:"hidden"}),filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"}),remove:(0,l.css)({display:"flex",justifyContent:"flex-end"}),noBookmarks:(0,l.css)({margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,textAlign:"center"}),loading:(0,l.css)({display:"flex",justifyContent:"center",margin:`${e.spacing(4)} 0`})}}class fe extends a.Bs{}function ve(e){return{container:(0,l.css)({display:"flex",gap:e.spacing(7),flexDirection:"column",margin:`0 0 ${e.spacing(4)} 0`,justifyContent:"center"}),header:(0,l.css)({display:"flex",alignItems:"center",backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderRadius:e.spacing(.5),flexWrap:"wrap",justifyContent:"center",padding:e.spacing(3),gap:e.spacing(4)}),headerTitleContainer:(0,l.css)({display:"flex",alignItems:"center"}),title:(0,l.css)({margin:`0 0 0 ${e.spacing(2)}`}),headerActions:(0,l.css)({alignItems:"center",justifyContent:"flex-start",display:"flex",gap:e.spacing(2)}),documentationLink:(0,l.css)({textDecoration:"underline","&:hover":{textDecoration:"underline"}}),subHeader:(0,l.css)({textAlign:"center",h4:{margin:`0 0 -${e.spacing(2)} 0`}}),label:(0,l.css)({fontSize:"12px"}),variablesAndControls:(0,l.css)({alignItems:"center",gap:e.spacing(2),display:"flex",justifyContent:"space-between",width:"100%"}),variables:(0,l.css)({display:"flex",gap:e.spacing(2)}),controls:(0,l.css)({display:"flex",gap:e.spacing(1)})}}function ge(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function he(e){return(t=function*(){const t=a.jh.interpolate(e,s.gR),n=yield(0,f.getDataSourceSrv)().get(t);if(!(n instanceof f.DataSourceWithBackend))throw console.error(new Error("getTagKeysProvider: invalid datasource!")),new Error("getTagKeysProvider: invalid datasource!");const r=n;if(r&&r.getTagKeys){const e=yield r.getTagKeys();return Array.isArray(e)?{replace:!0,values:function(e){const t=e.filter(e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(s.$d)}),n=e.filter(e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(s.zd)}),r=e.filter(e=>{var t,n,r,a;return!((null===(t=e.text)||void 0===t?void 0:t.includes(s.$d))||(null===(n=e.text)||void 0===n?void 0:n.includes(s.zd))||(null===(r=e.text)||void 0===r?void 0:r.includes(s.X0))||(null===(a=e.text)||void 0===a?void 0:a.includes(s.ZV))||-1!==s.uK.concat(s.ZM).indexOf(e.text))});return[...t,...n,...r]}(e)}:(console.error(new Error("getTagKeysProvider: invalid tagKeys!")),{values:[]})}return console.error(new Error("getTagKeysProvider: missing or invalid datasource!")),{values:[]}},function(){var e=this,n=arguments;return new Promise(function(r,a){var i=t.apply(e,n);function s(e){ge(i,r,a,s,o,"next",e)}function o(e){ge(i,r,a,s,o,"throw",e)}s(void 0)})})();var t}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(fe,"Component",({model:e})=>{const t=Ee(e),n=(0,W.useNavigate)(),{controls:r}=t.useState(),a=(0,m.useStyles2)(ve),i=(0,m.useTheme2)(),o=Re(t),l=Me(t);return u().createElement("div",{className:a.container},u().createElement("div",{className:a.header},u().createElement("div",{className:a.headerTitleContainer},i.isDark?u().createElement(G,null):u().createElement(q,null),u().createElement("h2",{className:a.title},"Start your traces exploration!")),u().createElement("div",null,u().createElement("p",null,"Drilldown and visualize your trace data without writing a query."),u().createElement("div",{className:a.headerActions},u().createElement(m.Button,{variant:"primary",onClick:()=>{(0,v.EE)(v.NO.home,v.ir.home.explore_traces_clicked),n(s.D5)}},"Let’s start",u().createElement(m.Icon,{name:"arrow-right",size:"lg"})),u().createElement(m.LinkButton,{icon:"external-link-alt",fill:"text",size:"md",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces",className:a.documentationLink,onClick:()=>(0,v.EE)(v.NO.home,v.ir.home.read_documentation_clicked)},"Read documentation")))),u().createElement(me,null),u().createElement("div",{className:a.subHeader},u().createElement("h4",null,"Or quick-start into your tracing data")),u().createElement(m.Stack,{gap:2},u().createElement("div",{className:a.variablesAndControls},u().createElement("div",{className:a.variables},o&&u().createElement(m.Stack,{gap:1,alignItems:"center"},u().createElement("div",{className:a.label},"Data source"),u().createElement(o.Component,{model:o})),l&&u().createElement(m.Stack,{gap:1,alignItems:"center"},u().createElement("div",{className:a.label},"Filter"),u().createElement(l.Component,{model:l}))),u().createElement("div",{className:a.controls},null==r?void 0:r.map(e=>u().createElement(e.Component,{key:e.state.key,model:e}))))))});const be=e=>{if(!e)return"";let t=e.value;return null==t||""===t?"":(Ue.test(t)||["kind"].includes(e.key)||"string"!=typeof t||t.startsWith('"')||t.endsWith('"')||(t=`"${t}"`),`${e.key}${e.operator}${t}`)};function ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class we extends a.Bs{_onActivate(){const e=a.jh.getTimeRange(this),t=Me(this);t.setState({getTagKeysProvider:he}),Re(this).subscribeToState(e=>{e.value&&localStorage.setItem(s.cd,e.value.toString())}),Me(this).subscribeToState((t,n)=>{if(t.filters!==n.filters){this.buildPanels(e,t.filters),localStorage.setItem(s.$U,JSON.stringify(t.filters));const r=t.filters.filter(e=>!n.filters.find(t=>t.key===e.key));r.length>0&&(0,v.EE)(v.NO.home,v.ir.home.filter_changed,{key:r[0].key})}}),e.subscribeToState((n,r)=>{n.value.from===r.value.from&&n.value.to===r.value.to||this.buildPanels(e,t.state.filters)}),this.buildPanels(e,t.state.filters)}buildPanels(e,t){const n=e.state.value.from.unix(),r=e.state.value.to.unix(),i=`${(0,d.duration)(r-n,"s").asSeconds()}s`,o=function(e){const t=e.filter(e=>e.key&&e.operator&&e.value).map(e=>be(e)).join(s.x5);return t.length?`&& ${t}`:""}(t);this.setState({body:new a.gF({children:[new a.gF({autoRows:"min-content",columnGap:2,rowGap:2,children:[new a.xK({body:new z({query:{query:`{nestedSetParent < 0 && status = error ${o}} | count_over_time() by (resource.service.name)`,step:i},title:"Errored services",type:"errored-services"})}),new a.xK({body:new z({query:{query:`{nestedSetParent < 0 ${o}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,step:i},title:"Slow services",type:"slowest-services"})}),new a.xK({body:new z({query:{query:`{nestedSetParent<0 ${o}} | histogram_over_time(duration)`},title:"Slow traces",type:"slowest-traces",filter:o})})]})]})})}constructor(e){var t,n,r,i,o;super(function(e){for(var t=1;t{const{body:t}=e.useState(),n=(0,m.useStyles2)(Se);return u().createElement("div",{className:n.container},u().createElement(fe.Component,{model:e}),t&&u().createElement(t.Component,{model:t}))});var Oe=n(6003);function xe(e){return a.jh.getAncestor(e,i.Nr)}function Ee(e){return a.jh.getAncestor(e,we)}function je(e){return a.jh.getAncestor(e,o.jc)}function ke(e){const t=je(e);return null==t?void 0:t.state.exceptionsScene}function Ce(e,t){return new i.Nr({initialDS:e,initialFilters:null!=t?t:[],$timeRange:new a.JZ({from:"now-30m",to:"now"})})}function Pe(e){var t,n,r;return null!==(r=null==e||null===(n=e.data)||void 0===n||null===(t=n.error)||void 0===t?void 0:t.message)&&void 0!==r?r:"There are no Tempo data sources"}function _e(e){return`No data for selected data source and filter. Select another to see ${e}.`}function Ne(e){const t=a.Go.getUrlState(e);return n=t,r.urlUtil.renderUrl(s.D5,n);var n}function De(e){return a.jh.interpolate(e,s.gR)}function Te(e){return e.map(e=>({label:e,value:e}))}function Ie(e,t){var n;const r=null===(n=e.fields.find(e=>"number"===e.type))||void 0===n?void 0:n.labels;if(!r)return"No labels";const a=Object.keys(r).filter(e=>"p"!==e);return 0===a.length?"No labels":r[t||a[0]].replace(/"/g,"")}function Ae(e){const t=a.jh.lookupVariable(s.z,e);if(!(t instanceof a.yP))throw new Error("Group by variable not found");return t}function $e(e){const t=a.jh.lookupVariable(s.gP,e);if(!(t instanceof a.yP))throw new Error("Span list columns variable not found");return t}function Le(e){const t=a.jh.lookupVariable(s.pf,e);if(!(t instanceof a.yP))throw new Error("Latency threshold variable not found");return t}function Ve(e){const t=a.jh.lookupVariable(s.xc,e);if(!(t instanceof a.yP))throw new Error("Partial latency threshold variable not found");return t}function Be(e){const t=a.jh.lookupVariable(s.PU,e);if(!(t instanceof a.yP))throw new Error("Metric variable not found");return t}function Fe(e){const t=a.jh.lookupVariable(s.Ao,e);if(!(t instanceof a.H9))throw new Error("Filters variable not found");return t}function ze(e){const t=a.jh.lookupVariable(s.CE,e);if(!(t instanceof Oe.x))throw new Error("Primary signal variable not found");return t}function Me(e){const t=a.jh.lookupVariable(s.zM,e);if(!(t instanceof a.H9))throw new Error("Home filter variable not found");return t}function Re(e){const t=a.jh.lookupVariable(s.EY,e);if(!(t instanceof a.mI))throw new Error("Datasource variable not found");return t}function He(e){var t;const n=a.jh.getData(e).state.data,r=null==n||null===(t=n.request)||void 0===t?void 0:t.targets[0];return r?r.step:void 0}function qe(e){return"comparison"===e||"traceList"===e}function Ge(e){return Be(e).useState().value}function We(e){var t,n,r;return null!==(r=null==e||null===(n=e.data)||void 0===n||null===(t=n.series[0].fields)||void 0===t?void 0:t.some(e=>e.values.every(e=>void 0===e)))&&void 0!==r&&r}const Ue=/^-?\d+\.?\d*$/,Ye=e=>Ue.test(e)||"string"!=typeof e||e.startsWith('"')||e.endsWith('"')?e:`"${e}"`,Ke=e=>{var t;return(null==e||null===(t=e[0])||void 0===t?void 0:t.toUpperCase())+(null==e?void 0:e.slice(1))||""},Xe=e=>(t,n)=>{e.publishEvent(new s.vR({traceId:t,spanId:n}),!0)}},1738:(e,t,n)=>{var r={"./af":9805,"./af.js":9805,"./ar":4449,"./ar-dz":4468,"./ar-dz.js":4468,"./ar-kw":3480,"./ar-kw.js":3480,"./ar-ly":4197,"./ar-ly.js":4197,"./ar-ma":2180,"./ar-ma.js":2180,"./ar-ps":9343,"./ar-ps.js":9343,"./ar-sa":230,"./ar-sa.js":230,"./ar-tn":2808,"./ar-tn.js":2808,"./ar.js":4449,"./az":5865,"./az.js":5865,"./be":6627,"./be.js":6627,"./bg":901,"./bg.js":901,"./bm":3179,"./bm.js":3179,"./bn":1966,"./bn-bd":969,"./bn-bd.js":969,"./bn.js":1966,"./bo":6317,"./bo.js":6317,"./br":6474,"./br.js":6474,"./bs":5961,"./bs.js":5961,"./ca":7270,"./ca.js":7270,"./cs":1564,"./cs.js":1564,"./cv":3239,"./cv.js":3239,"./cy":2366,"./cy.js":2366,"./da":2453,"./da.js":2453,"./de":6601,"./de-at":5027,"./de-at.js":5027,"./de-ch":8101,"./de-ch.js":8101,"./de.js":6601,"./dv":6080,"./dv.js":6080,"./el":2655,"./el.js":2655,"./en-au":6836,"./en-au.js":6836,"./en-ca":2086,"./en-ca.js":2086,"./en-gb":2103,"./en-gb.js":2103,"./en-ie":5964,"./en-ie.js":5964,"./en-il":4379,"./en-il.js":4379,"./en-in":765,"./en-in.js":765,"./en-nz":1502,"./en-nz.js":1502,"./en-sg":1152,"./en-sg.js":1152,"./eo":50,"./eo.js":50,"./es":3350,"./es-do":9338,"./es-do.js":9338,"./es-mx":1326,"./es-mx.js":1326,"./es-us":9947,"./es-us.js":9947,"./es.js":3350,"./et":8231,"./et.js":8231,"./eu":8512,"./eu.js":8512,"./fa":9083,"./fa.js":9083,"./fi":5059,"./fi.js":5059,"./fil":2607,"./fil.js":2607,"./fo":3369,"./fo.js":3369,"./fr":7390,"./fr-ca":6711,"./fr-ca.js":6711,"./fr-ch":6152,"./fr-ch.js":6152,"./fr.js":7390,"./fy":2419,"./fy.js":2419,"./ga":3002,"./ga.js":3002,"./gd":4914,"./gd.js":4914,"./gl":6557,"./gl.js":6557,"./gom-deva":8944,"./gom-deva.js":8944,"./gom-latn":5387,"./gom-latn.js":5387,"./gu":7462,"./gu.js":7462,"./he":9237,"./he.js":9237,"./hi":9617,"./hi.js":9617,"./hr":6544,"./hr.js":6544,"./hu":341,"./hu.js":341,"./hy-am":1388,"./hy-am.js":1388,"./id":5251,"./id.js":5251,"./is":1146,"./is.js":1146,"./it":7891,"./it-ch":7,"./it-ch.js":7,"./it.js":7891,"./ja":3727,"./ja.js":3727,"./jv":5198,"./jv.js":5198,"./ka":8974,"./ka.js":8974,"./kk":7308,"./kk.js":7308,"./km":7786,"./km.js":7786,"./kn":4807,"./kn.js":4807,"./ko":1584,"./ko.js":1584,"./ku":1906,"./ku-kmr":5305,"./ku-kmr.js":5305,"./ku.js":1906,"./ky":9190,"./ky.js":9190,"./lb":7396,"./lb.js":7396,"./lo":8503,"./lo.js":8503,"./lt":3010,"./lt.js":3010,"./lv":5192,"./lv.js":5192,"./me":1944,"./me.js":1944,"./mi":6492,"./mi.js":6492,"./mk":2934,"./mk.js":2934,"./ml":1463,"./ml.js":1463,"./mn":8377,"./mn.js":8377,"./mr":8733,"./mr.js":8733,"./ms":8030,"./ms-my":9445,"./ms-my.js":9445,"./ms.js":8030,"./mt":5887,"./mt.js":5887,"./my":7228,"./my.js":7228,"./nb":8294,"./nb.js":8294,"./ne":9559,"./ne.js":9559,"./nl":600,"./nl-be":8796,"./nl-be.js":8796,"./nl.js":600,"./nn":9570,"./nn.js":9570,"./oc-lnc":5662,"./oc-lnc.js":5662,"./pa-in":7101,"./pa-in.js":7101,"./pl":6118,"./pl.js":6118,"./pt":9198,"./pt-br":7203,"./pt-br.js":7203,"./pt.js":9198,"./ro":5565,"./ro.js":5565,"./ru":3315,"./ru.js":3315,"./sd":8473,"./sd.js":8473,"./se":1258,"./se.js":1258,"./si":8798,"./si.js":8798,"./sk":6404,"./sk.js":6404,"./sl":7057,"./sl.js":7057,"./sq":5718,"./sq.js":5718,"./sr":5363,"./sr-cyrl":478,"./sr-cyrl.js":478,"./sr.js":5363,"./ss":7260,"./ss.js":7260,"./sv":2231,"./sv.js":2231,"./sw":7104,"./sw.js":7104,"./ta":7493,"./ta.js":7493,"./te":7705,"./te.js":7705,"./tet":4457,"./tet.js":4457,"./tg":2727,"./tg.js":2727,"./th":2206,"./th.js":2206,"./tk":3419,"./tk.js":3419,"./tl-ph":7243,"./tl-ph.js":7243,"./tlh":16,"./tlh.js":16,"./tr":7020,"./tr.js":7020,"./tzl":8026,"./tzl.js":8026,"./tzm":8537,"./tzm-latn":7899,"./tzm-latn.js":7899,"./tzm.js":8537,"./ug-cn":818,"./ug-cn.js":818,"./uk":8478,"./uk.js":8478,"./ur":7893,"./ur.js":7893,"./uz":9133,"./uz-latn":311,"./uz-latn.js":311,"./uz.js":9133,"./vi":2179,"./vi.js":2179,"./x-pseudo":2455,"./x-pseudo.js":2455,"./yo":3310,"./yo.js":3310,"./zh-cn":7244,"./zh-cn.js":7244,"./zh-hk":76,"./zh-hk.js":76,"./zh-mo":2305,"./zh-mo.js":2305,"./zh-tw":8588,"./zh-tw.js":8588};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=1738},1793:(e,t,n)=>{"use strict";n.d(t,{L:()=>l});var r=n(118);const a=n.p+"1382cadfeb81ccdaa67d.svg";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;t{this._subs.add(this.subscribeToState(()=>{this.getQueries(),this.getContext()}))}),i(this,"getQueries",()=>{const e=r.jh.getData(this),t=r.jh.findObject(e,c);if(c(t)){const e=t.state.queries.map(e=>o(s({},e),{query:this.state.query}));JSON.stringify(e)!==JSON.stringify(this.state.queries)&&this.setState({queries:e})}}),i(this,"getContext",()=>{const{queries:e,dsUid:t,labelValue:n,type:i="traceMetrics"}=this.state,o=r.jh.getTimeRange(this);if(!o||!e||!t)return;const l={origin:"Explore Traces",type:i,queries:e,timeRange:s({},o.state.value),datasource:{uid:t},url:window.location.href,id:`${JSON.stringify(e)}`,title:`${n}`,logoPath:a};JSON.stringify(l)!==JSON.stringify(this.state.context)&&this.setState({context:l})}),this.addActivationHandler(this._onActivate.bind(this))}}function c(e){return e instanceof r.dt}},2395:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>ie,oL:()=>oe});var r=n(6089),a=n(5959),i=n.n(a),s=n(7781),o=n(118),l=n(8531),c=n(2007),u=n(1829),d=n(1051),m=n(775),p=n(2645),f=n(3049);function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class g extends o.Bs{getVizPanel(){const e=o.d0.traces().setHoverHeader(!0);return this.state.spanId&&e.setOption("focusedSpanId",this.state.spanId),e}constructor(e){super(function(e){for(var t=1;t{const e=o.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n;(null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done?this.setState({panel:this.getVizPanel().build()}):(null===(n=e.data)||void 0===n?void 0:n.state)===s.LoadingState.Loading&&this.setState({panel:new p.G({component:h})})}))})}}v(g,"Component",({model:e})=>{const{panel:t}=e.useState(),n=(0,c.useStyles2)(b);if(t)return i().createElement("div",{className:n.panelContainer},i().createElement(t.Component,{model:t}))});const h=()=>{const e=(0,c.useStyles2)(b);return i().createElement("div",{className:e.container},i().createElement("div",{className:e.header},i().createElement(f.A,{count:1,width:60}),i().createElement(f.A,{count:1,width:60})),i().createElement(f.A,{count:2,width:"80%"}),i().createElement("div",{className:e.map},i().createElement(f.A,{count:1}),i().createElement(f.A,{count:1,height:70})),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service1},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar1},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service2},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar2},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service3},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar3},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service4},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar4},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service5},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar5},i().createElement(f.A,{count:1}))),i().createElement("div",{className:e.span},i().createElement("span",{className:e.service6},i().createElement(f.A,{count:1})),i().createElement("span",{className:e.bar6},i().createElement(f.A,{count:1}))))};function b(e){return{panelContainer:(0,r.css)({display:"flex",height:"100%",'& [data-testid="data-testid panel content"] > div':{overflow:"auto"},"& .show-on-hover":{display:"none"}}),container:(0,r.css)({height:"calc(100% - 32px)",width:"calc(100% - 32px)",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),header:(0,r.css)({marginBottom:"20px",display:"flex",justifyContent:"space-between"}),map:(0,r.css)({marginTop:"20px",marginBottom:"20px"}),span:(0,r.css)({display:"flex"}),service1:(0,r.css)({width:"25%"}),bar1:(0,r.css)({marginLeft:"5%",width:"70%"}),service2:(0,r.css)({width:"25%"}),bar2:(0,r.css)({marginLeft:"10%",width:"15%"}),service3:(0,r.css)({width:"20%",marginLeft:"5%"}),bar3:(0,r.css)({marginLeft:"10%",width:"65%"}),service4:(0,r.css)({width:"20%",marginLeft:"5%"}),bar4:(0,r.css)({marginLeft:"15%",width:"60%"}),service5:(0,r.css)({width:"15%",marginLeft:"10%"}),bar5:(0,r.css)({marginLeft:"20%",width:"35%"}),service6:(0,r.css)({width:"15%",marginLeft:"10%"}),bar6:(0,r.css)({marginLeft:"30%",width:"15%"})}}var y=n(6338);function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class S extends o.Bs{_onActivate(){this.updateBody();(0,d.zY)(this).subscribeToState((e,t)=>{e.traceId===t.traceId&&e.spanId===t.spanId||(this.updateBody(),(0,y.EE)(y.NO.analyse_traces,y.ir.analyse_traces.open_trace,{traceId:e.traceId,spanId:e.spanId}))})}updateBody(){const e=(0,d.zY)(this);e.state.traceId?this.setState({body:new g({traceId:e.state.traceId,spanId:e.state.spanId})}):this.setState({body:new m.v({message:"No trace selected"})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&i().createElement(t.Component,{model:t})});var O=n(2245),x=n(6003),E=n(3761);class j extends o.Bs{_onActivate(){this.runIssueDetectionQuery();const e=(0,d._b)(this);this._subs.add(e.subscribeToState((e,t)=>{e.value!==t.value&&(this.resetIssues(),this.runIssueDetectionQuery())}))}runIssueDetectionQuery(){const e=(0,d._b)(this),t=(0,s.dateTime)(),n=(0,s.dateTime)(t).subtract(1,"minute"),r=new o.JZ({from:n.toISOString(),to:t.toISOString()}),a=new o.dt({maxDataPoints:1,datasource:{uid:String(e.state.value)},$timeRange:r,queries:[{refId:"issueDetectorQuery",query:"{} | rate()",queryType:"traceql",tableType:"spans",limit:1,spss:1,filters:[]}]});this._subs.add(a.subscribeToState(e=>{var t;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Error){var n,r,a;((null===(a=e.data)||void 0===a||null===(r=a.errors)||void 0===r||null===(n=r[0])||void 0===n?void 0:n.message)||"").includes("localblocks processor not found")&&this.setState({hasIssue:!0})}})),a.activate()}resetIssues(){this.setState({hasIssue:!1})}constructor(){super({hasIssue:!1}),this.addActivationHandler(this._onActivate.bind(this))}}const k=({detector:e})=>{const{hasIssue:t}=e.useState();return t?i().createElement(c.Alert,{severity:"warning",title:"TraceQL metrics not configured"},i().createElement("p",null,'We found an error running a TraceQL metrics query: "localblocks processor not found". This typically means the "local-blocks" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.',i().createElement(c.LinkButton,{icon:"external-link-alt",fill:"text",size:"sm",target:"_blank",href:"https://grafana.com/docs/tempo/latest/operations/traceql-metrics"},"Read documentation"))):null};var C=n(1793),P=n(4524),_=n(271);function N({serviceName:e,model:t}){const{isLoading:n,component:r}=(0,l.usePluginComponent)("grafana-asserts-app/entity-assertions-widget/v1"),[s,c]=(0,a.useState)();return(0,a.useEffect)(()=>{const e=o.jh.getTimeRange(t);c(e.state.value);const n=e.subscribeToState(e=>{c(e.value)});return()=>{n.unsubscribe()}},[t]),!n&&r&&s?i().createElement(r,{size:"md",source:"Traces Drilldown",query:{start:s.from.valueOf(),end:s.to.valueOf(),entityName:e,entityType:"Service"},returnToPrevious:!0}):null}var D=n(5755),T=n(1893),I=n(4568),A=n(1508),$=n(7186),L=n(9814);n(1546);function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t{t(R(e.clientX))},[]),r=(0,a.useCallback)(e=>{const n=e.touches[0];t(R(n.clientX))},[]),i=(0,a.useCallback)(e=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i)},[n]),s=(0,a.useCallback)(e=>{document.removeEventListener("touchmove",r),document.removeEventListener("touchend",s)},[r]);function o(e){e.stopPropagation(),e.preventDefault(),document.addEventListener("mousemove",n),document.addEventListener("mouseup",i)}function l(e){e.stopPropagation(),e.preventDefault(),document.addEventListener("touchmove",r),document.addEventListener("touchend",s)}return[e,o,l]}(),f=(0,c.useStyles2)(H),v=(0,c.useStyles2)(q,l),g=(0,c.useStyles2)(c.getDragStyles),h=a.useRef(null),{dialogProps:b,titleProps:y}=(0,D.s)({},h),{overlayProps:w}=(0,I.e)({isDismissable:!1,isOpen:!0,onClose:t},h);(0,a.useEffect)(()=>{if(document.body)return document.body.classList.add("body-drawer-open"),()=>{document.body.classList.remove("body-drawer-open")}},[]);const S=a.createElement("div",{className:f.content},e),O=null!=d?d:z[l].width,x=z[l].minWidth;return a.createElement(A.A,{open:!0,onClose:t,placement:"right",getContainer:"#trace-exploration",className:f.drawerContent,rootClassName:f.drawer,classNames:{wrapper:v},styles:{wrapper:{width:O,minWidth:x}},width:"",motion:{motionAppear:!0,motionName:f.drawerMotion},maskClassName:f.mask,maskClosable:n,maskMotion:{motionAppear:!0,motionName:f.maskMotion}},a.createElement(T.n1,{restoreFocus:!0,contain:!0,autoFocus:!0},a.createElement("div",F(B({"aria-label":"string"==typeof s?$.Tp.components.Drawer.General.title(s):$.Tp.components.Drawer.General.title("no title"),className:f.container},w,b),{ref:h}),a.createElement("div",{className:(0,r.cx)(g.dragHandleVertical,f.resizer),onMouseDown:m,onTouchStart:p}),a.createElement("div",{className:(0,r.cx)(f.header,Boolean(u)&&f.headerWithTabs)},a.createElement("div",{className:f.actions},a.createElement(c.IconButton,{name:"times",variant:"secondary",onClick:t,"data-testid":$.Tp.components.Drawer.General.close,tooltip:(0,L.t)("grafana-ui.drawer.close","Close")})),"string"==typeof s?a.createElement("div",{className:f.titleWrapper},a.createElement(c.Text,B({element:"h3"},y),s),o&&a.createElement("div",{className:f.subtitle,"data-testid":$.Tp.components.Drawer.General.subtitle},o)):s,u&&a.createElement("div",{className:f.tabsWrapper},u)),i?a.createElement(c.ScrollContainer,{showScrollIndicators:!0},S):S)))}function R(e){let t=document.body.offsetWidth-(e-document.body.offsetLeft);return`${Math.min(t/document.body.clientWidth*100,98).toFixed(2)}vw`}const H=e=>{var t,n;return{container:(0,r.css)({display:"flex",flexDirection:"column",height:"100%",flex:"1 1 0",minHeight:"100%",position:"relative"}),drawer:(0,r.css)({top:0,position:"absolute !important",".rc-drawer-content-wrapper":{boxShadow:e.shadows.z3}}),drawerContent:(0,r.css)({backgroundColor:`${e.colors.background.primary} !important`,display:"flex",overflow:"unset !important",flexDirection:"column"}),drawerMotion:(0,r.css)({"&-appear":{transform:"translateX(100%)",transition:"none !important","&-active":{transition:`${e.transitions.create("transform")} !important`,transform:"translateX(0)"}}}),mask:(0,r.css)({backgroundColor:"transparent !important",position:"absolute !important","&:before":{backgroundColor:`${e.components.overlay.background} !important`,bottom:0,content:'""',left:0,position:"absolute",right:0,top:0}}),maskMotion:(0,r.css)({"&-appear":{opacity:0,"&-active":{opacity:1,transition:e.transitions.create("opacity")}}}),header:(0,r.css)({label:"drawer-header",flexGrow:0,padding:e.spacing(2,2,3),borderBottom:`1px solid ${e.colors.border.weak}`}),headerWithTabs:(0,r.css)({borderBottom:"none"}),actions:(0,r.css)({position:"absolute",right:e.spacing(1),top:e.spacing(1)}),titleWrapper:(0,r.css)({label:"drawer-title",overflowWrap:"break-word"}),subtitle:(0,r.css)({label:"drawer-subtitle",color:e.colors.text.secondary,paddingTop:e.spacing(1)}),content:(0,r.css)({padding:e.spacing(null!==(n=null===(t=e.components.drawer)||void 0===t?void 0:t.padding)&&void 0!==n?n:2),height:"100%",flexGrow:1,minHeight:0}),tabsWrapper:(0,r.css)({label:"drawer-tabs",paddingLeft:e.spacing(2),margin:e.spacing(1,-1,-3,-3)}),resizer:(0,r.css)({top:0,left:e.spacing(-1),bottom:0,position:"absolute",zIndex:e.zIndex.modal})}};function q(e,t){return(0,r.css)({label:`drawer-content-wrapper-${t}`,overflow:"unset !important",[e.breakpoints.down("md")]:{width:`calc(100% - ${e.spacing(2)}) !important`,minWidth:"0 !important"}})}const G=({children:e,title:t,isOpen:n,onClose:r,embedded:a=!1,forceNoDrawer:s=!1,investigationButton:o})=>{const l=(0,c.useStyles2)(W);return n?!s&&!a?i().createElement(M,{size:"lg",title:t,onClose:r},e):i().createElement("div",{className:l.container},i().createElement("div",{className:l.drawerHeader},i().createElement(c.Button,{variant:"primary",fill:"text",size:"md",icon:"arrow-left",onClick:r},"Back to all traces"),a&&o),e):null},W=e=>({container:(0,r.css)({height:"100%",width:"100%",background:e.colors.background.primary,padding:e.spacing(2),display:"flex",flexDirection:"column",position:"absolute",top:0,left:0,zIndex:3}),drawerHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:e.spacing(2),h4:{margin:0}})});function U(e){const t=e.filter(e=>e.key&&e.operator&&e.value).map(e=>function(e){let t=e.value;!["span.messaging.destination.partition.id","span.network.protocol.version"].includes(e.key)&&(Y(t)||["status","kind","span:status","span:kind","duration","span:duration","trace:duration","event:timeSinceStart"].includes(e.key)||["true","false"].includes(t)||(n=t,"string"==typeof n&&n.length>=2&&Y(n.slice(1,-1))&&(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))))||"string"==typeof t&&(t=t.replace(/["\\]/g,e=>`\\${e}`),t=`"${t}"`);var n;return`${e.key}${e.operator}${t}`}(e)).join("&&");return t.length?t:"true"}function Y(e){return null!=e&&""!==e&&!isNaN(Number(e.toString().trim()))}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e){for(var t=1;tQ(X({},t),{readOnly:e.embedded,origin:e.embedderName})),allowCustomValue:!0,expressionBuilder:U}),K(this,"initialFilters",void 0),K(this,"embedderName",void 0),K(this,"embedded",void 0),this.initialFilters=e.initialFilters,this.embedderName=e.embedderName,this.embedded=e.embedded,this.subscribeToState(e=>{if(e.filters&&this.embedded){let t=!1;const n=e.filters.map(e=>{var n;return(null===(n=this.initialFilters)||void 0===n?void 0:n.find(t=>t.key===e.key&&t.operator===e.operator&&t.value===e.value))&&!e.readOnly&&e.origin!==this.embedderName?(t=!0,Q(X({},e),{readOnly:!0,origin:this.embedderName})):e});t&&this.setState({filters:n})}})}}function J(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e){for(var t=1;t{this.setupInvestigationButton(e.payload.traceId),this.setState({traceId:e.payload.traceId,spanId:e.payload.spanId})})),this.state.traceId&&this.setupInvestigationButton(this.state.traceId);o.jh.lookupVariable(u.EY,this).subscribeToState(e=>{e.value&&localStorage.setItem(u.cd,e.value.toString())}),this.state.issueDetector&&(this.state.issueDetector.isActive||this.state.issueDetector.activate())}getUrlState(){return{traceId:this.state.traceId,spanId:this.state.spanId}}updateFromUrl(e){const t={};(e.traceId||e.spanId)&&(t.traceId=e.traceId?e.traceId:void 0,t.spanId=e.spanId?e.spanId:void 0),this.setState(t)}getMetricVariable(){const e=o.jh.lookupVariable(u.PU,this);if(!(e instanceof o.yP))throw new Error("Metric variable not found");var t;e.getValue()||e.changeValueTo(null!==(t=this.state.initialMetric)&&void 0!==t?t:"rate");return e}getMetricFunction(){return this.getMetricVariable().getValue()}closeDrawer(){this.setState({traceId:void 0,spanId:void 0})}setupInvestigationButton(e){const t=(0,d.zY)(this),n=(0,d.U4)(t),r=new o.dt({datasource:{uid:n},queries:[{refId:"A",query:e,queryType:"traceql"}]}),a=new C.L({query:e,type:"trace",dsUid:n,$data:r});a.activate(),this.setState({addToInvestigationButton:a}),this._subs.add(a.subscribeToState(()=>{this.updateInvestigationLink()})),r.activate(),this._subs.add(r.subscribeToState(e=>{var t,n,r;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done&&(null===(r=e.data)||void 0===r||null===(n=r.series)||void 0===n?void 0:n.length)>0){var i,o;const t=null===(o=e.data.series[0])||void 0===o||null===(i=o.fields)||void 0===i?void 0:i.find(e=>"serviceName"===e.name);t&&t.values[0]&&a.setState(ne(te({},a.state),{labelValue:`${t.values[0]}`}))}})),a.setState(ne(te({},a.state),{labelValue:e}))}updateInvestigationLink(){return(e=function*(){const{addToInvestigationButton:e}=this.state;if(!e)return;const t=yield(0,P.Fh)(e);t&&this.setState({investigationLink:t})},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){J(i,r,a,s,o,"next",e)}function o(e){J(i,r,a,s,o,"throw",e)}s(void 0)})}).call(this);var e}constructor(e){var t,n,r;super(te({$timeRange:null!==(t=e.$timeRange)&&void 0!==t?t:new o.JZ({}),$variables:null!==(n=e.$variables)&&void 0!==n?n:ue(e),controls:null!==(r=e.controls)&&void 0!==r?r:[new o.KE({}),new o.WM({})],body:new se({}),drawerScene:new S({}),issueDetector:new j},e)),ee(this,"_urlSync",new o.So(this,{keys:["traceId","spanId"]})),ee(this,"onChangeMetricFunction",e=>{const t=this.getMetricVariable();e&&t.getValue()!==e&&t.changeValueTo(e,void 0,!0)}),this.addActivationHandler(this._onActivate.bind(this))}}ee(ie,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,c.useStyles2)(de);return i().createElement("div",{className:n.bodyContainer}," ",t&&i().createElement(t.Component,{model:t})," ")});class se extends o.Bs{}ee(se,"Component",({model:e})=>{const t=(0,d.zY)(e),{controls:n,topScene:r,drawerScene:a,traceId:s,issueDetector:o,investigationLink:l,addToInvestigationButton:u,embedded:m}=t.useState(),{hasIssue:p}=(null==o?void 0:o.useState())||{hasIssue:!1},f=(0,c.useStyles2)(de);return i().createElement("div",{className:f.container,id:"trace-exploration"},p&&o&&i().createElement(k,{detector:o}),m?i().createElement(le,{model:e}):i().createElement(ce,{controls:n,model:e}),i().createElement("div",{className:f.body},r&&i().createElement(r.Component,{model:r})),i().createElement(G,{isOpen:!!a&&!!s,onClose:()=>t.closeDrawer(),title:`View trace ${s}`,embedded:m,forceNoDrawer:m,investigationButton:u&&l&&i().createElement(c.Button,{variant:"secondary",size:"sm",icon:"plus-square",onClick:e=>{(null==l?void 0:l.onClick)&&l.onClick(e),(0,y.EE)(y.NO.analyse_traces,y.ir.analyse_traces.add_to_investigation_trace_view_clicked),setTimeout(()=>t.closeDrawer(),100)}},P.R_)},a&&i().createElement(a.Component,{model:a})))});const oe=e=>{const[t,n]=i().useState(),r=(0,d.zY)(e),s=(0,d.gG)(r),o=e=>{var t;const n=e.find(e=>"resource.service.name"===e.key);return"="===(null==n?void 0:n.operator)||"=~"===(null==n?void 0:n.operator)?null==n||null===(t=n.value)||void 0===t?void 0:t.replace(/"/g,""):void 0};return(0,a.useEffect)(()=>{n(o(s.state.filters));const e=s.subscribeToState(e=>{n(o(e.filters))});return()=>{e.unsubscribe()}},[s]),t},le=({model:e})=>{var t;const n=(0,l.useReturnToPrevious)(),r=(0,c.useStyles2)(de,!0),s=(0,d.zY)(e),{returnToPreviousSource:u}=s.useState(),m=(0,d.gG)(s),p=(0,d.h7)(s),f=s.state.controls.find(e=>e instanceof o.KE),v=null===(t=s.state.$timeRange)||void 0===t?void 0:t.useState(),g=m.useState(),h=s.getMetricVariable().useState(),[b,w]=i().useState(()=>(0,d.__)(s));return null==p||p.changeValueTo(E.Xn[1].value),(0,a.useEffect)(()=>{w((0,d.__)(s))},[v,g,h,s]),i().createElement("div",{className:r.headerContainer},i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap",justifyContent:"space-between"},i().createElement(p.Component,{model:p}),m&&i().createElement("div",null,i().createElement(m.Component,{model:m})),i().createElement(c.Stack,{gap:1,alignItems:"center"},i().createElement(c.LinkButton,{href:b,variant:"secondary",icon:"arrow-right",onClick:()=>{n(u||"previous"),(0,y.EE)(y.NO.common,y.ir.common.go_to_full_app_clicked)}},"Traces Drilldown"),f&&i().createElement(f.Component,{model:f}))))},ce=({controls:e,model:t})=>{const n=(0,c.useStyles2)(de),[r,a]=i().useState(!1),s=oe(t),m=(0,d.zY)(t),p=o.jh.lookupVariable(u.EY,m),f=(0,d.gG)(m),v=(0,d.h7)(m);function g(){const e=(0,c.useStyles2)(de);return i().createElement("div",{className:e.menuHeader},i().createElement("h5",null,"Grafana Traces Drilldown v","1.1.4"),i().createElement("div",{className:e.menuHeaderSubtitle},"Last update: ",ae))}const h=i().createElement(c.Menu,{header:i().createElement(g,null)},i().createElement("div",{className:n.menu},l.config.feedbackLinksEnabled&&i().createElement(c.Menu.Item,{label:"Give feedback",ariaLabel:"Give feedback",icon:"comment-alt-message",url:"https://grafana.qualtrics.com/jfe/form/SV_9LUZ21zl3x4vUcS",target:"_blank",onClick:()=>(0,y.EE)(y.NO.common,y.ir.common.global_docs_link_clicked)}),i().createElement(c.Menu.Item,{label:"Documentation",ariaLabel:"Documentation",icon:"external-link-alt",url:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/",target:"_blank",onClick:()=>(0,y.EE)(y.NO.common,y.ir.common.feedback_link_clicked)})));return i().createElement("div",{className:n.headerContainer},i().createElement(c.Stack,{gap:1,justifyContent:"space-between",wrap:"wrap"},i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap"},p&&i().createElement(c.Stack,{gap:0,alignItems:"center"},i().createElement("div",{className:n.datasourceLabel},"Data source"),i().createElement(p.Component,{model:p}))),i().createElement("div",{className:n.controls},i().createElement(N,{serviceName:s||"",model:t}),i().createElement(c.Dropdown,{overlay:h,onVisibleChange:()=>a(!r)},i().createElement(c.Button,{variant:"secondary",icon:"info-circle"},"Need help",i().createElement(c.Icon,{className:n.helpIcon,name:r?"angle-up":"angle-down",size:"lg"}))),e.map(e=>i().createElement(e.Component,{key:e.state.key,model:e})))),i().createElement(c.Stack,{gap:1,alignItems:"center",wrap:"wrap"},i().createElement(c.Stack,{gap:0,alignItems:"center"},i().createElement("div",{className:n.datasourceLabel},"Filters"),v&&i().createElement(v.Component,{model:v})),f&&i().createElement("div",null,i().createElement(f.Component,{model:f}))))};function ue(e){return new o.Pj({variables:[new o.mI({name:u.EY,label:"Data source",value:e.initialDS,pluginId:"tempo",isReadOnly:e.embedded}),new x.x({name:u.CE,isReadOnly:e.embedded}),new Z({initialFilters:e.initialFilters,embedderName:e.embedderName,embedded:e.embedded}),new o.yP({name:u.PU,hide:O.zL.hideVariable}),new o.yP({name:u.z,defaultToAll:!1,value:e.initialGroupBy}),new o.yP({name:u.gP,defaultToAll:!1}),new o.yP({name:u.pf,defaultToAll:!1,hide:O.zL.hideVariable}),new o.yP({name:u.xc,defaultToAll:!1,hide:O.zL.hideVariable})]})}function de(e,t){return{bodyContainer:(0,r.css)({label:"bodyContainer",flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),container:(0,r.css)({label:"container",flexGrow:1,display:"flex",gap:e.spacing(1),minHeight:"100%",flexDirection:"column",padding:`0 ${e.spacing(2)} ${e.spacing(2)} ${e.spacing(2)}`,overflow:"auto",maxHeight:"100%",position:"relative"}),drawerHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(2),marginBottom:e.spacing(2),h3:{margin:0}}),drawerHeaderButtons:(0,r.css)({display:"flex",justifyContent:"flex-end",gap:e.spacing(1.5)}),body:(0,r.css)({label:"body",flexGrow:1,display:"flex",flexDirection:"column",gap:e.spacing(1)}),headerContainer:(0,r.css)({label:"headerContainer",backgroundColor:t?e.colors.background.primary:e.colors.background.canvas,display:"flex",flexDirection:"column",position:"sticky",top:0,zIndex:3,padding:`${e.spacing(1.5)} 0`,gap:e.spacing(1)}),datasourceLabel:(0,r.css)({label:"datasourceLabel",fontSize:"12px",padding:`0 ${e.spacing(1)}`,height:"32px",display:"flex",alignItems:"center",justifyContent:"flex-start",fontWeight:e.typography.fontWeightMedium,position:"relative",right:-1,width:"90px"}),controls:(0,r.css)({label:"controls",display:"flex",gap:e.spacing(1),zIndex:3,flexWrap:"wrap"}),menu:(0,r.css)({label:"menu","svg, span":{color:e.colors.text.link}}),menuHeader:r.css` + padding: ${e.spacing(.5,1)}; + white-space: nowrap; + `,menuHeaderSubtitle:r.css` + color: ${e.colors.text.secondary}; + font-size: ${e.typography.bodySmall.fontSize}; + `,tooltip:(0,r.css)({label:"tooltip",fontSize:"14px",lineHeight:"22px",width:"180px",textAlign:"center"}),helpIcon:(0,r.css)({label:"helpIcon",marginLeft:e.spacing(1)}),filters:(0,r.css)({label:"filters",marginTop:e.spacing(1),display:"flex",gap:e.spacing(1)})}}},2645:(e,t,n)=>{"use strict";n.d(t,{G:()=>p});var r,a,i,s=n(6089),o=n(118),l=n(2007),c=n(5959),u=n.n(c),d=n(3049),m=n(9504);class p extends o.Bs{}i=({model:e})=>{const t=(0,l.useTheme2)(),n=(0,l.useStyles2)(v),{component:r}=e.useState();return u().createElement("div",{className:n.container,"data-testid":m.b.loadingState},u().createElement(d.z,{baseColor:t.colors.emphasize(t.colors.background.secondary),highlightColor:t.colors.emphasize(t.colors.background.secondary,.1),borderRadius:t.shape.radius.default},r()))},(a="Component")in(r=p)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i;const f=(0,s.keyframes)({"0%":{opacity:0},"100%":{opacity:1}});function v(){return{container:(0,s.css)({label:"loading-state-scene",animationName:f,animationDelay:"100ms",animationTimingFunction:"ease-in",animationDuration:"100ms",animationFillMode:"backwards"})}}},2860:(e,t,n)=>{"use strict";n.d(t,{M:()=>o});var r=n(5959),a=n.n(r),i=n(2007),s=n(6089);const o=({isStreaming:e,iconSize:t=14})=>{const n=(0,i.useStyles2)(l,t);return e?a().createElement(i.Tooltip,{content:"Streaming"},a().createElement(i.Icon,{name:"circle-mono",size:"md",className:n.streamingIndicator})):null},l=(e,t)=>({streamingIndicator:(0,s.css)({width:`${t}px`,height:`${t}px`,backgroundColor:e.colors.success.text,fill:e.colors.success.text,borderRadius:"50%",display:"inline-block"})})},3247:(e,t,n)=>{"use strict";n.d(t,{G:()=>i,h:()=>s});var r=n(1269),a=n(7781);const i=e=>[{topic:a.DataTopic.Annotations,operator:()=>t=>t.pipe((0,r.map)(t=>t.map(t=>{if("exemplar"===t.name){const n=t.fields.find(e=>"traceId"===e.name);n&&(n.config.links=[{title:"View trace",url:"#${__value.raw}",onClick:t=>{var n,r,a;t.e.stopPropagation();const i=null===(a=t.e.target)||void 0===a||null===(r=a.parentElement)||void 0===r||null===(n=r.parentElement)||void 0===n?void 0:n.href;if(!i||-1===i.indexOf("#"))return;const s=i.split("#")[1];s&&""!==s&&(null==e||e(s))}}])}return t})))}],s=()=>[{topic:a.DataTopic.Annotations,operator:()=>e=>e.pipe((0,r.map)(e=>e.filter(e=>"exemplar"!==e.name)))}]},3733:(e,t,n)=>{"use strict";n.d(t,{p:()=>g});var r=n(5959),a=n.n(r),i=n(2007),s=n(6089),o=n(1792);const l=n.p+"944c737f589d02ecf603.svg",c=n.p+"e79edcfbe2068fae2364.svg";var u=n(3241);const d=(e=50)=>{const[t,n]=(0,r.useState)({x:null,y:null});return(0,r.useEffect)(()=>{const t=(0,u.throttle)(e=>{n({x:e.clientX,y:e.clientY})},e);return window.addEventListener("mousemove",t),()=>{window.removeEventListener("mousemove",t)}},[e]),t},m=({width:e="auto",height:t,show404:n=!1})=>{const r=(0,i.useTheme2)(),{x:s,y:u}=d(),m=(0,i.useStyles2)(p,s,u,n);return a().createElement(o.A,{src:r.isDark?l:c,className:m.svg,height:t,width:e})};m.displayName="GrotNotFound";const p=(e,t,n,r)=>{const{innerWidth:a,innerHeight:i}=window,o=n&&n/i,l=t&&t/a,c=null!==o?f(o,-20,5):0,u=null!==l?f(l,-5,5):0;return{svg:(0,s.css)({"#grot-404-arm, #grot-404-magnifier":{transform:`rotate(${c}deg) translateX(${u}%)`,transformOrigin:"center",transition:"transform 50ms linear"},"#grot-404-text":{display:r?"block":"none"}})}},f=(e,t,n)=>e*(n-t)+t;var v=n(9504);const g=({message:e,remedyMessage:t,imgWidth:n,padding:r})=>{const s=(0,i.useStyles2)(h,r);return a().createElement("div",{className:s.container,"data-testid":v.b.emptyState},a().createElement(i.Stack,{direction:"column",alignItems:"center",gap:3},a().createElement(m,{width:null!=n?n:300}),"string"==typeof e&&a().createElement(i.Text,{textAlignment:"center",variant:"h5"},e),"string"!=typeof e&&e,t&&a().createElement("div",{className:s.remedy},a().createElement(i.Stack,{gap:.5,alignItems:"center"},a().createElement(i.Icon,{name:"info-circle"}),a().createElement(i.Text,{textAlignment:"center",variant:"body"},t)))))};function h(e,t){return{container:(0,s.css)({width:"100%",display:"flex",justifyContent:"space-evenly",flexDirection:"column",padding:t||0}),remedy:(0,s.css)({marginBottom:e.spacing(4)})}}g.displayName="EmptyState"},3761:(e,t,n)=>{"use strict";n.d(t,{$L:()=>i,Xn:()=>a,iH:()=>r});const r="span.db.system.name",a=[{label:"Root spans",value:"nestedSetParent<0",filter:{key:"nestedSetParent",operator:"<",value:"0"},description:"Focus your analysis on the root span of each trace"},{label:"All spans",value:"true",filter:{key:"",operator:"",value:!0},description:"View and analyse raw span data. This option may result in long query times."},{label:"Server spans",value:"kind=server",filter:{key:"kind",operator:"=",value:"server"},description:"Explore server-specific segments of traces"},{label:"Consumer spans",value:"kind=consumer",filter:{key:"kind",operator:"=",value:"consumer"},description:"Analyze interactions initiated by consumer services"},{label:"Database calls",value:`${r}!=""`,filter:{key:r,operator:"!=",value:'""'},description:"Evaluate the performance issues in database interactions"}],i=e=>a.find(t=>t.value===e)},4524:(e,t,n)=>{"use strict";n.d(t,{Fh:()=>x,GD:()=>w,R_:()=>g});var r=n(7781),a=n(118),i=n(5959),s=n.n(i),o=n(1793),l=n(8531),c=n(6338),u=n(1051),d=n(1269);function m(e,t,n,r,a,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){m(i,r,a,s,o,"next",e)}function o(e){m(i,r,a,s,o,"throw",e)}s(void 0)})}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const g="Add to investigation",h="grafana-exploretraces-app/investigation/v1",b="investigations_divider",y="Investigations";class w extends a.Bs{addItem(e){this.state.body&&this.state.body.addItem(e)}setItems(e){this.state.body&&this.state.body.setItems(e)}constructor(e){super(e),this.addActivationHandler(()=>{const e=[{text:"Navigation",type:"group"},{text:"Explore",iconClassName:"compass",href:S(this),onClick:()=>O()}];this.setState({body:new a.Lw({items:e})});const t=(0,u.zY)(this),n=(0,u.U4)(t),r=new o.L({query:this.state.query,dsUid:n});r.activate(),this.setState({addToInvestigationButton:r}),this._subs.add(null==r?void 0:r.subscribeToState(()=>{var e;e=this,p(function*(){const t=e.state.addToInvestigationButton;if(t){var n;const l=yield x(t);var r;const u=null!==(r=null===(n=e.state.body)||void 0===n?void 0:n.state.items)&&void 0!==r?r:[],d=u.find(e=>e.text===g);var a,i,s,o;l&&(d?d&&(null===(a=e.state.body)||void 0===a||a.setItems(u.filter(e=>!1===[b,y,g].includes(e.text)))):(null===(i=e.state.body)||void 0===i||i.addItem({text:b,type:"divider"}),null===(s=e.state.body)||void 0===s||s.addItem({text:y,type:"group"}),null===(o=e.state.body)||void 0===o||o.addItem({text:g,iconClassName:"plus-square",onClick:e=>{l.onClick&&l.onClick(e),(0,c.EE)(c.NO.analyse_traces,c.ir.analyse_traces.add_to_investigation_clicked)}})))}})()})),r.setState(v(function(e){for(var t=1;t{const{body:t}=e.useState();return t?s().createElement(t.Component,{model:t}):s().createElement(s().Fragment,null)});const S=e=>{const t=(0,u.zY)(e),n=(0,u.U4)(t),i=a.jh.getTimeRange(e).state.value,s=(0,u.Is)(e),o=JSON.stringify({"traces-explore":{range:(0,r.toURLRange)(i.raw),queries:[{refId:"A",datasource:n,query:e.state.query,step:s}]}});var c;const d=null!==(c=l.config.appSubUrl)&&void 0!==c?c:"";return r.urlUtil.renderUrl(`${d}/explore`,{panes:o,schemaVersion:1})},O=()=>{(0,c.EE)(c.NO.analyse_traces,c.ir.analyse_traces.open_in_explore_clicked)},x=e=>p(function*(){const t=e.state.context;if(void 0!==l.getPluginLinkExtensions){return(0,l.getPluginLinkExtensions)({extensionPointId:h,context:t}).extensions[0]}if(void 0!==l.getObservablePluginLinks){return(yield(0,d.firstValueFrom)((0,l.getObservablePluginLinks)({extensionPointId:h,context:t})))[0]}})()},4917:(e,t,n)=>{"use strict";n.d(t,{F:()=>a,p:()=>r});const r=e=>{var t;const n=e.fields.find(e=>"Baseline"===e.name),r=e.fields.find(e=>"Selection"===e.name);let a=0,i=0;for(let e=0;e<((null==n||null===(t=n.values)||void 0===t?void 0:t.length)||0);e++){const t=((null==r?void 0:r.values[e])||0)-((null==n?void 0:n.values[e])||0);Math.abs(t)>Math.abs(a||0)&&(a=t,i=e)}return{maxDifference:a,maxDifferenceIndex:i}},a=e=>{if("duration"!==e)return{query:"status = error",type:"auto"}}},6003:(e,t,n)=>{"use strict";n.d(t,{x:()=>g});var r=n(5959),a=n.n(r),i=n(118),s=n(3761),o=n(2007),l=n(6089),c=n(5225),u=n(6338);function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const p=e=>{const t=(0,o.useStyles2)(h);return a().createElement(c.c.Menu,m(function(e){for(var t=1;t{const e=(0,o.useStyles2)(h);return a().createElement("div",{className:e.heading},a().createElement(o.Text,{weight:"bold",variant:"bodySmall",color:"secondary"},"Primary signal"))};class g extends i.yP{}d(g,"Component",({model:e})=>{const t=(0,o.useStyles2)(h),{value:n,isReadOnly:i}=e.useState();(0,r.useEffect)(()=>{n||e.changeValueTo(i?s.Xn[1].value:s.Xn[0].value)});const l=s.Xn.slice(0,2),c=s.Xn.find(e=>e.value===n);c&&!l.some(e=>e.filter.key===c.filter.key)&&l.push(c);const d=s.Xn.filter(e=>!l.some(t=>t.value===e.value)),m=t=>{(0,u.EE)(u.NO.analyse_traces,u.ir.analyse_traces.primary_signal_changed,{primary_signal:t}),e.changeValueTo(t,void 0,!0)};return i?a().createElement(a().Fragment,null):a().createElement(a().Fragment,null,a().createElement(o.RadioButtonGroup,{options:l,value:n,onChange:m,disabled:i,className:t.buttonGroup}),a().createElement(o.Select,{options:[{label:"Primary signal",options:d}],value:"",placeholder:"",isSearchable:!1,isClearable:!1,width:4,onChange:e=>m(e.value),className:t.select,components:{IndicatorSeparator:()=>null,SingleValue:()=>null,Menu:p,DropdownIndicator:f,GroupHeading:v}}))});const h=e=>({select:l.css` + [class$='input-suffix'] { + position: absolute; + z-index: 2; + } + + :focus-within { + outline: none; + box-shadow: none; + } + + > div { + padding: 0; + } + + input { + opacity: 0 !important; + } + + border-radius: 0 2px 2px 0; + border-left: none; + `,buttonGroup:l.css` + border-radius: 2px 0 0 2px; + `,customMenu:l.css` + width: 230px; + + [class$='grafana-select-option-grafana-select-option-focused'] { + background: transparent; + + ::before { + display: none; + } + } + `,heading:(0,l.css)({padding:e.spacing(1,1,.75,.75),borderLeft:"2px solid transparent",borderBottom:`1px solid ${e.colors.border.weak}`})})},6338:(e,t,n)=>{"use strict";n.d(t,{EE:()=>i,NO:()=>s,ir:()=>o});var r=n(8531),a=n(2533);const i=(e,t,n)=>{(0,r.reportInteraction)(((e,t)=>`${a.id.replace(/-/g,"_")}_${e}_${t}`)(e,t),n)},s={analyse_traces:"analyse_traces",home:"home",common:"common"},o={[s.analyse_traces]:{action_view_changed:"action_view_changed",breakdown_group_by_changed:"breakdown_group_by_changed",breakdown_add_to_filters_clicked:"breakdown_add_to_filters_clicked",comparison_add_to_filters_clicked:"comparison_add_to_filters_clicked",select_attribute_in_comparison_clicked:"select_attribute_in_comparison_clicked",layout_type_changed:"layout_type_changed",start_investigation:"start_investigation",stop_investigation:"stop_investigation",open_trace:"open_trace",open_in_explore_clicked:"open_in_explore_clicked",add_to_investigation_clicked:"add_to_investigation_clicked",add_to_investigation_trace_view_clicked:"add_to_investigation_trace_view_clicked",span_list_columns_changed:"span_list_columns_changed",toggle_bookmark_clicked:"toggle_bookmark_clicked",primary_signal_changed:"primary_signal_changed",exception_message_clicked:"exception_message_clicked"},[s.home]:{homepage_initialized:"homepage_initialized",panel_row_clicked:"panel_row_clicked",explore_traces_clicked:"explore_traces_clicked",read_documentation_clicked:"read_documentation_clicked",filter_changed:"filter_changed",go_to_bookmark_clicked:"go_to_bookmark_clicked"},[s.common]:{metric_changed:"metric_changed",new_filter_added_manually:"new_filter_added_manually",app_initialized:"app_initialized",global_docs_link_clicked:"global_docs_link_clicked",metric_docs_link_clicked:"metric_docs_link_clicked",feedback_link_clicked:"feedback_link_clicked",go_to_full_app_clicked:"go_to_full_app_clicked"}}},6374:(e,t,n)=>{"use strict";n.d(t,{$:()=>l});var r=n(118),a=n(7975);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;to(s({},t),{step:e}))});r.jh.getTimeRange(this).subscribeToState((e,t)=>{if(e.value.from!==t.value.from||e.value.to!==t.value.to){const e=(0,a.oM)(this,this.state.maxDataPoints);this.setState({queries:this.state.queries.map(t=>o(s({},t),{step:e}))})}})}constructor(e){super(e),this.addActivationHandler(this._onActivateStep.bind(this))}}},6997:(e,t,n)=>{"use strict";n.d(t,{z:()=>i});var r=n(118),a=n(2007);const i=(e,t)=>{const n="errors"===e||!1,i=r.d0.timeseries().setOption("legend",{showLegend:!1}).setCustomFieldConfig("drawStyle",a.DrawStyle.Bars).setCustomFieldConfig("stacking",{mode:a.StackingMode.Normal}).setCustomFieldConfig("fillOpacity",75).setCustomFieldConfig("lineWidth",0).setCustomFieldConfig("pointSize",0).setCustomFieldConfig("axisLabel","Rate").setOverrides(e=>{e.matchFieldsWithNameByRegex(".*").overrideColor({mode:"fixed",fixedColor:n?"semi-dark-red":"green"})}).setOption("tooltip",{mode:a.TooltipDisplayMode.Multi});return void 0!==t&&i.setCustomFieldConfig("axisWidth",t),i}},7197:(e,t,n)=>{"use strict";n.d(t,{Mu:()=>A,jD:()=>L,FC:()=>$});var r=n(5959),a=n.n(r),i=n(118),s=n(7781),o=n(1829),l=n(775),c=n(2645),u=n(8327),d=n(6997),m=n(9840),p=n(6374),f=n(6089),v=n(2007),g=n(2860),h=n(1051),b=n(8855),y=n(9938),w=n(892),S=n(3241),O=n(6338);function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class E extends i.Bs{constructor({selection:e}){super({selection:e}),x(this,"startInvestigation",()=>{const e=(0,h.YX)(this);e.setState({selection:this.state.selection}),(0,h.H)(e.state.actionView)||e.setActionView("comparison"),(0,O.EE)(O.NO.analyse_traces,O.ir.analyse_traces.start_investigation,{selection:this.state.selection,metric:(0,h.GK)(this)})})}}function j(e){return{wrapper:(0,f.css)({display:"flex",gap:"16px",alignItems:"center"}),placeholder:(0,f.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,display:"flex",gap:e.spacing.x0_5})}}x(E,"Component",({model:e})=>{const{selection:t}=(0,h.YX)(e).useState(),n=(0,v.useStyles2)(j),r="auto"===(null==t?void 0:t.type),i=r?"Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.":void 0;return a().createElement("div",{className:n.wrapper},a().createElement(v.Button,{variant:"secondary",size:"sm",fill:"solid",disabled:r,icon:"bolt",onClick:e.startInvestigation,tooltip:i},r?"Slowest traces selected":"Select slowest traces"))});var k=n(3247),C=n(8531);function P({serviceName:e,model:t}){const{isLoading:n,component:r}=(0,C.usePluginComponent)("grafana-asserts-app/insights-timeline-widget/v1"),s=(0,v.useStyles2)(_),o=i.jh.getTimeRange(t).useState(),l=(0,h.H_)(t).state.value;let c=[];"errors"===l?c=["critical","warning"]:"rate"===l&&(c=["info"]);let u=[];return"duration"===l&&(u=["latency"]),!n&&r&&o&&e?a().createElement(r,{serviceName:e,start:o.from.valueOf(),end:o.to.valueOf(),filterBySeverity:c,filterBySummaryKeywords:u,label:a().createElement("div",{className:s.label},"Insights")}):null}function _(e){return{label:(0,f.css)({fontSize:"12px",color:e.colors.text.secondary,marginLeft:"35px",marginTop:"-3px"})}}var N=n(2395);function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t{this._onActivate();const e=i.jh.getData(this),t=(0,h.YX)(this),n=i.jh.getTimeRange(this);this._subs.add(e.subscribeToState(r=>{var a,d,m;if(this.setState({isStreaming:(null===(a=r.data)||void 0===a?void 0:a.state)===s.LoadingState.Streaming}),(null===(d=r.data)||void 0===d?void 0:d.state)===s.LoadingState.Done)if(0===r.data.series.length||0===r.data.series[0].length||(0,h.W6)(r))this.setState({panel:new i.G1({children:[new i.vA({body:new l.v({message:o.PL,imgWidth:150})})]})});else{let a=[];if(this.isDuration()){var p,f;if(a=$((null===(p=e.state.data)||void 0===p?void 0:p.series)||[]),t.state.selection&&(null===(f=r.data)||void 0===f?void 0:f.state)===s.LoadingState.Done){var v,g;const n=this.buildSelectionAnnotation(t.state);n&&!(null===(g=e.state.data)||void 0===g||null===(v=g.annotations)||void 0===v?void 0:v.length)&&e.setState({data:I(T({},e.state.data),{annotations:n})})}if(null==a?void 0:a.length){var y;const{minDuration:e,minBucket:r}=L(a),i={type:"auto"};(0,h.Kf)(this).changeValueTo(e),(0,h.F3)(this).changeValueTo((0,b.xx)(r-1,a,.3)),i.duration={from:e,to:""},i.raw={x:{from:1e3*n.state.value.from.unix(),to:1e3*n.state.value.to.unix()},y:{from:r-.5,to:a.length-.5}},this.setState({actions:[new E({selection:i})]}),(null===(y=t.state.selection)||void 0===y?void 0:y.duration)&&"auto"!==t.state.selection.type||t.setState({selection:i})}}this.setState({yBuckets:a,panel:this.getVizPanel()})}else(null===(m=r.data)||void 0===m?void 0:m.state)===s.LoadingState.Loading&&this.setState({panel:new i.G1({direction:"column",children:[new c.G({component:()=>(0,u.NO)(1)})]})})})),this._subs.add(t.subscribeToState((t,n)=>{var r;if((null===(r=e.state.data)||void 0===r?void 0:r.state)===s.LoadingState.Done&&(!(0,S.isEqual)(t.selection,n.selection)||t.actionView!==n.actionView)&&this.isDuration()){const n=this.buildSelectionAnnotation(t);e.setState({data:I(T({},e.state.data),{annotations:n})})}}))})}}D(A,"Component",({model:e})=>{const{panel:t,actions:n,isStreaming:r}=e.useState(),{value:i}=(0,h.H_)(e).useState(),s=(0,v.useStyles2)(V),o=(0,N.oL)(e);if(!t)return;const l="duration"===i?"Click and drag to compare selection with baseline.":"";return a().createElement("div",{className:s.container},a().createElement("div",{className:s.headerContainer},a().createElement("div",{className:s.titleContainer},a().createElement("div",{className:s.titleRadioWrapper},a().createElement(v.RadioButtonList,{name:`metric-${i}`,options:[{title:"",value:"selected"}],value:"selected"}),a().createElement("span",null,(()=>{switch(i){case"errors":return"Errors rate";case"rate":return"Span rate";case"duration":return"Histogram by duration";default:return""}})())),l&&a().createElement("div",{className:s.subtitle},l)),a().createElement("div",{className:s.actions},r&&a().createElement(g.M,{isStreaming:!0,iconSize:10}),null==n?void 0:n.map(e=>a().createElement(e.Component,{model:e,key:e.state.key})))),a().createElement(t.Component,{model:t}),a().createElement(P,{serviceName:o||"",model:e}))});const $=e=>e.map(e=>parseFloat(e.fields[1].name)).sort((e,t)=>e-t),L=e=>{const t=Math.floor(e.length/4);let n=e.length-t-1;return n<0&&(n=0),{minDuration:(0,b.xx)(n-1,e),minBucket:n}};function V(e){return{container:(0,f.css)({width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,".show-on-hover":{display:"none"},"section, section:hover":{borderColor:"transparent"},"& .u-select":{border:"1px solid #ffffff75"}}),headerContainer:(0,f.css)({width:"100%",display:"flex",flexDirection:"row",padding:"8px",gap:"8px",justifyContent:"space-between",alignItems:"flex-start",fontWeight:e.typography.fontWeightBold}),titleContainer:(0,f.css)({display:"flex",flexDirection:"column",gap:"4px"}),titleRadioWrapper:(0,f.css)({display:"flex",alignItems:"center"}),actions:(0,f.css)({display:"flex",gap:"8px",alignItems:"center"}),subtitle:(0,f.css)({display:"flex",color:e.colors.text.secondary,fontSize:"12px",fontWeight:400,"& svg":{margin:"0 2px"}})}}},7975:(e,t,n)=>{"use strict";n.d(t,{KS:()=>m,a3:()=>d,oM:()=>p});var r=n(3241),a=n(118),i=n(2689);const s=1e3,o=1e6,l=6e7,c=36e8,u=(Math.log10(s),[{unit:"d",microseconds:864e8,ofPrevious:24},{unit:"h",microseconds:c,ofPrevious:60},{unit:"m",microseconds:l,ofPrevious:60},{unit:"s",microseconds:o,ofPrevious:1e3},{unit:"ms",microseconds:s,ofPrevious:1e3},{unit:"μs",microseconds:1,ofPrevious:1e3}]),d=e=>{const[t,n]=(0,r.dropWhile)(u,({microseconds:t},n)=>ne);if(1e3===t.ofPrevious)return`${(0,r.round)(e/t.microseconds,2)}${t.unit}`;let a=Math.floor(e/t.microseconds),i=e/n.microseconds%t.ofPrevious;const s=Math.round(i);s===t.ofPrevious?(a+=1,i=0):i=s;const o=`${a}${t.unit}`;if(0===i)return o;return`${o} ${`${i}${n.unit}`}`},m=(e,t=50)=>Math.floor(e/t)||1,p=(e,t)=>{const n=a.jh.getTimeRange(e),r=n.state.value.from.unix(),s=n.state.value.to.unix(),o=(0,i.duration)(s-r,"s");return`${m(o.asSeconds(),t)}s`}},8327:(e,t,n)=>{"use strict";n.d(t,{hE:()=>_,NO:()=>D});var r,a,i,s=n(5959),o=n.n(s),l=n(7781),c=n(118),u=n(775),d=n(6089),m=n(2007),p=n(3049),f=n(2645),v=n(9504);class g extends c.Bs{}i=({model:e})=>{const{message:t}=e.useState();return o().createElement(m.Alert,{title:"Query error",severity:"error","data-testid":v.b.errorState},t)},(a="Component")in(r=g)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i;var h=n(3241);const b=e=>{const t=(0,m.useStyles2)(y),{searchQuery:n,onSearchQueryChange:r}=e;return o().createElement(m.Field,{className:t.searchField},o().createElement(m.Input,{placeholder:"Search",prefix:o().createElement(m.Icon,{name:"search"}),value:n,onChange:r,id:"searchFieldInput"}))};function y(e){return{searchField:(0,d.css)({marginBottom:e.spacing(1)})}}var w=n(1051),S=n(1829);function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;tE(x({},e),{values:e.values}))})}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){for(var t=1;t0?this.performRepeat(e):this.state.body.setState({children:[new c.vA({body:new u.v({message:"No data for search term",padding:"32px"})})]})}groupSeriesBy(e,t){const n=e.series.reduce((e,n)=>{var r,a;const i=null===(a=n.fields.find(e=>e.type===l.FieldType.number))||void 0===a||null===(r=a.labels)||void 0===r?void 0:r[t];return i?(e[i]||(e[i]=[]),e[i].push(n),e):e},{}),r=[];for(const e in n){const t=n[e].sort((e,t)=>{var n;return(null===(n=e.name)||void 0===n?void 0:n.localeCompare(t.name))||0}),a=j(t[0]);t.slice(1,t.length).forEach(e=>a.fields.push(e.fields[1])),r.push((0,l.sortDataFrame)(a,0))}return r}performRepeat(e){const t=[];let n=e.series;this.state.groupBy&&(n=this.groupSeriesBy(e,(0,w.pl)(this).getValueText()));for(let r=0;re.type===l.FieldType.number).reduce((e,t)=>e+t.values.reduce((e,t)=>e+(t||0),0)||0,0))continue;const a=this.state.getLayoutChild(e,n[r],r);t.push(a)}this.state.body.setState({children:t})}constructor(e){super(e),k(this,"onSearchQueryChange",e=>{this.setState({searchQuery:e.currentTarget.value})}),k(this,"onSearchQueryChangeDebounced",(0,h.debounce)(e=>{var t;const n=c.jh.getData(this),r=P(C({},n.state.data),{series:null===(t=n.state.data)||void 0===t?void 0:t.series.filter(I(e))});this.renderFilteredData(r)},250)),this.addActivationHandler(()=>{const e=c.jh.getData(this);this._subs.add(e.subscribeToState(e=>{var t,n,r,a,i;if((null===(t=e.data)||void 0===t?void 0:t.state)===l.LoadingState.Done||(null===(n=e.data)||void 0===n?void 0:n.state)===l.LoadingState.Streaming){if(0===e.data.series.length&&(null===(a=e.data)||void 0===a?void 0:a.state)!==l.LoadingState.Streaming)this.state.body.setState({children:[new c.vA({body:new u.v({message:S.PL,remedyMessage:S.a5,padding:"32px"})})]});else if((null===(i=e.data)||void 0===i?void 0:i.state)===l.LoadingState.Done){var s;const t=P(C({},e.data),{series:null===(s=e.data)||void 0===s?void 0:s.series.filter(I(this.state.searchQuery))});this.renderFilteredData(t),this.publishEvent(new S.sv({series:e.data.series}),!0)}}else if((null===(r=e.data)||void 0===r?void 0:r.state)===l.LoadingState.Error){var o,d,m;this.state.body.setState({children:[new c.gF({children:[new g({message:null!==(m=null===(d=e.data.errors)||void 0===d||null===(o=d[0])||void 0===o?void 0:o.message)&&void 0!==m?m:"An error occurred in the query"})]})]})}else this.state.body.setState({children:[new c.gF({children:[new f.G({component:()=>D(8)})]})]})})),this.subscribeToState((e,t)=>{var n;e.searchQuery!==t.searchQuery&&this.onSearchQueryChangeDebounced(null!==(n=e.searchQuery)&&void 0!==n?n:"")}),e.state.data&&this.performRepeat(e.state.data)})}}function N(){return{container:(0,d.css)({display:"flex",flexDirection:"column",flexGrow:1})}}k(_,"Component",({model:e})=>{const{body:t,searchQuery:n}=e.useState(),r=(0,m.useStyles2)(N);return o().createElement("div",{className:r.container},o().createElement(b,{searchQuery:null!=n?n:"",onSearchQueryChange:e.onSearchQueryChange}),o().createElement(t.Component,{model:t}))});const D=e=>{const t=(0,m.useStyles2)(T);return o().createElement("div",{className:t.container},[...Array(e)].map((e,n)=>o().createElement("div",{className:t.itemContainer,key:n},o().createElement("div",{className:t.header},o().createElement("div",{className:t.title},o().createElement(p.A,{count:1})),o().createElement("div",{className:t.action},o().createElement(p.A,{count:1}))),o().createElement("div",{className:t.yAxis},[...Array(2)].map((e,n)=>o().createElement("div",{className:t.yAxisItem,key:n},o().createElement(p.A,{count:1})))),o().createElement("div",{className:t.xAxis},[...Array(2)].map((e,n)=>o().createElement("div",{className:t.xAxisItem,key:n},o().createElement(p.A,{count:1})))))))};function T(e){return{container:(0,d.css)({display:"grid",gridTemplateColumns:S.MV,gridAutoRows:"200px",rowGap:e.spacing(1),columnGap:e.spacing(1)}),itemContainer:(0,d.css)({backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.background.secondary}`,padding:"5px"}),header:(0,d.css)({display:"flex",justifyContent:"space-between"}),title:(0,d.css)({width:"100px"}),action:(0,d.css)({width:"60px"}),yAxis:(0,d.css)({display:"flex",flexDirection:"column",justifyContent:"space-around",marginTop:"35px"}),yAxisItem:(0,d.css)({width:"60px",height:"55px"}),xAxis:(0,d.css)({display:"flex",justifyContent:"space-evenly"}),xAxisItem:(0,d.css)({width:"55px"})}}const I=e=>t=>{const n=null==e?void 0:e.trim();if(!n)return!0;const r=new RegExp(n,"i");return t.fields.some(e=>!!e.labels&&Object.values(e.labels).find(e=>r.test(e)))}},8855:(e,t,n)=>{"use strict";n.d(t,{QA:()=>s,dX:()=>o,xx:()=>l});var r=n(1051),a=n(6338),i=n(118);function s(e,t){const n=(0,r.YX)(e),s=o().setHoverHeader(!0).setOption("selectionMode","xy").build();return s.setState({extendPanelContext:(e,i)=>{i.onSelectRange=e=>{var i,s,o,c;if(0===e.length)return void n.setState({selection:void 0});const u=e[0],d={type:"manual",raw:u};if(d.timeRange={from:Math.round(((null===(i=u.x)||void 0===i?void 0:i.from)||0)/1e3),to:Math.round(((null===(s=u.x)||void 0===s?void 0:s.to)||0)/1e3)},d.timeRange.from===d.timeRange.to)return;const m=l(((null===(o=e[0].y)||void 0===o?void 0:o.from)||0)-1,t),p=l((null===(c=e[0].y)||void 0===c?void 0:c.to)||0,t);d.duration={from:m,to:p},n.onUserUpdateSelection(d),(0,r.H)(n.state.actionView)||n.setActionView("comparison"),(0,a.EE)(a.NO.analyse_traces,a.ir.analyse_traces.start_investigation,{selection:d,metric:"duration"})}}}),new i.G1({direction:"row",children:[new i.vA({body:s})]})}const o=()=>i.d0.heatmap().setOption("legend",{show:!1}).setOption("yAxis",{unit:"s",axisLabel:"duration"}).setOption("color",{scheme:"Blues",steps:16}).setOption("rowsFrame",{value:"Spans"});function l(e,t,n){if(!t)return"";if(e<0)return"0";const r=t[Math.floor(e)]*(n||1);return!r||isNaN(r)?"":r>=1?`${r.toFixed(0)}s`:`${(1e3*r).toFixed(0)}ms`}},9504:(e,t,n)=>{"use strict";n.d(t,{b:()=>r});const r={emptyState:"data-testid empty-state",errorState:"data-testid error-state",loadingState:"data-testid loading-state"}},9840:(e,t,n)=>{"use strict";n.d(t,{l:()=>i,n:()=>a});var r=n(1829);function a({metric:e,groupByKey:t,extraFilters:n,sample:a=!1}){let i=`${r.ui}`;"errors"===e&&(i+=" && status=error"),n&&(i+=` && ${n}`),t&&t!==r.y2&&(i+=` && ${t} != nil`);let s="rate()";switch(e){case"errors":s="rate()";break;case"duration":s="quantile_over_time(duration, 0.9)"}let o=[];t&&t!==r.y2&&o.push(t);return`{${i}} | ${s} ${o.length?`by(${o.join(", ")})`:""}${a?" with(sample=true)":""}`}function i(e){return{refId:"A",query:a(e),queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}},9938:(e,t,n)=>{"use strict";n.d(t,{bT:()=>S,_E:()=>O,nF:()=>x,x:()=>k});var r=n(118),a=n(8327),i=n(2007),s=n(1625),o=n(6089),l=n(5959),c=n.n(l),u=n(1051),d=n(806),m=n(4917);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){for(var t=1;t{if(e.frame!==t.frame){const{frame:t}=e;this.setState(f({},(0,m.p)(t)))}}))}getAttribute(){return this.state.frame.name}getValue(){const e=this.state.frame.fields.find(e=>"Value"===e.name);return null==e?void 0:e.values[this.state.maxDifferenceIndex||0]}onAddToFilters(){const e=(0,u.gG)(this),t=this.getAttribute();t&&(0,d.Qt)(e,t,this.getValue())}constructor(e){super(f({},e)),this.addActivationHandler(()=>this._onActivate())}}function g(e){return{container:(0,o.css)({display:"flex",flexDirection:"column",flexGrow:1,height:"100%"}),differenceContainer:(0,o.css)({display:"flex",flexDirection:"column",flexGrow:1,border:`1px solid ${e.colors.secondary.border}`,background:e.colors.background.primary,padding:"8px",marginBottom:e.spacing(2),fontSize:"12px",height:"116px"}),differenceValue:(0,o.css)({fontSize:"36px",fontWeight:"bold",textAlign:"center"}),value:(0,o.css)({textAlign:"center",color:e.colors.secondary.text,textWrap:"nowrap",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:(0,o.css)({fontWeight:500})}}p(v,"Component",({model:e})=>{const{maxDifference:t,maxDifferenceIndex:n,panel:r}=e.useState(),a=(0,i.useStyles2)(g),s=e.getValue();var o;const l=null!==(o=e.state.frame.name)&&void 0!==o?o:"",m=(0,d.D9)((0,u.gG)(e),l,s.replace(/"/g,""));return c().createElement("div",{className:a.container},c().createElement(r.Component,{model:r}),c().createElement("div",{className:a.differenceContainer},void 0!==t&&void 0!==n&&c().createElement(c().Fragment,null,c().createElement(i.Stack,{gap:1,justifyContent:"space-between",alignItems:"center"},c().createElement("div",{className:a.title},"Highest difference"),!m&&c().createElement(i.Button,{size:"sm",variant:"primary",icon:"search-plus",fill:"text",onClick:()=>e.onAddToFilters()},"Add to filters")),c().createElement("div",{className:a.differenceValue},(100*Math.abs(t)).toFixed(0===t?0:2),"%"),c().createElement("div",{className:a.value},s))))});var h=n(1829);function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e){for(var t=1;te.name||"No name available";function j(e,t,n,a){return(i,s)=>{const o=s.name?e[s.name]:void 0,l=new r.Zv({data:w(y({},i),{series:[y({},s)]})});if(o){const e=o.state.body;return e.setState({frame:s}),e.state.panel.setState({$data:l}),o}const c=k(a).setTitle(t(s)).setData(l),u=n(s);u&&c.setHeaderActions(u);const d=new r.xK({body:new v({frame:s,panel:c.build()})});return s.name&&(e[s.name]=d),d}}function k(e){return r.d0.barchart().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:s.$N.Multi}).setMax(1).setOverrides(t=>{t.matchFieldsWithName("Value").overrideCustomFieldConfig("axisPlacement",i.AxisPlacement.Hidden),t.matchFieldsWithName("Baseline").overrideColor({mode:"fixed",fixedColor:"duration"===e?S:"semi-dark-green"}).overrideUnit("percentunit"),t.matchFieldsWithName("Selection").overrideColor({mode:"fixed",fixedColor:"duration"===e?O:"semi-dark-red"}).overrideUnit("percentunit")})}}}]); +//# sourceMappingURL=211.js.map?_cache=521089bb432d9ae7374f \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js.map new file mode 100644 index 00000000..2007f092 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/211.js.map @@ -0,0 +1 @@ +{"version":3,"file":"211.js?_cache=521089bb432d9ae7374f","mappings":"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","sources":["webpack://grafana-exploretraces-app/./components/Explore/actions/ShareExplorationAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListColumnsSelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpansScene.tsx","webpack://grafana-exploretraces-app/./utils/trace-merge/utils.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/tree-node.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/merge.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Structure/StructureScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/GroupBySelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/LayoutSwitcher.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/linesPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/behaviors/syncYaxis.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeBreakdown.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesDescription.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesBreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/BreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Exceptions/ExceptionUtils.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Exceptions/ExceptionsScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/queries/exceptions.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/comparisonQuery.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeComparison.ts","webpack://grafana-exploretraces-app/./components/Explore/actions/InspectAttributeAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/AttributesComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/ComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/TabsBarScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/MiniREDPanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TracesByServiceScene.tsx","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToFiltersAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/queries/histogram.ts","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRow.tsx","webpack://grafana-exploretraces-app/./components/Home/ErroredServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestTracesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelScene.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanel.tsx","webpack://grafana-exploretraces-app/./utils/rockets.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/BookmarkItem.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/Bookmarks.tsx","webpack://grafana-exploretraces-app/./components/Home/HeaderScene.tsx","webpack://grafana-exploretraces-app/./pages/Home/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/Home.tsx","webpack://grafana-exploretraces-app/./utils/utils.ts","webpack://grafana-exploretraces-app/../node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToInvestigationButton.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/TraceViewPanelScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TraceDrawerScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TraceQLIssueDetector.tsx","webpack://grafana-exploretraces-app/./addedComponents/EntityAssertionsWidget/EntityAssertionsWidget.tsx","webpack://grafana-exploretraces-app/./pages/Explore/Drawer.tsx","webpack://grafana-exploretraces-app/./pages/Explore/SmartDrawer.tsx","webpack://grafana-exploretraces-app/./utils/filters-renderer.ts","webpack://grafana-exploretraces-app/./pages/Explore/AttributeFiltersVariable.tsx","webpack://grafana-exploretraces-app/./pages/Explore/TraceExploration.tsx","webpack://grafana-exploretraces-app/./components/states/LoadingState/LoadingStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/StreamingIndicator.tsx","webpack://grafana-exploretraces-app/./utils/exemplars.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/useMousePosition.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/GrotNotFound.tsx","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyState.tsx","webpack://grafana-exploretraces-app/./pages/Explore/primary-signals.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/PanelMenu.tsx","webpack://grafana-exploretraces-app/./utils/comparison.ts","webpack://grafana-exploretraces-app/./pages/Explore/PrimarySignalVariable.tsx","webpack://grafana-exploretraces-app/./utils/analytics.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/StepQueryRunner.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/barsPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/DurationComparisonControl.tsx","webpack://grafana-exploretraces-app/./addedComponents/InsightsTimelineWidget/InsightsTimelineWidget.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/REDPanel.tsx","webpack://grafana-exploretraces-app/./utils/dates.ts","webpack://grafana-exploretraces-app/./components/states/ErrorState/ErrorStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/Search.tsx","webpack://grafana-exploretraces-app/./utils/frames.ts","webpack://grafana-exploretraces-app/./components/Explore/ByFrameRepeater.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/histogram.ts","webpack://grafana-exploretraces-app/./utils/testIds.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/generateMetricsQuery.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/HighestDifferencePanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/allComparison.ts"],"sourcesContent":["import React, { useState } from 'react';\nimport { useLocation } from 'react-use';\n\nimport { ToolbarButton } from '@grafana/ui';\n\nimport { TraceExploration } from '../../../pages/Explore';\nimport { getUrlForExploration } from '../../../utils/utils';\n\ninterface ShareExplorationActionState {\n exploration: TraceExploration;\n}\n\nexport const ShareExplorationAction = ({ exploration }: ShareExplorationActionState) => {\n const { origin } = useLocation();\n const [tooltip, setTooltip] = useState('Copy url');\n\n const onShare = () => {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(origin + getUrlForExploration(exploration));\n setTooltip('Copied!');\n setTimeout(() => {\n setTooltip('Copy url');\n }, 2000);\n }\n };\n\n return ;\n};\n","import React, { useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Icon, Select, Field, useStyles2 } from '@grafana/ui';\nimport { VariableValue } from '@grafana/scenes';\nimport { css } from '@emotion/css';\n\nconst RECOMMENDED_ATTRIBUTES = [\n 'span.http.method', \n 'span.http.request.method', \n 'span.http.route', \n 'span.http.path', \n 'span.http.status_code', \n 'span.http.response.status_code'\n]; \n\ntype Props = {\n options: Array>;\n onChange: (columns: string[]) => void;\n value?: VariableValue;\n};\n\nconst labelOrder = ['Recommended', 'Resource', 'Span', 'Other'];\n\nexport function SpanListColumnsSelector({ options, value, onChange }: Props) {\n const styles = useStyles2(getStyles);\n\n const opt = useMemo(\n () =>\n Object.values(\n options.reduce((acc, curr) => {\n if (curr.label) {\n const label = curr.label.slice(curr.label.indexOf('.') + 1);\n\n // use text until first dot as key\n if (RECOMMENDED_ATTRIBUTES.includes(curr.label)) {\n const group = acc['recommended'] ?? { label: 'Recommended', options: [] };\n group.options.push({ ...curr, label });\n acc['recommended'] = group;\n } else if (curr.label.startsWith('resource.')) {\n const group = acc['resource'] ?? { label: 'Resource', options: [] };\n group.options.push({ ...curr, label });\n acc['resource'] = group;\n } else {\n if (curr.label.startsWith('span.')) {\n const group = acc['span'] ?? { label: 'Span', options: [] };\n group.options.push({ ...curr, label });\n acc['span'] = group;\n } else {\n const group = acc['other'] ?? { label: 'Other', options: [] };\n group.options.push(curr);\n acc['other'] = group;\n }\n }\n }\n return acc;\n }, {})\n ).sort((a, b) => labelOrder.indexOf(a.label) - labelOrder.indexOf(b.label)),\n [options]\n );\n\n return (\n
    \n \n onChange(x.map((x: SelectableValue) => x.value).join(','))}\n isMulti={true}\n isClearable\n virtualized\n prefix={}\n />\n \n
    \n );\n}\n\nconst getStyles = () => {\n return {\n container: css({\n display: 'flex',\n minWidth: '300px',\n\n '& > div': {\n width: '100%',\n },\n }),\n };\n};\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2, LoadingState, PanelData, toURLRange, urlUtil, toOption } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { Icon, Link, TableCellDisplayMode, TableCustomCellOptions, useStyles2, useTheme2 } from '@grafana/ui';\nimport { map, Observable } from 'rxjs';\nimport {\n getDataSource,\n getSpanListColumnsVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from '../../../../../utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTraceOpened,\n} from '../../../../../utils/shared';\nimport { SpanListColumnsSelector } from './SpanListColumnsSelector';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\n\nexport interface SpanListSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n dataState: 'empty' | 'loading' | 'done';\n}\n\nexport class SpanListScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n dataState: 'empty',\n ...state,\n });\n\n this.addActivationHandler(() => {\n this.setState({\n $data: new SceneDataTransformer({\n transformations: this.setupTransformations(),\n }),\n });\n const sceneData = sceneGraph.getData(this);\n\n this.updatePanel(sceneData.state.data);\n this._subs.add(\n sceneData.subscribeToState((data) => {\n this.updatePanel(data.data);\n })\n );\n });\n }\n\n private setupTransformations() {\n return [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => {\n const fields = df.fields;\n const nameField = fields.find((f) => f.name === 'traceName');\n\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n const data = props.frame;\n const traceIdField = data?.fields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = data?.fields.find((f) => f.name === 'spanID');\n const traceId = traceIdField?.values[props.rowIndex];\n const spanId = spanIdField?.values[props.rowIndex];\n\n if (!traceId) {\n return props.value as string;\n }\n\n const name = props.value ? (props.value as string) : '';\n return (\n
    \n {\n this.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n }}\n >\n {name}\n
    \n \n \n \n \n );\n },\n };\n if (nameField?.config?.custom) {\n nameField.config.custom.cellOptions = options;\n }\n return {\n ...df,\n fields,\n };\n });\n })\n );\n },\n ];\n }\n\n private getLinkToExplore = (traceId: string, spanId: string) => {\n const traceExplorationScene = getTraceExplorationScene(this);\n const datasource = getDataSource(traceExplorationScene);\n\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const exploreState = JSON.stringify({\n ['explore-traces']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'traceId', queryType: 'traceql', query: traceId, datasource }],\n panelsState: {\n trace: {\n spanId,\n },\n },\n datasource,\n },\n });\n const subUrl = config.appSubUrl ?? '';\n return urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n };\n\n private updatePanel(data?: PanelData) {\n if (\n data?.state === LoadingState.Loading ||\n data?.state === LoadingState.NotStarted ||\n !data?.state ||\n (data?.state === LoadingState.Streaming && !data.series?.[0]?.length)\n ) {\n if (this.state.dataState === 'loading') {\n return;\n }\n this.setState({\n dataState: 'loading',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new LoadingStateScene({\n component: SkeletonComponent,\n }),\n ],\n }),\n });\n return;\n }\n if (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) {\n if (data.series.length === 0 || data.series[0].length === 0) {\n if (this.state.dataState === 'empty' && this.state.panel) {\n return;\n }\n this.setState({\n dataState: 'empty',\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n }),\n });\n } else if (this.state.dataState !== 'done') {\n this.setState({\n dataState: 'done',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: PanelBuilders.table()\n .setHoverHeader(true)\n .setOverrides((builder) => {\n return builder\n .matchFieldsWithName('spanID')\n .overrideCustomFieldConfig('hidden', true)\n .matchFieldsWithName('traceService')\n .overrideCustomFieldConfig('width', 350)\n .matchFieldsWithName('traceName')\n .overrideCustomFieldConfig('width', 350);\n })\n .build(),\n }),\n ],\n }),\n });\n }\n }\n }\n\n public onChange = (columns: string[]) => {\n const variable = getSpanListColumnsVariable(this);\n if (variable.getValue() !== columns) {\n variable.changeValueTo(columns);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.span_list_columns_changed,\n {\n columns,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = getStyles(useTheme2());\n const variable = getSpanListColumnsVariable(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n\n if (!panel) {\n return;\n }\n\n return (\n
    \n
    \n
    View a list of spans for the current set of filters.
    \n toOption(x)) ?? []}\n value={variable.getValue()}\n onChange={model.onChange}\n />\n
    \n \n
    \n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'contents',\n\n '[role=\"cell\"] > div': {\n display: 'flex',\n width: '100%',\n },\n\n '.cell-link-wrapper': {\n display: 'flex',\n gap: '4px',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n\n a: {\n padding: 4,\n fontSize: 0,\n\n ':hover': {\n background: theme.colors.background.secondary,\n },\n },\n },\n\n '.cell-link': {\n color: theme.colors.text.link,\n cursor: 'pointer',\n maxWidth: '300px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n\n ':hover': {\n textDecoration: 'underline',\n },\n },\n }),\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: '10px',\n }),\n };\n};\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
    \n
    \n \n
    \n {[...Array(3)].map((_, i) => (\n
    \n {[...Array(6)].map((_, j) => (\n \n \n \n ))}\n
    \n ))}\n
    \n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n height: '100%',\n width: '100%',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n title: css({\n marginBottom: '20px',\n }),\n row: css({\n marginBottom: '5px',\n display: 'flex',\n justifyContent: 'space-around',\n }),\n rowItem: css({\n width: '14%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneComponentProps, SceneFlexItem, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { SpanListScene } from 'components/Explore/TracesByService/Tabs/Spans/SpanListScene';\nimport { getMetricVariable, getTraceByServiceScene } from 'utils/utils';\n\nexport interface SpansSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class SpansScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this._subs.add(\n getTraceByServiceScene(this).state.$data?.subscribeToState(() => {\n this.updateBody();\n })\n );\n\n this._subs.add(\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (newState.$data?.state.key !== prevState.$data?.state.key) {\n this.updateBody();\n }\n })\n );\n\n this._subs.add(\n getMetricVariable(this).subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.updateBody();\n }\n })\n );\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new SpanListScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildSpansScene() {\n return new SceneFlexItem({\n body: new SpansScene({}),\n });\n}\n","import { Span } from '../../types';\n\nexport function nestedSetLeft(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetLeft') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetLeft not found!');\n}\n\nexport function nestedSetRight(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetRight') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetRight not found!');\n}\n","import { Span } from '../../types';\nimport { nestedSetLeft, nestedSetRight } from './utils';\n\nexport class TreeNode {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n children: TreeNode[];\n parent: TreeNode | null;\n traceID: string;\n\n constructor({\n name,\n serviceName,\n operationName,\n spans,\n left,\n right,\n traceID,\n }: {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n traceID: string;\n }) {\n this.name = name;\n this.serviceName = serviceName;\n this.operationName = operationName;\n this.spans = spans;\n this.left = left;\n this.right = right;\n this.children = [];\n this.parent = null;\n this.traceID = traceID;\n }\n\n addSpan(span: Span) {\n // expand our left/right based on this span\n this.left = Math.min(nestedSetLeft(span), this.left);\n this.right = Math.max(nestedSetRight(span), this.right);\n this.spans.push(span);\n }\n\n addChild(node: TreeNode) {\n node.parent = this;\n this.children.push(node);\n }\n\n isChild(span: Span): boolean {\n return nestedSetLeft(span) > this.left && nestedSetRight(span) < this.right;\n }\n\n findMatchingChild(span: Span): TreeNode | null {\n const name = nodeName(span);\n\n for (const child of this.children) {\n if (child.name === name) {\n return child;\n }\n }\n\n return null;\n }\n}\n\nexport function createNode(s: Span): TreeNode {\n const serviceNameAttr = s.attributes?.find((a) => a.key === 'service.name');\n return new TreeNode({\n left: nestedSetLeft(s),\n right: nestedSetRight(s),\n name: nodeName(s),\n serviceName: serviceNameAttr?.value.stringValue ?? serviceNameAttr?.value?.Value?.string_value ?? '',\n operationName: s.name ?? '',\n spans: [s],\n traceID: s.traceId ?? '',\n });\n}\n\nfunction nodeName(s: Span): string {\n let svcName = '';\n for (const a of s.attributes || []) {\n if (a.key === 'service.name' && a.value.stringValue) {\n svcName = a.value.stringValue;\n }\n }\n\n return `${svcName}:${s.name}`;\n}\n","import { TraceSearchMetadata } from '../../types';\nimport { createNode, TreeNode } from './tree-node';\nimport { nestedSetLeft } from './utils';\n\nexport function mergeTraces(traces: TraceSearchMetadata[]): TreeNode {\n const tree = new TreeNode({\n name: 'root',\n serviceName: '',\n operationName: '',\n left: Number.MIN_SAFE_INTEGER,\n right: Number.MAX_SAFE_INTEGER,\n spans: [],\n traceID: '',\n });\n\n if (traces && traces.length > 0) {\n for (const trace of traces) {\n if (trace.spanSets?.length !== 1) {\n throw new Error('there should be only 1 spanset!');\n }\n\n const traceStartTime = parseInt(trace.startTimeUnixNano || '0', 10);\n\n const ss = trace.spanSets[0];\n // sort by nestedSetLeft\n ss.spans.sort((s1, s2) => nestedSetLeft(s1) - nestedSetLeft(s2));\n\n // reset curNode to root each loop to re-overlay the next trace\n let curNode: TreeNode = tree;\n // left/right is only valid w/i a trace, so reset it each loop\n resetLeftRight(tree);\n for (const span of ss.spans) {\n // force traceID to be the same for all spans in a trace\n span.traceId = trace.traceID;\n span.startTimeUnixNano = `${parseInt(span.startTimeUnixNano, 10) - traceStartTime}`;\n\n // walk up the tree until we find a node that is a parent of this span\n while (curNode.parent !== null) {\n if (curNode.isChild(span)) {\n break;\n }\n curNode = curNode.parent;\n }\n\n // is there an already existing child that matches the span?\n const child = curNode.findMatchingChild(span);\n if (child) {\n child.addSpan(span);\n // to the next span!\n curNode = child;\n continue;\n }\n\n // if not, create a new child node and make it the cur node\n const newNode = createNode(span);\n newNode.traceID = trace.traceID;\n curNode.addChild(newNode);\n curNode = newNode;\n }\n }\n }\n\n return tree;\n}\n\nexport function dumpTree(t: TreeNode, depth: number): string {\n let result = '';\n const space = ' '.repeat(depth * 2);\n\n result += `${space}${t.name} ${t.spans.length}\\n`;\n\n for (const c of t.children) {\n result += dumpTree(c, depth + 1);\n }\n return result;\n}\n\nfunction resetLeftRight(t: TreeNode) {\n t.left = Number.MAX_SAFE_INTEGER;\n t.right = Number.MIN_SAFE_INTEGER;\n\n for (const c of t.children) {\n resetLeftRight(c);\n }\n}\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n explorationDS,\n filterStreamingProgressTransformations,\n MetricFunction,\n VAR_FILTERS_EXPR,\n VAR_LATENCY_PARTIAL_THRESHOLD_EXPR,\n VAR_LATENCY_THRESHOLD_EXPR,\n} from '../../../../../utils/shared';\nimport { TraceSearchMetadata } from '../../../../../types';\nimport { mergeTraces } from '../../../../../utils/trace-merge/merge';\nimport { createDataFrame, Field, FieldType, GrafanaTheme2, LinkModel, LoadingState } from '@grafana/data';\nimport { TreeNode } from '../../../../../utils/trace-merge/tree-node';\nimport { Icon, LinkButton, Stack, Text, useTheme2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { EmptyState } from '../../../../states/EmptyState/EmptyState';\nimport { css } from '@emotion/css';\nimport { getOpenTrace, getTraceExplorationScene } from 'utils/utils';\nimport { structureDisplayName } from '../TabsBarScene';\n\nexport interface ServicesTabSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n loading?: boolean;\n tree?: TreeNode;\n metric?: MetricFunction;\n}\n\nconst ROOT_SPAN_ID = '0000000000000000';\n\nexport class StructureTabScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(state.metric as MetricFunction)],\n }),\n transformations: filterStreamingProgressTransformations,\n }),\n loading: true,\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n this._subs.add(\n this.state.$data?.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Loading || state.data?.state === LoadingState.Streaming) {\n this.setState({ loading: true });\n return;\n }\n\n if (state.data?.state === LoadingState.Done && state.data?.series.length) {\n const frame = state.data?.series[0].fields[0].values[0];\n if (frame) {\n const response = JSON.parse(frame) as TraceSearchMetadata[];\n const tree = mergeTraces(response);\n tree.children.sort((a, b) => countSpans(b) - countSpans(a));\n\n this.setState({\n loading: false,\n tree,\n panel: new SceneFlexLayout({\n height: '100%',\n wrap: 'wrap',\n children: this.getPanels(tree),\n }),\n });\n }\n }\n })\n );\n }\n\n private getPanels(tree: TreeNode) {\n return tree.children.map((child) => {\n return new SceneFlexItem({\n height: 150,\n width: '100%',\n minHeight: '400px',\n body: this.getPanel(child),\n });\n });\n }\n\n private getPanel(tree: TreeNode) {\n const timeRange = sceneGraph.getTimeRange(this);\n const from = timeRange.state.value.from;\n const to = timeRange.state.value.to;\n\n const openTrace = getOpenTrace(this);\n\n return PanelBuilders.traces()\n .setTitle(`Structure for ${tree.serviceName} [${countSpans(tree)} spans used]`)\n .setOption('createFocusSpanLink' as any, (traceId: string, spanId: string): LinkModel => {\n return {\n title: 'Open trace',\n href: '#',\n onClick: () => openTrace(traceId, spanId),\n origin: {} as Field,\n target: '_self',\n };\n })\n .setData(\n new SceneDataNode({\n data: {\n state: LoadingState.Done,\n timeRange: {\n from,\n to,\n raw: { from, to },\n },\n series: [\n {\n ...this.buildData(tree),\n },\n ],\n },\n })\n )\n .build();\n }\n\n private buildData(tree: TreeNode) {\n const trace = this.getTrace(tree, ROOT_SPAN_ID);\n const traceName = trace[0].serviceName + ':' + trace[0].operationName;\n\n return createDataFrame({\n name: `Trace ${traceName}`,\n refId: `trace_${traceName}`,\n fields: [\n {\n name: 'references',\n type: FieldType.other,\n values: trace.map((x) => x.references),\n },\n {\n name: 'traceID',\n type: FieldType.string,\n values: trace.map((x) => x.traceID),\n },\n {\n name: 'spanID',\n type: FieldType.string,\n values: trace.map((x) => x.spanID),\n },\n {\n name: 'parentSpanID',\n type: FieldType.string,\n values: trace.map((x) => x.parentSpanId),\n },\n {\n name: 'serviceName',\n type: FieldType.string,\n values: trace.map((x) => x.serviceName),\n },\n {\n name: 'operationName',\n type: FieldType.string,\n values: trace.map((x) => x.operationName),\n },\n {\n name: 'duration',\n type: FieldType.number,\n values: trace.map((x) => x.duration),\n },\n {\n name: 'startTime',\n type: FieldType.number,\n values: trace.map((x) => x.startTime),\n },\n {\n name: 'statusCode',\n type: FieldType.number,\n values: trace.map((x) => x.statusCode),\n },\n ],\n });\n }\n\n private getTrace(node: TreeNode, spanID: string) {\n const erroredSpans = node.spans.reduce(\n (acc, c) => (c.attributes?.find((a) => a.key === 'status')?.value.stringValue === 'error' ? acc + 1 : acc),\n 0\n );\n\n // start time needs to be different from zero otherwise for the root, otherwise the Trace View won't render it\n let startTime = 0.0001;\n if (spanID !== ROOT_SPAN_ID) {\n startTime =\n node.spans.reduce((acc, c) => acc + parseInt(c.startTimeUnixNano, 10), 0) / node.spans.length / 1000000;\n }\n\n const values = [\n {\n // Add last 5 spans of the list as external references\n // refType = 'EXTERNAL' doesn't mean anything, it's just to be different from CHILD_OF and FOLLOW_FROM\n references: node.spans.slice(-5).map((x) => ({\n refType: 'EXTERNAL',\n traceID: x.traceId,\n spanID: x.spanID,\n })),\n traceID: node.traceID,\n spanID: node.spans[0].spanID,\n parentSpanId: spanID,\n serviceName: node.serviceName,\n operationName: node.operationName,\n statusCode: erroredSpans > 0 ? 2 /*error*/ : 0 /*unset*/,\n duration: node.spans.reduce((acc, c) => acc + parseInt(c.durationNanos, 10), 0) / node.spans.length / 1000000,\n startTime,\n },\n ];\n\n for (const child of node.children) {\n values.push(...this.getTrace(child, node.spans[0].spanID));\n }\n return values;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { tree, loading, panel, $data } = model.useState();\n const styles = getStyles(useTheme2());\n const theme = useTheme2();\n\n const exploration = getTraceExplorationScene(model);\n const { value } = exploration.getMetricVariable().useState();\n\n const metric = value as MetricFunction;\n\n let isLoading = loading || !tree?.children.length;\n if ($data?.state.data?.state === LoadingState.Done) {\n isLoading = false;\n }\n\n let description;\n let emptyMsg = '';\n switch (metric) {\n case 'rate':\n description = (\n <>\n
    Analyse the service structure of the traces that match the current filters.
    \n
    Each panel represents an aggregate view compiled using spans from multiple traces.
    \n \n );\n emptyMsg = 'server';\n break;\n case 'errors':\n description = (\n <>\n
    Analyse the errors structure of the traces that match the current filters.
    \n
    Each panel represents an aggregate view compiled using spans from multiple traces.
    \n \n );\n emptyMsg = 'error';\n break;\n case 'duration':\n description = (\n <>\n
    Analyse the structure of slow spans from the traces that match the current filters.
    \n
    Each panel represents an aggregate view compiled using spans from multiple traces.
    \n \n );\n emptyMsg = 'slow';\n break;\n }\n\n const tabName = structureDisplayName(metric);\n\n const noDataMessage = (\n <>\n \n {EMPTY_STATE_ERROR_MESSAGE}\n \n \n
    \n The structure tab shows {emptyMsg} spans beneath what you are currently investigating. Currently, there are\n no descendant {emptyMsg} spans beneath the spans you are investigating.\n
    \n
    \n \n \n \n The structure tab works best with full traces.\n \n \n\n
    \n Read more about\n
    \n \n {`${tabName.toLowerCase()}`}\n \n
    \n
    \n \n );\n\n return (\n \n
    {description}
    \n {isLoading && (\n \n \n \n )}\n\n {!isLoading && tree && tree.children.length > 0 && (\n
    {panel && }
    \n )}\n\n {$data?.state.data?.state === LoadingState.Done && !tree?.children.length && (\n \n )}\n
    \n );\n };\n}\n\nfunction buildQuery(metric: MetricFunction) {\n let metricQuery;\n let selectionQuery = '';\n switch (metric) {\n case 'errors':\n metricQuery = 'status = error';\n selectionQuery = 'status = error';\n break;\n case 'duration':\n metricQuery = `duration > ${VAR_LATENCY_PARTIAL_THRESHOLD_EXPR}`;\n selectionQuery = `duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n break;\n default:\n metricQuery = 'kind = server';\n break;\n }\n\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR} ${\n selectionQuery.length ? `&& ${selectionQuery}` : ''\n }} &>> { ${metricQuery} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,\n queryType: 'traceql',\n tableType: 'raw',\n limit: 200,\n spss: 20,\n filters: [],\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0`,\n }),\n traceViewList: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing.x1,\n // Hide the minimap and header components\n 'div[class*=\"panel-content\"] > div': {\n overflow: 'auto',\n '> :not([class*=\"TraceTimelineViewer\"])': {\n display: 'none',\n },\n },\n // Hide the Span and Resource accordions from span details\n 'div[data-testid=\"span-detail-component\"] > :nth-child(4) > :nth-child(1)': {\n display: 'none',\n },\n\n // Hide span details row\n '.span-detail-row': {\n display: 'none',\n },\n\n // Remove cursor pointer as span details is hidden\n 'div[data-testid=\"TimelineRowCell\"]': {\n 'button[role=\"switch\"]': {\n cursor: 'text',\n },\n },\n 'div[data-testid=\"span-view\"]': {\n cursor: 'text !important',\n },\n }),\n longText: css({\n maxWidth: '800px',\n margin: '0 auto',\n }),\n action: css({\n marginLeft: theme.spacing(1),\n }),\n actionContainer: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }),\n };\n};\n\nfunction countSpans(tree: TreeNode) {\n let count = tree.spans.length;\n for (const child of tree.children) {\n count += countSpans(child);\n }\n return count;\n}\n\nexport function buildStructureScene(metric: MetricFunction) {\n return new SceneFlexItem({\n body: new StructureTabScene({ metric }),\n });\n}\n","import { css } from '@emotion/css';\nimport { useResizeObserver } from '@react-aria/utils';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { Select, RadioButtonGroup, useStyles2, useTheme2, measureText, Field, InputActionMeta } from '@grafana/ui';\nimport { ALL, ignoredAttributes, maxOptions, MetricFunction, RESOURCE_ATTR, SPAN_ATTR } from 'utils/shared';\nimport { AttributesBreakdownScene } from './TracesByService/Tabs/Breakdown/AttributesBreakdownScene';\nimport { AttributesComparisonScene } from './TracesByService/Tabs/Comparison/AttributesComparisonScene';\nimport { getFiltersVariable, getMetricVariable, getTraceExplorationScene } from 'utils/utils';\n\ntype Props = {\n options: Array>;\n radioAttributes: string[];\n value?: string;\n onChange: (label: string, ignore?: boolean) => void;\n showAll?: boolean;\n model: AttributesBreakdownScene | AttributesComparisonScene;\n};\n\nconst additionalWidthPerItem = 40;\nconst widthOfOtherAttributes = 180;\n\nexport function GroupBySelector({ options, radioAttributes, value, onChange, showAll = false, model }: Props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const { fontSize } = theme.typography;\n\n const [selectQuery, setSelectQuery] = useState('');\n const [allowAutoUpdate, setAllowAutoUpdate] = useState(true);\n\n const [availableWidth, setAvailableWidth] = useState(0);\n const controlsContainer = useRef(null);\n\n const { initialGroupBy } = getTraceExplorationScene(model).useState();\n const { filters } = getFiltersVariable(model).useState();\n const { value: metric } = getMetricVariable(model).useState();\n const metricValue = metric as MetricFunction;\n\n useResizeObserver({\n ref: controlsContainer,\n onResize: () => {\n const element = controlsContainer.current;\n if (element) {\n setAvailableWidth(element.clientWidth);\n }\n },\n });\n\n const radioOptions = useMemo(() => {\n let radioOptionsWidth = 0;\n return radioAttributes\n .filter((op) => {\n // remove radio options that are in the dropdown\n let checks = !!options.find((o) => o.value === op);\n\n // remove radio options that are in the filters\n if (filters.find((f) => f.key === op && (f.operator === '=' || f.operator === '!='))) {\n return false;\n }\n\n // if filters (primary signal) has 'Full Traces' selected, then don't add rootName or rootServiceName to options\n // as you would overwrite it in the query if it's selected\n if (filters.find((f) => f.key === 'nestedSetParent')) {\n checks = checks && op !== 'rootName' && op !== 'rootServiceName';\n }\n\n // if rate or error rate metric is selected, then don't add status to options\n // as you would overwrite it in the query if it's selected\n if (metricValue === 'rate' || metricValue === 'errors') {\n checks = checks && op !== 'status';\n }\n\n return checks;\n })\n .map((attribute) => ({\n label: attribute.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''),\n text: attribute,\n value: attribute,\n }))\n .filter((option) => {\n const text = option.label || option.text || '';\n const textWidth = measureText(text, fontSize).width;\n if (radioOptionsWidth + textWidth + additionalWidthPerItem + widthOfOtherAttributes < availableWidth) {\n radioOptionsWidth += textWidth + additionalWidthPerItem;\n return true;\n } else {\n return false;\n }\n });\n }, [radioAttributes, options, filters, metricValue, fontSize, availableWidth]);\n\n const otherAttrOptions = useMemo(() => {\n const ops = options.filter((op) => !radioOptions.find((ro) => ro.value === op.value?.toString()));\n return filteredOptions(ops, selectQuery);\n }, [selectQuery, options, radioOptions]);\n\n const getModifiedSelectOptions = (options: Array>) => {\n return options\n .filter((op) => !ignoredAttributes.includes(op.value?.toString()!))\n .map((op) => ({ label: op.label?.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''), value: op.value }));\n };\n\n const defaultValue = initialGroupBy ?? radioOptions[0]?.value ?? otherAttrOptions[0]?.value;\n\n // Set default value as first value in options\n useEffect(() => {\n if (defaultValue && !showAll && allowAutoUpdate) {\n onChange(defaultValue, true);\n setAllowAutoUpdate(false);\n }\n }, [value, defaultValue, showAll, onChange, allowAutoUpdate]);\n\n useEffect(() => {\n if (radioAttributes.length > 0) {\n setAllowAutoUpdate(true);\n }\n }, [radioAttributes]);\n\n useEffect(() => {\n if (filters.some((f) => f.key === value)) {\n setAllowAutoUpdate(true);\n }\n }, [filters, value]);\n\n const showAllOption = showAll ? [{ label: ALL, value: ALL }] : [];\n const defaultOnChangeValue = showAll ? ALL : '';\n\n return (\n \n
    \n {radioOptions.length > 0 && (\n \n )}\n x.value === value) ? value : null} // remove value from select when radio button clicked\n placeholder={'Other attributes'}\n options={getModifiedSelectOptions(otherAttrOptions)}\n onChange={(selected) => {\n const newSelected = selected?.value ?? defaultOnChangeValue;\n onChange(newSelected);\n }}\n className={styles.select}\n isClearable\n onInputChange={(value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setSelectQuery(value);\n }\n }}\n onCloseMenu={() => setSelectQuery('')}\n virtualized\n />\n
    \n
    \n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n select: css({\n maxWidth: theme.spacing(22),\n }),\n container: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n\nexport const filteredOptions = (options: Array>, query: string) => {\n if (options.length === 0) {\n return [];\n }\n\n if (query.length === 0) {\n return options.slice(0, maxOptions);\n }\n\n const queryLowerCase = query.toLowerCase();\n return options\n .filter((tag) => {\n if (tag.value && tag.value.length > 0) {\n return tag.value.toLowerCase().includes(queryLowerCase);\n }\n return false;\n })\n .slice(0, maxOptions);\n};\n","import React from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { SceneComponentProps, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { Field, RadioButtonGroup } from '@grafana/ui';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../utils/analytics';\n\nexport interface LayoutSwitcherState extends SceneObjectState {\n active: LayoutType;\n layouts: SceneObject[];\n options: Array>;\n}\n\nexport type LayoutType = 'single' | 'grid' | 'rows';\n\nexport class LayoutSwitcher extends SceneObjectBase {\n public Selector({ model }: { model: LayoutSwitcher }) {\n const { active, options } = model.useState();\n\n return (\n \n \n \n );\n }\n\n public onLayoutChange = (active: LayoutType) => {\n this.setState({ active });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.layout_type_changed, {\n layout: active,\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { layouts, options, active } = model.useState();\n\n const index = options.findIndex((o) => o.value === active);\n if (index === -1) {\n return null;\n }\n\n const layout = layouts[index];\n\n return ;\n };\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { TooltipDisplayMode } from '@grafana/ui';\n\nexport const linesPanelConfig = () => {\n return PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setCustomFieldConfig('fillOpacity', 15);\n};\n","import { sceneGraph, SceneObject, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { cloneDeep, merge } from 'lodash';\nimport { EventTimeseriesDataReceived } from '../../../utils/shared';\n\nexport function syncYAxis() {\n return (vizPanel: SceneObject) => {\n const maxima = new Map();\n\n const eventSub = vizPanel.subscribeToEvent(EventTimeseriesDataReceived, (event) => {\n const series = event.payload.series;\n\n series?.forEach((s) => {\n s.fields.slice(1).forEach((f) => {\n maxima.set(s.refId as string, Math.max(...f.values.filter((v) => v)));\n })\n });\n\n updateTimeseriesAxis(vizPanel, Math.max(...maxima.values()));\n });\n\n return () => {\n eventSub.unsubscribe();\n };\n };\n}\n\nfunction updateTimeseriesAxis(vizPanel: SceneObject, max: number) {\n // findAllObjects searches down the full scene graph\n const timeseries = sceneGraph.findAllObjects(vizPanel, (o) => o instanceof VizPanel) as VizPanel[];\n\n for (const t of timeseries) {\n t.clearFieldConfigCache(); // required\n\n t.setState({\n fieldConfig: merge(cloneDeep(t.state.fieldConfig), { defaults: { max } }),\n });\n }\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { LayoutSwitcher } from '../LayoutSwitcher';\nimport { explorationDS, GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { formatLabelValue, getLabelValue, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { generateMetricsQuery, getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { linesPanelConfig } from '../panels/linesPanel';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { syncYAxis } from '../behaviors/syncYaxis';\nimport { exemplarsTransformations } from '../../../utils/exemplars';\nimport { PanelMenu } from '../panels/PanelMenu';\n\nexport function buildNormalLayout(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n const traceExploration = getTraceExplorationScene(scene);\n const metric = traceExploration.getMetricVariable().getValue() as MetricFunction;\n const query = getMetricsTempoQuery({ metric, groupByKey: variable.getValueText() });\n const panels: Record = {};\n\n return new LayoutSwitcher({\n $behaviors: [syncYAxis()],\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: 64,\n datasource: explorationDS,\n queries: [query],\n }),\n transformations: [\n ...exemplarsTransformations(getOpenTrace(scene)),\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[1], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[1].state?.calcs?.max || 0) - (a.fields[1].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n options: [\n { value: 'single', label: 'Single' },\n { value: 'grid', label: 'Grid' },\n { value: 'rows', label: 'Rows' },\n ],\n active: 'grid',\n layouts: [\n new SceneFlexLayout({\n direction: 'column',\n children: [\n new SceneFlexItem({\n minHeight: 300,\n body: (metric === 'duration' ? linesPanelConfig().setUnit('s') : linesPanelConfig()).build(),\n }),\n ],\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: '1fr',\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n ],\n });\n}\n\nexport function getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame, labelName: string) => string,\n variable: CustomVariable,\n metric: MetricFunction,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n annotations: data.annotations?.filter((a) => a.refId === frame.refId),\n series: [\n {\n ...frame,\n fields: frame.fields.sort((a, b) => a.labels?.status?.localeCompare(b.labels?.status || '') || 0),\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const query = sceneGraph.interpolate(\n variable,\n generateMetricsQuery({\n metric,\n extraFilters: `${variable.getValueText()}=${formatLabelValue(getLabelValue(frame))}`,\n })\n );\n\n const panel = (metric === 'duration' ? linesPanelConfig().setUnit('s') : barsPanelConfig(metric))\n .setTitle(getTitle(frame, variable.getValueText()))\n .setMenu(new PanelMenu({ query, labelValue: getLabelValue(frame) }))\n .setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useTheme2 } from '@grafana/ui';\n\ntype Tag = {\n label: string;\n color: string;\n};\n\ntype Props = {\n description: string;\n tags: Tag[];\n};\n\nexport function AttributesDescription({ description, tags }: Props) {\n const theme = useTheme2();\n const styles = getStyles(theme);\n\n return (\n
    \n
    {description}
    \n {tags.length > 0 &&\n tags.map((tag) => (\n
    \n
    \n
    {tag.label}
    \n
    \n ))}\n
    \n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n infoFlex: css({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n tagsFlex: css({\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n }),\n tag: css({\n display: 'inline-block',\n width: theme.spacing(2),\n height: theme.spacing(0.5),\n borderRadius: theme.spacing(0.5),\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport React, { useEffect, useState } from 'react';\n\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { Field, RadioButtonGroup, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport {\n MetricFunction,\n RESOURCE,\n RESOURCE_ATTR,\n SPAN,\n SPAN_ATTR,\n VAR_FILTERS,\n VAR_METRIC,\n radioAttributesResource,\n radioAttributesSpan,\n} from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { buildNormalLayout } from '../../../layouts/attributeBreakdown';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { AttributesDescription } from './AttributesDescription';\n\nexport interface AttributesBreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesBreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_METRIC],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.subscribeToState(() => {\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState(() => {\n this.setBody(variable);\n });\n\n this.setBody(variable);\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(radioAttributesResource[0]);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n this.setState({\n body: buildNormalLayout(this, variable, (frame: DataFrame) => [\n new AddToFiltersAction({ frame, labelKey: variable.getValueText(), onClick: this.onAddToFiltersClick }),\n ]),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n if (variable.getValueText() !== value) {\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_group_by_changed,\n {\n groupBy: value,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { value: groupByValue } = getGroupByVariable(model).useState();\n const groupBy = groupByValue as string;\n const defaultScope = groupBy.includes(SPAN_ATTR) || radioAttributesSpan.includes(groupBy) ? SPAN : RESOURCE;\n const [scope, setScope] = useState(defaultScope);\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n const { attributes } = getTraceByServiceScene(model).useState();\n const filterType = scope === RESOURCE ? RESOURCE_ATTR : SPAN_ATTR;\n let filteredAttributes = attributes?.filter((attr) => attr.includes(filterType));\n if (scope === SPAN) {\n filteredAttributes = filteredAttributes?.concat(radioAttributesSpan);\n }\n\n const exploration = getTraceExplorationScene(model);\n const { value: metric } = exploration.getMetricVariable().useState();\n const getDescription = (metric: MetricFunction) => {\n switch (metric) {\n case 'rate':\n return 'Attributes are ordered by their rate of requests per second.';\n case 'errors':\n return 'Attributes are ordered by their rate of errors per second.';\n case 'duration':\n return 'Attributes are ordered by their average duration.';\n default:\n throw new Error('Metric not supported');\n }\n };\n const description = getDescription(metric as MetricFunction);\n\n useEffect(() => {\n if (scope !== defaultScope) {\n setScope(defaultScope);\n }\n }, [groupBy]);\n\n return (\n
    \n \n\n
    \n {filteredAttributes?.length && (\n
    \n
    \n \n \n \n
    \n\n
    \n \n
    \n
    \n )}\n {body instanceof LayoutSwitcher && (\n
    \n \n
    \n )}\n
    \n
    {body && }
    \n
    \n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n scope: css({\n marginRight: theme.spacing(2),\n }),\n groupBy: css({\n width: '100%',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'row',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesBreakdownScene } from './AttributesBreakdownScene';\nimport { VAR_METRIC } from '../../../../../utils/shared';\n\ninterface BreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class BreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesBreakdownScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildBreakdownScene() {\n return new SceneFlexItem({\n body: new BreakdownScene({}),\n });\n}\n","import { Field } from \"@grafana/data\";\nimport { calculateBucketSize } from \"utils/dates\";\n\nexport function aggregateExceptions(messageField: Field, typeField?: Field, timeField?: Field, serviceField?: Field) {\n const occurrences = new Map();\n const types = new Map();\n const lastSeenTimes = new Map();\n const services = new Map();\n const timeSeries = new Map>();\n \n // Collect timestamps for each message\n const messageTimestamps = new Map();\n \n for (let i = 0; i < messageField.values.length; i++) {\n const message = messageField.values[i];\n const type = typeField?.values[i];\n const timestamp = timeField?.values[i];\n const service = serviceField?.values[i];\n \n if (message) {\n const normalizedMessage = normalizeExceptionMessage(message);\n occurrences.set(normalizedMessage, (occurrences.get(normalizedMessage) || 0) + 1);\n \n if (!types.has(normalizedMessage) && type) {\n types.set(normalizedMessage, type);\n }\n\n if (!services.has(normalizedMessage) && service) {\n services.set(normalizedMessage, service);\n }\n\n if (timestamp) {\n const timestampMs = typeof timestamp === 'string' ? parseFloat(timestamp) : timestamp;\n if (!messageTimestamps.has(normalizedMessage)) {\n messageTimestamps.set(normalizedMessage, []);\n }\n messageTimestamps.get(normalizedMessage)!.push(timestampMs);\n \n const currentLastSeen = lastSeenTimes.get(normalizedMessage) || 0;\n if (timestampMs > currentLastSeen) {\n lastSeenTimes.set(normalizedMessage, timestampMs);\n }\n }\n }\n }\n\n // Create time series data for each message\n for (const [message, timestamps] of messageTimestamps.entries()) {\n const timeSeriesData = createTimeSeries(timestamps);\n timeSeries.set(message, timeSeriesData);\n }\n\n const sortedEntries = Array.from(occurrences.entries()).sort((a, b) => b[1] - a[1]);\n\n return {\n messages: sortedEntries.map(([message]) => message),\n types: sortedEntries.map(([message]) => types.get(message) || ''),\n occurrences: sortedEntries.map(([, count]) => count),\n services: sortedEntries.map(([message]) => services.get(message) || ''),\n timeSeries: sortedEntries.map(([message]) => timeSeries.get(message) || []),\n lastSeenTimes: sortedEntries.map(([message]) => {\n const lastSeenMs = lastSeenTimes.get(message);\n \n if (!lastSeenMs) {\n return '';\n }\n \n const now = Date.now();\n const diffMs = now - lastSeenMs;\n \n if (diffMs < 60000) { // Less than 1 minute\n return 'Just now';\n } else if (diffMs < 3600000) { // Less than 1 hour\n const minutes = Math.floor(diffMs / 60000);\n return `${minutes}m ago`;\n } else if (diffMs < 86400000) { // Less than 1 day\n const hours = Math.floor(diffMs / 3600000);\n return `${hours}h ago`;\n } else { // More than 1 day\n const days = Math.floor(diffMs / 86400000);\n return `${days}d ago`;\n }\n }),\n };\n}\n\nexport function createTimeSeries(timestamps: number[]): Array<{time: number, count: number}> {\n if (!timestamps.length) {return [];}\n \n timestamps.sort((a, b) => a - b);\n \n const timeRangeMs = timestamps[timestamps.length - 1] - timestamps[0];\n const timeRangeSeconds = timeRangeMs / 1000;\n const bucketSizeSeconds = calculateBucketSize(timeRangeSeconds, 50);\n const bucketSizeMs = bucketSizeSeconds * 1000; // Convert back to milliseconds\n const buckets = new Map();\n \n for (const timestamp of timestamps) {\n const bucketKey = Math.floor(timestamp / bucketSizeMs) * bucketSizeMs;\n buckets.set(bucketKey, (buckets.get(bucketKey) || 0) + 1);\n }\n \n // Convert to array and sort by time\n return Array.from(buckets.entries())\n .map(([time, count]) => ({ time, count }))\n .sort((a, b) => a.time - b.time);\n}\n\nexport function normalizeExceptionMessage(message: string): string {\n if (!message) { return '' }\n return message.replace(/\\s+/g, ' ').trim();\n}\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2, LoadingState, PanelData, FieldType, DataLink } from '@grafana/data';\nimport { GraphDrawStyle, VisibilityMode, TableCellHeight } from '@grafana/schema';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { useStyles2, useTheme2, TableCellDisplayMode, TableCustomCellOptions, Sparkline } from '@grafana/ui';\nimport { map, Observable } from 'rxjs';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n explorationDS,\n filterStreamingProgressTransformations,\n} from '../../../../../utils/shared';\nimport { getTraceByServiceScene, getFiltersVariable } from '../../../../../utils/utils';\nimport { buildExceptionsQuery } from 'components/Explore/queries/exceptions';\nimport { aggregateExceptions } from './ExceptionUtils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\n\nexport interface ExceptionsSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n dataState: 'empty' | 'loading' | 'done';\n exceptionsCount?: number;\n}\n\nexport class ExceptionsScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildExceptionsQuery()],\n }),\n transformations: [], // Will be set after construction\n }),\n dataState: 'empty',\n ...state,\n });\n\n const dataTransformer = this.state.$data as SceneDataTransformer;\n dataTransformer.setState({\n transformations: [...filterStreamingProgressTransformations, this.createTransformation()],\n });\n\n this.addActivationHandler(() => {\n const dataTransformer = this.state.$data as SceneDataTransformer;\n\n this._subs.add(\n dataTransformer.subscribeToState((newState, prevState) => {\n if (newState.data !== prevState.data) {\n this.updatePanel(newState.data);\n }\n })\n );\n });\n }\n\n private updatePanel(data?: PanelData) {\n if (\n data?.state === LoadingState.Loading ||\n data?.state === LoadingState.NotStarted ||\n !data?.state ||\n (data?.state === LoadingState.Streaming && !data.series?.[0]?.length)\n ) {\n this.setState({\n dataState: 'loading',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new LoadingStateScene({\n component: SkeletonComponent,\n }),\n ],\n }),\n });\n } else if (\n (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) &&\n (data.series.length === 0 || !data.series?.[0]?.length)\n ) {\n this.setState({\n dataState: 'empty',\n exceptionsCount: 0,\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n }),\n });\n } else if (\n (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) &&\n data.series.length > 0\n ) {\n const exceptionsCount = this.calculateExceptionsCount(data);\n\n this.setState({\n dataState: 'done',\n exceptionsCount,\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: PanelBuilders.table()\n .setOption('cellHeight', TableCellHeight.Lg)\n .setHoverHeader(true)\n .setOverrides((builder) => {\n return builder\n .matchFieldsWithName('Service')\n .overrideCustomFieldConfig('width', 200)\n .matchFieldsWithName('Occurrences')\n .overrideCustomFieldConfig('width', 120)\n .matchFieldsWithName('Time Series')\n .overrideCustomFieldConfig('width', 220)\n .matchFieldsWithName('Last Seen')\n .overrideCustomFieldConfig('width', 120);\n })\n .build(),\n }),\n ],\n }),\n });\n }\n }\n\n private createTransformation() {\n return () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df: DataFrame) => {\n const messageField = df.fields.find((f) => f.name === 'exception.message');\n const typeField = df.fields.find((f) => f.name === 'exception.type');\n const serviceField = df.fields.find((f) => f.name === 'service.name');\n const timeField = df.fields.find((f) => f.name === 'time');\n const noData = !messageField || !messageField.values.length;\n\n let messages: string[] = [];\n let types: string[] = [];\n let occurrences: number[] = [];\n let lastSeenTimes: string[] = [];\n let services: string[] = [];\n let timeSeries: Array> = [];\n\n if (!noData) {\n const aggregated = aggregateExceptions(messageField, typeField, timeField, serviceField);\n messages = aggregated.messages;\n types = aggregated.types;\n occurrences = aggregated.occurrences;\n lastSeenTimes = aggregated.lastSeenTimes;\n services = aggregated.services;\n timeSeries = aggregated.timeSeries;\n }\n\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n const seriesData = props.value as Array<{ time: number; count: number }>;\n return this.renderSparklineCell(seriesData);\n },\n };\n\n return {\n ...df,\n length: messages.length,\n fields: [\n {\n name: 'Message',\n type: FieldType.string,\n values: messages,\n config: {\n links: messages.length > 0 ? [this.createDataLink()] : [],\n },\n },\n {\n name: 'Type',\n type: FieldType.string,\n values: types,\n config: {},\n },\n {\n name: 'Trace Service',\n type: FieldType.string,\n values: services,\n config: {},\n },\n {\n name: 'Occurrences',\n type: FieldType.number,\n values: occurrences,\n config: {},\n },\n {\n name: 'Frequency',\n type: FieldType.other,\n values: timeSeries,\n config: {\n custom: {\n cellOptions: options,\n },\n },\n },\n {\n name: 'Last Seen',\n type: FieldType.string,\n values: lastSeenTimes,\n config: {},\n },\n ],\n };\n });\n })\n );\n };\n }\n\n private renderSparklineCell = (seriesData: Array<{ time: number; count: number }>) => {\n const styles = useStyles2(getStyles);\n\n const SparklineCell = () => {\n const theme = useTheme2();\n\n if (!seriesData || !seriesData.length) {\n return
    No data
    ;\n }\n\n const countValues = seriesData.map((point) => point.count);\n const timeValues = seriesData.map((point) => point.time);\n\n const validCountValues = countValues.filter((v) => isFinite(v) && !isNaN(v));\n const validTimeValues = timeValues.filter((v) => isFinite(v) && !isNaN(v));\n if (validCountValues.length < 2 || validTimeValues.length < 2) {\n return
    Not enough data
    ;\n }\n\n const minCount = Math.min(...validCountValues);\n const maxCount = Math.max(...validCountValues);\n const minTime = Math.min(...validTimeValues);\n const maxTime = Math.max(...validTimeValues);\n\n // Ensure valid ranges\n const countDelta = maxCount - minCount;\n const timeDelta = maxTime - minTime;\n\n // Handle edge cases where all values are the same\n const safeCountDelta = countDelta === 0 ? 1 : countDelta;\n const safeTimeDelta = timeDelta === 0 ? 1 : timeDelta;\n\n const sparklineData = {\n y: {\n name: 'count',\n type: FieldType.number,\n values: validCountValues,\n config: {},\n state: {\n range: {\n min: minCount,\n max: maxCount,\n delta: safeCountDelta,\n },\n },\n },\n x: {\n name: 'time',\n type: FieldType.time,\n values: validTimeValues,\n config: {},\n state: {\n range: {\n min: minTime,\n max: maxTime,\n delta: safeTimeDelta,\n },\n },\n },\n };\n\n return (\n
    \n \n
    \n );\n };\n\n return ;\n };\n\n private createDataLink(): DataLink {\n return {\n title: 'View traces for this exception',\n url: '',\n onClick: (event: any) => {\n const rowIndex = event.origin?.rowIndex;\n if (rowIndex !== undefined) {\n const message = event.origin?.field?.values?.[rowIndex];\n if (message) {\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.exception_message_clicked);\n this.navigateToTracesWithFilter(message);\n }\n }\n },\n };\n }\n\n private navigateToTracesWithFilter = (exceptionMessage: string) => {\n const filtersVariable = getFiltersVariable(this);\n if (!filtersVariable) {\n return;\n }\n\n const traceByServiceScene = getTraceByServiceScene(this);\n traceByServiceScene?.setActionView('traceList');\n\n const currentFilters = filtersVariable.state.filters || [];\n const escapedMessage = this.escapeFilterValue(exceptionMessage);\n\n const existingFilterIndex = currentFilters.findIndex((filter) => filter.key === 'event.exception.message');\n\n const newFilter = {\n key: 'event.exception.message',\n operator: '=',\n value: escapedMessage,\n };\n\n const newFilters =\n existingFilterIndex >= 0\n ? currentFilters.map((f, i) => (i === existingFilterIndex ? newFilter : f))\n : [...currentFilters, newFilter];\n\n filtersVariable.setState({ filters: newFilters });\n };\n\n private escapeFilterValue(value: string): string {\n return value\n .replace(/[\\n\\r\\t]/g, ' ')\n .replace(/\\s+/g, ' ')\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\"')\n .trim();\n }\n\n private calculateExceptionsCount(data?: PanelData): number {\n if (!data?.series?.[0]) {\n return 0;\n }\n\n const occurrencesField = data.series[0].fields.find((field) => field.name === 'Occurrences');\n if (!occurrencesField?.values) {\n return 0;\n }\n\n return occurrencesField.values.reduce((total: number, value: number) => total + (value || 0), 0);\n }\n\n public getExceptionsCount(): number {\n return this.state.exceptionsCount || 0;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const { panel, dataState } = model.useState();\n\n return (\n
    \n
    \n View exception details from errored traces for the current set of filters.\n
    \n {dataState === 'loading' && (\n
    \n \n
    \n )}\n {panel && }\n
    \n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n height: '100%',\n }),\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0`,\n }),\n loadingContainer: css({\n padding: theme.spacing(2),\n }),\n sparklineContainer: css({\n width: '200px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }),\n sparklineMessage: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n padding: theme.spacing(1),\n }),\n };\n};\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n const theme = useTheme2();\n\n return (\n
    \n \n
    \n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: theme.spacing(2),\n }),\n };\n}\n\nexport function buildExceptionsScene() {\n return new SceneFlexItem({\n body: new ExceptionsScene({}),\n });\n}\n","import { VAR_FILTERS_EXPR } from 'utils/shared';\n\nexport function buildExceptionsQuery() {\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR} && status = error} | select(resource.service.name, event.exception.message,event.exception.stacktrace,event.exception.type) with(most_recent=true)`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 400,\n spss: 10,\n filters: [],\n };\n}\n","import { ComparisonSelection } from '../../../utils/shared';\n\nexport function comparisonQuery(selection?: ComparisonSelection) {\n let selector = '';\n\n if (!selection) {\n return '{}';\n }\n\n if (selection.query) {\n selector += selection.query;\n }\n\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n if (selector.length) {\n selector += ' && ';\n }\n selector += duration.join(' && ');\n }\n\n const fromTimerange = selection.timeRange?.from;\n const toTimerange = selection.timeRange?.to;\n return `{${selector}}, 10${\n fromTimerange && toTimerange ? `, ${fromTimerange * 1000000000}, ${toTimerange * 1000000000}` : ``\n }`;\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, FieldType, LoadingState, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { getPanelConfig } from './allComparison';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport function buildAttributeComparison(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const timeRange = sceneGraph.getTimeRange(scene);\n const data = sceneGraph.getData(scene);\n const attribute = variable.getValueText();\n const attributeSeries = data.state.data?.series.find((d) => d.name === attribute);\n const splitFrames: DataFrame[] = [];\n const nameField = attributeSeries?.fields.find((f) => f.name === 'Value');\n const baselineField = attributeSeries?.fields.find((f) => f.name === 'Baseline');\n const selectionField = attributeSeries?.fields.find((f) => f.name === 'Selection');\n\n const panels: Record = {};\n\n if (nameField && baselineField && selectionField) {\n for (let i = 0; i < nameField.values.length; i++) {\n if (!nameField.values[i] || (!baselineField.values[i] && !selectionField.values[i])) {\n continue;\n }\n\n splitFrames.push({\n name: nameField.values[i].replace(/\"/g, ''),\n length: 1,\n fields: [\n {\n name: 'Value',\n type: FieldType.string,\n values: ['Baseline', 'Comparison'],\n config: {},\n },\n {\n ...baselineField,\n values: [baselineField.values[i]],\n labels: {\n [attribute]: nameField.values[i],\n },\n config: {\n displayName: 'Baseline',\n },\n },\n {\n ...selectionField,\n values: [selectionField.values[i]],\n },\n ],\n });\n }\n }\n\n return new ByFrameRepeater({\n $data: new SceneDataTransformer({\n $data: new SceneDataNode({\n data: {\n timeRange: timeRange.state.value,\n state: LoadingState.Done,\n series: splitFrames,\n },\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[2], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[2].state?.calcs?.max || 0) - (a.fields[2].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getLabel, actionsFn, metric),\n });\n}\n\nconst getLabel = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n} from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\n\ninterface InspectAttributeActionState extends SceneObjectState {\n attribute?: string;\n onClick: () => void;\n}\n\nexport class InspectAttributeAction extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n if (!model.state.attribute) {\n return null;\n }\n\n return (\n \n );\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, Field } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n VariableDependencyConfig,\n VariableValue,\n} from '@grafana/scenes';\nimport { getTheme, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport { VAR_FILTERS, VAR_PRIMARY_SIGNAL, explorationDS, VAR_FILTERS_EXPR, ALL, radioAttributesSpan } from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { map, Observable } from 'rxjs';\nimport { BaselineColor, buildAllComparisonLayout, SelectionColor } from '../../../layouts/allComparison';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\nimport { comparisonQuery } from '../../../queries/comparisonQuery';\nimport { buildAttributeComparison } from '../../../layouts/attributeComparison';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getPrimarySignalVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { InspectAttributeAction } from 'components/Explore/actions/InspectAttributeAction';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { computeHighestDifference } from '../../../../../utils/comparison';\nimport { AttributesDescription } from '../Breakdown/AttributesDescription';\nimport { isEqual } from 'lodash';\n\nexport interface AttributesComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_PRIMARY_SIGNAL],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.changeValueTo(ALL);\n\n this.updateData();\n\n variable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.setBody(variable);\n }\n });\n\n getPrimarySignalVariable(this).subscribeToState(() => {\n this.updateData();\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (!isEqual(newState.selection, prevState.selection)) {\n this.updateData();\n this.setBody(variable);\n }\n });\n\n sceneGraph.getTimeRange(this).subscribeToState(() => {\n this.updateData();\n });\n\n this.setBody(variable);\n }\n\n private getFilteredAttributes = (primarySignal: VariableValue): string[] => {\n return primarySignal === 'nestedSetParent<0' ? ['rootName', 'rootServiceName'] : [];\n };\n\n private updateData() {\n const byServiceScene = getTraceByServiceScene(this);\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const primarySignal = getPrimarySignalVariable(this).state.value;\n const filteredAttributes = this.getFilteredAttributes(primarySignal);\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(from, to, comparisonQuery(byServiceScene.state.selection))],\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n const groupedFrames = groupFrameListByAttribute(data);\n return Object.entries(groupedFrames)\n .filter(([attribute, _]) => !filteredAttributes.includes(attribute))\n .map(([attribute, frames]) => frameGroupToDataframe(attribute, frames))\n .sort((a, b) => {\n const aCompare = computeHighestDifference(a);\n const bCompare = computeHighestDifference(b);\n return Math.abs(bCompare.maxDifference) - Math.abs(aCompare.maxDifference);\n });\n })\n );\n },\n ],\n }),\n });\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(ALL);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.comparison_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n const traceExploration = getTraceExplorationScene(this);\n this.setState({\n body:\n variable.hasAllValue() || variable.getValue() === ALL\n ? buildAllComparisonLayout(\n (frame) =>\n new InspectAttributeAction({\n attribute: frame.name,\n onClick: () => this.onChange(frame.name || ''),\n }),\n traceExploration.getMetricFunction()\n )\n : buildAttributeComparison(\n this,\n variable,\n (frame: DataFrame) => [\n new AddToFiltersAction({\n frame,\n labelKey: variable.getValueText(),\n onClick: this.onAddToFiltersClick,\n }),\n ],\n traceExploration.getMetricFunction()\n ),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.select_attribute_in_comparison_clicked,\n { value }\n );\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const variable = getGroupByVariable(model);\n const traceExploration = getTraceExplorationScene(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n return (\n
    \n \n\n
    \n {attributes?.length && (\n
    \n \n
    \n )}\n {body instanceof LayoutSwitcher && (\n
    \n \n
    \n )}\n
    \n
    {body && }
    \n
    \n );\n };\n}\n\nexport function buildQuery(from: number, to: number, compareQuery: string) {\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | compare(${compareQuery})`,\n step: durString,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n\nconst groupFrameListByAttribute = (frames: DataFrame[]) => {\n return frames.reduce((acc: Record, series) => {\n const numberField = series.fields.find((field) => field.type === 'number');\n const nonInternalKey = Object.keys(numberField?.labels || {}).find((key) => !key.startsWith('__'));\n if (nonInternalKey) {\n acc[nonInternalKey] = [...(acc[nonInternalKey] || []), series];\n }\n return acc;\n }, {});\n};\n\nconst frameGroupToDataframe = (attribute: string, frames: DataFrame[]): DataFrame => {\n const newFrame: DataFrame = {\n name: attribute,\n refId: attribute,\n fields: [],\n length: 0,\n };\n\n const valueNameField: Field = {\n name: 'Value',\n type: FieldType.string,\n values: [],\n config: {},\n labels: { [attribute]: attribute },\n };\n const baselineField: Field = {\n name: 'Baseline',\n type: FieldType.number,\n values: [],\n config: {},\n };\n const selectionField: Field = {\n name: 'Selection',\n type: FieldType.number,\n values: [],\n config: {},\n };\n\n const values = frames.reduce((acc: Record, frame) => {\n const numberField = frame.fields.find((field) => field.type === 'number');\n const val = numberField?.labels?.[attribute];\n if (val) {\n acc[val] = [...(acc[val] || []), numberField];\n }\n return acc;\n }, {});\n\n const baselineTotal = getTotalForMetaType(frames, 'baseline', values);\n const selectionTotal = getTotalForMetaType(frames, 'selection', values);\n\n newFrame.length = Object.keys(values).length;\n\n Object.entries(values).forEach(([value, fields]) => {\n valueNameField.values.push(value);\n baselineField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"baseline\"')?.values[0] / baselineTotal\n );\n selectionField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"selection\"')?.values[0] / selectionTotal\n );\n });\n newFrame.fields = [valueNameField, baselineField, selectionField];\n return newFrame;\n};\n\nfunction getTotalForMetaType(frames: DataFrame[], metaType: string, values: Record) {\n // calculate total from values so that we are properly normalizing the field values when dividing by the total\n const calculatedTotal = Object.values(values).reduce((total, fields) => {\n const field = fields.find((field) => field.labels?.['__meta_type'] === `\"${metaType}\"`);\n return total + (field?.values[0] || 0);\n }, 0);\n\n let total = frames.reduce((currentValue, frame) => {\n const field = frame.fields.find((f) => f.type === 'number');\n if (field?.labels?.['__meta_type'] === `\"${metaType}_total\"`) {\n return field.values[0];\n }\n return currentValue;\n }, 1);\n\n // if the baseline_total or selection_total field is found, but the total value is less than the calculated total\n // we need to return the calculated total otherwise the values will be skewed\n // e.g. calculatedTotal = 100, total = 80\n // if we return the total, the field values will be normalized via 80/100 = 1.25 (incorrect)\n // if we return the calculated total, the field values will be normalized via 100/100 = 1 (correct)\n if (total < calculatedTotal) {\n return calculatedTotal === 0 ? 1 : calculatedTotal; // fallback to 1 to avoid division by zero\n }\n\n // 1 if the baseline_total or selection_total field is not found\n // 0 if the baseline_total or selection_total field is found, but the total value is 0\n if (total === 1 || total === 0) {\n return calculatedTotal === 0 ? 1 : calculatedTotal;\n }\n\n return total;\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'column',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesComparisonScene } from './AttributesComparisonScene';\nimport { MetricFunction, VAR_METRIC } from '../../../../../utils/shared';\nimport { getMetricVariable, getTraceByServiceScene } from '../../../../../utils/utils';\nimport { getDefaultSelectionForMetric } from '../../../../../utils/comparison';\n\ninterface ComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class ComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const metricVar = getMetricVariable(this);\n const metric = metricVar.getValue() as MetricFunction;\n\n const tracesByService = getTraceByServiceScene(this);\n if (!tracesByService.state.selection) {\n const selection = getDefaultSelectionForMetric(metric);\n if (selection) {\n tracesByService.setState({ selection });\n }\n }\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesComparisonScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildComparisonScene() {\n return new SceneFlexItem({\n body: new ComparisonScene({}),\n });\n}\n","import { css } from '@emotion/css';\nimport { SceneObjectBase, SceneComponentProps, SceneObject, sceneGraph, SceneObjectState } from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { useStyles2, Box, Stack, TabsBar, Tab } from '@grafana/ui';\nimport React, { useEffect, useState } from 'react';\nimport {\n getTraceExplorationScene,\n getTraceByServiceScene,\n getExceptionsScene,\n getFiltersVariable,\n getPrimarySignalVariable,\n} from 'utils/utils';\nimport { ShareExplorationAction } from '../../actions/ShareExplorationAction';\nimport { buildSpansScene } from './Spans/SpansScene';\nimport { buildStructureScene } from './Structure/StructureScene';\nimport { buildBreakdownScene } from './Breakdown/BreakdownScene';\nimport { buildExceptionsScene } from './Exceptions/ExceptionsScene';\nimport { MetricFunction } from 'utils/shared';\nimport { buildComparisonScene } from './Comparison/ComparisonScene';\nimport { useMount } from 'react-use';\nimport { ActionViewType } from 'exposedComponents/types';\n\ninterface ActionViewDefinition {\n displayName: (metric: MetricFunction) => string;\n value: ActionViewType;\n getScene: (metric: MetricFunction) => SceneObject;\n}\n\nexport const actionViewsDefinitions: ActionViewDefinition[] = [\n { displayName: breakdownDisplayName, value: 'breakdown', getScene: buildBreakdownScene },\n { displayName: structureDisplayName, value: 'structure', getScene: buildStructureScene },\n { displayName: comparisonDisplayName, value: 'comparison', getScene: buildComparisonScene },\n { displayName: exceptionsDisplayName, value: 'exceptions', getScene: buildExceptionsScene },\n {\n displayName: tracesDisplayName,\n value: 'traceList',\n getScene: buildSpansScene,\n },\n];\n\nexport interface TabsBarSceneState extends SceneObjectState {}\n\nexport class TabsBarScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const styles = useStyles2(getStyles);\n const [exceptionsCount, setExceptionsCount] = useState(0);\n\n const metricScene = getTraceByServiceScene(model);\n const exploration = getTraceExplorationScene(model);\n\n const { actionView } = metricScene.useState();\n const { value: metric } = exploration.getMetricVariable().useState();\n const { allowedActionViews } = exploration.useState();\n const dataState = sceneGraph.getData(model).useState();\n const tracesCount = dataState.data?.series?.[0]?.length;\n\n const enabledViews = actionViewsDefinitions.filter((view) => {\n if (view.value === 'exceptions' && metric !== 'errors') {\n return false;\n }\n // If allowedActionViews is defined and has items, use it for filtering\n // Otherwise, include all views (except exceptions when metric is not errors, handled above)\n return !allowedActionViews?.length || allowedActionViews.includes(view.value);\n });\n\n // Get state variables that affect exceptions data\n const filtersVariable = getFiltersVariable(model);\n const primarySignalVariable = getPrimarySignalVariable(model);\n const timeRange = sceneGraph.getTimeRange(model);\n const { filters } = filtersVariable.useState();\n const { value: primarySignal } = primarySignalVariable.useState();\n const { value: timeRangeValue } = timeRange.useState();\n\n useEffect(() => {\n if (metric !== 'errors') {\n setExceptionsCount(0);\n return;\n }\n\n const exceptionsScene = getExceptionsScene(model);\n if (!exceptionsScene) {\n setExceptionsCount(0);\n return;\n }\n\n setExceptionsCount(exceptionsScene.getExceptionsCount());\n const subscription = exceptionsScene.subscribeToState((newState, prevState) => {\n if (newState.exceptionsCount !== prevState.exceptionsCount) {\n setExceptionsCount(newState.exceptionsCount || 0);\n }\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [metric, model, actionView, filters, primarySignal, timeRangeValue]);\n\n useEffect(() => {\n if (metricScene.state.hasSetView) {\n return;\n }\n\n // Set the view to traceList if the data is loaded and the traces count is greater than 20\n if (\n exploration.state.embedded &&\n dataState.data?.state === LoadingState.Done &&\n tracesCount !== undefined &&\n tracesCount > 20\n ) {\n metricScene.setState({ hasSetView: true });\n metricScene.setActionView('traceList');\n return;\n }\n }, [dataState.data?.state, exploration.state.embedded, metricScene, tracesCount]);\n\n useMount(() => {\n if (enabledViews.length === 1) {\n metricScene.setActionView(enabledViews[0].value);\n }\n });\n\n if (enabledViews.length === 1) {\n return null;\n }\n\n return (\n \n
    \n \n \n \n
    \n\n \n {enabledViews.map((tab, index) => {\n return (\n metricScene.setActionView(tab.value)}\n counter={\n tab.value === 'traceList' ? tracesCount : tab.value === 'exceptions' ? exceptionsCount : undefined\n }\n />\n );\n })}\n \n
    \n );\n };\n}\n\nfunction breakdownDisplayName(_: MetricFunction) {\n return 'Breakdown';\n}\n\nfunction comparisonDisplayName(_: MetricFunction) {\n return 'Comparison';\n}\n\nexport function structureDisplayName(metric: MetricFunction) {\n switch (metric) {\n case 'rate':\n return 'Service structure';\n case 'errors':\n return 'Root cause errors';\n case 'duration':\n return 'Root cause latency';\n }\n}\n\nfunction tracesDisplayName(metric: MetricFunction) {\n return metric === 'errors' ? 'Errored traces' : metric === 'duration' ? 'Slow traces' : 'Traces';\n}\n\nfunction exceptionsDisplayName(_: MetricFunction) {\n return 'Exceptions';\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n actions: css({\n [theme.breakpoints.up(theme.breakpoints.values.md)]: {\n position: 'absolute',\n right: 0,\n top: 5,\n zIndex: 2,\n },\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { fieldHasEmptyValues, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { MINI_PANEL_HEIGHT } from './TracesByServiceScene';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { histogramPanelConfig } from '../panels/histogram';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\nimport { StreamingIndicator } from '../StreamingIndicator';\n\nexport interface MiniREDPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n metric: MetricFunction;\n isStreaming?: boolean;\n}\n\nexport class MiniREDPanel extends SceneObjectBase {\n constructor(state: MiniREDPanelState) {\n super({\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n this.setState({ isStreaming: data.data?.state === LoadingState.Streaming });\n\n if (data.data?.state === LoadingState.Done) {\n if (data.data.series.length === 0 || data.data.series[0].length === 0 || fieldHasEmptyValues(data)) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n imgWidth: 110,\n }),\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: this.getVizPanel(this.state.metric),\n });\n }\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n private _onActivate() {\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.state.metric === 'duration' ? 24 : 64,\n datasource: explorationDS,\n queries: [this.state.metric === 'duration' ? buildHistogramQuery() : getMetricsTempoQuery({ metric: this.state.metric, sample: true })],\n }),\n transformations:\n this.state.metric === 'duration'\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(this.state.metric),\n });\n }\n\n private getVizPanel(metric: MetricFunction) {\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: metric === 'duration' ? this.getDurationVizPanel() : this.getRateOrErrorPanel(metric),\n }),\n ],\n });\n }\n\n private getRateOrErrorPanel(metric: MetricFunction) {\n const panel = barsPanelConfig(metric).setHoverHeader(true).setDisplayMode('transparent');\n if (metric === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (metric === 'errors') {\n panel.setTitle('Errors rate').setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n\n return panel.build();\n }\n\n private getDurationVizPanel() {\n return histogramPanelConfig()\n .setTitle('Histogram by duration')\n .setHoverHeader(true)\n .setDisplayMode('transparent')\n .build();\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, isStreaming } = model.useState();\n const styles = useStyles2(getStyles);\n const traceExploration = getTraceExplorationScene(model);\n\n const selectMetric = () => {\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_changed, {\n metric: model.state.metric,\n location: 'panel',\n });\n traceExploration.onChangeMetricFunction(model.state.metric);\n };\n\n if (!panel) {\n return;\n }\n\n return (\n
    \n
    \n selectMetric()}\n value={'not-selected'}\n />\n
    \n {isStreaming && (\n
    \n \n
    \n )}\n \n
    \n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flex: 1,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n paddingTop: '8px',\n\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n headerWrapper: css({\n display: 'flex',\n alignItems: 'center',\n position: 'absolute',\n top: '4px',\n left: '8px',\n zIndex: 2,\n }),\n clickable: css({\n cursor: 'pointer',\n maxHeight: MINI_PANEL_HEIGHT,\n\n ['[class*=\"loading-state-scene\"]']: {\n height: MINI_PANEL_HEIGHT,\n overflow: 'hidden',\n },\n\n ':hover': {\n background: theme.colors.background.secondary,\n input: {\n backgroundColor: '#ffffff',\n border: '5px solid #3D71D9',\n cursor: 'pointer',\n },\n },\n }),\n radioButton: css({\n display: 'block',\n }),\n indicatorWrapper: css({\n position: 'absolute',\n top: '4px',\n right: '8px',\n zIndex: 2,\n }),\n };\n}\n","import React from 'react';\n\nimport {\n DashboardCursorSync,\n GrafanaTheme2,\n MetricFindValue,\n dateTime,\n DataFrame,\n GetTagResponse,\n} from '@grafana/data';\nimport {\n behaviors,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneTimeRange,\n} from '@grafana/scenes';\n\nimport { REDPanel } from './REDPanel';\nimport {\n MakeOptional,\n explorationDS,\n VAR_FILTERS_EXPR,\n VAR_DATASOURCE_EXPR,\n MetricFunction,\n ComparisonSelection,\n ALL,\n VAR_LATENCY_THRESHOLD_EXPR,\n filterStreamingProgressTransformations,\n} from '../../../utils/shared';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { TabsBarScene, actionViewsDefinitions } from './Tabs/TabsBarScene';\nimport { isEqual } from 'lodash';\nimport {\n getDatasourceVariable,\n getGroupByVariable,\n getSpanListColumnsVariable,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { MiniREDPanel } from './MiniREDPanel';\nimport { Icon, LinkButton, Stack, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getDefaultSelectionForMetric } from '../../../utils/comparison';\nimport { map, Observable } from 'rxjs';\nimport { ActionViewType } from 'exposedComponents/types';\nimport { ExceptionsScene } from './Tabs/Exceptions/ExceptionsScene';\n\nexport interface TraceSceneState extends SceneObjectState {\n body: SceneFlexLayout;\n actionView?: ActionViewType;\n\n attributes?: string[];\n selection?: ComparisonSelection;\n hasSetView?: boolean;\n exceptionsScene?: ExceptionsScene;\n}\n\nexport class TracesByServiceScene extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['actionView', 'selection'] });\n\n public constructor(state: MakeOptional) {\n super({\n body: state.body ?? new SceneFlexLayout({ children: [] }),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n // Get the initial actionView from URL if it exists i.e. coming from a bookmark\n const params = new URLSearchParams(window.location.search);\n const urlActionView = params.get('actionView');\n if (urlActionView && actionViewsDefinitions.find((v) => v.value === urlActionView)) {\n this.setState({ actionView: urlActionView as ActionViewType });\n }\n\n this.updateBody();\n\n const exploration = getTraceExplorationScene(this);\n const metricVariable = exploration.getMetricVariable();\n this._subs.add(\n metricVariable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n const selection = getDefaultSelectionForMetric(newState.value as MetricFunction);\n if (selection) {\n this.setState({ selection });\n }\n this.updateQueryRunner(newState.value as MetricFunction);\n this.updateExceptionsScene(newState.value as MetricFunction);\n this.updateBody();\n }\n })\n );\n\n // Initialize exceptions scene for the current metric\n this.updateExceptionsScene(metricVariable.getValue() as MetricFunction);\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n const timeRange = sceneGraph.getTimeRange(this);\n const selectionFrom = newState.selection?.timeRange?.from;\n // clear selection if it's out of time range\n if (selectionFrom && selectionFrom < timeRange.state.value.from.unix()) {\n this.setState({ selection: undefined });\n }\n\n // Set group by to All when starting a comparison\n if (!isEqual(newState.selection, prevState.selection)) {\n const groupByVar = getGroupByVariable(this);\n groupByVar.changeValueTo(ALL);\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n }\n })\n );\n\n this._subs.add(\n getDatasourceVariable(this).subscribeToState(() => {\n this.updateAttributes();\n })\n );\n\n this._subs.add(\n getSpanListColumnsVariable(this).subscribeToState(() => {\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n })\n );\n\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n this.updateAttributes();\n }\n\n updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === this.state.actionView);\n\n this.setState({\n body: buildGraphScene(\n metric as MetricFunction,\n actionViewDef ? [actionViewDef?.getScene(metric as MetricFunction)] : undefined\n ),\n });\n\n if (this.state.actionView === undefined) {\n this.setActionView('breakdown');\n }\n }\n\n private updateExceptionsScene(metric: MetricFunction) {\n if (metric === 'errors') {\n if (!this.state.exceptionsScene) {\n const exceptionsScene = new ExceptionsScene({});\n this.setState({\n exceptionsScene\n });\n \n // Activate the scene after it's been set in state to ensure it starts fetching data\n setTimeout(() => {\n exceptionsScene.activate();\n }, 0);\n }\n } else {\n // Remove exceptions scene if metric is not errors\n if (this.state.exceptionsScene) {\n this.setState({\n exceptionsScene: undefined\n });\n }\n }\n }\n\n private async updateAttributes() {\n const ds = await getDataSourceSrv().get(VAR_DATASOURCE_EXPR, { __sceneObject: { value: this } });\n\n if (!ds) {\n return;\n }\n\n const timeRange = sceneGraph.getTimeRange(this);\n const options = {\n timeRange: timeRange.state.value,\n filters: []\n };\n\n ds.getTagKeys?.(options).then((tagKeys: GetTagResponse | MetricFindValue[]) => {\n let keys: MetricFindValue[] = [];\n if ('data' in tagKeys) {\n keys = (tagKeys as GetTagResponse).data;\n } else {\n keys = tagKeys;\n }\n const attributes = keys.map((l) => l.text);\n if (attributes !== this.state.attributes) {\n this.setState({ attributes });\n }\n });\n }\n\n getUrlState() {\n return {\n actionView: this.state.actionView,\n selection: this.state.selection ? JSON.stringify(this.state.selection) : undefined,\n };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n if (typeof values.actionView === 'string') {\n if (this.state.actionView !== values.actionView) {\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === values.actionView);\n if (actionViewDef) {\n this.setActionView(actionViewDef.value);\n }\n }\n } else if (values.actionView === null) {\n this.setActionView('breakdown');\n }\n\n if (typeof values.selection === 'string') {\n const newSelection = JSON.parse(values.selection);\n if (!isEqual(newSelection, this.state.selection)) {\n this.setState({ selection: newSelection });\n }\n }\n }\n\n onUserUpdateSelection(newSelection: ComparisonSelection) {\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState({ selection: newSelection });\n });\n }\n\n public setActionView(actionView?: ActionViewType) {\n const { body } = this.state;\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === actionView);\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n\n if (body.state.children.length > 1) {\n if (actionViewDef) {\n let scene: SceneObject;\n if (actionView === 'exceptions' && this.state.exceptionsScene) {\n // Use the persistent exceptions scene to maintain data subscription\n scene = new SceneFlexItem({\n body: this.state.exceptionsScene,\n });\n } else {\n scene = actionViewDef.getScene(metric as MetricFunction);\n }\n \n body.setState({\n children: [...body.state.children.slice(0, 2), scene],\n });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.action_view_changed, {\n oldAction: this.state.actionView,\n newAction: actionView,\n });\n this.setState({ actionView: actionViewDef.value });\n }\n }\n }\n\n private updateQueryRunner(metric: MetricFunction) {\n const selection = this.state.selection;\n const columns = getSpanListColumnsVariable(this).getValue()?.toString() ?? '';\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(metric, columns, selection)],\n $timeRange: timeRangeFromSelection(selection),\n }),\n transformations: [...filterStreamingProgressTransformations, ...spanListTransformations],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n <>\n
    \n } placement={'right-start'} interactive>\n \n Select metric type \n \n \n
    \n \n \n );\n };\n}\n\nconst MetricTypeTooltip = () => {\n const styles = useStyles2(getStyles);\n\n return (\n \n
    RED metrics for traces
    \n \n Explore rate, errors, and duration (RED) metrics generated from traces by Tempo.\n \n
    \n
    \n Rate - Spans per second that match your filter, useful to\n find unusual spikes in activity\n
    \n
    \n Errors -Spans that are failing, overall issues in tracing\n ecosystem\n
    \n
    \n Duration - Amount of time those spans take, represented as a\n heat map (responds time, latency)\n
    \n
    \n\n
    \n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_docs_link_clicked)\n }\n >\n Read documentation\n \n
    \n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n title: css({\n label: 'title',\n display: 'flex',\n gap: theme.spacing.x0_5,\n fontSize: theme.typography.bodySmall.fontSize,\n paddingBottom: theme.spacing.x0_5,\n alignItems: 'center',\n }),\n hand: css({\n label: 'hand',\n cursor: 'pointer',\n }),\n tooltip: {\n label: 'tooltip',\n title: css({\n fontSize: '14px',\n fontWeight: 500,\n }),\n subtitle: css({\n marginBottom: theme.spacing.x1,\n }),\n text: css({\n label: 'text',\n color: theme.colors.text.secondary,\n\n div: {\n marginBottom: theme.spacing.x0_5,\n },\n }),\n emphasize: css({\n label: 'emphasize',\n color: theme.colors.text.primary,\n }),\n button: css({\n marginBottom: theme.spacing.x0_5,\n }),\n },\n };\n}\n\nconst MAIN_PANEL_HEIGHT = 240;\nexport const MINI_PANEL_HEIGHT = (MAIN_PANEL_HEIGHT - 8) / 2;\n\nexport function buildQuery(type: MetricFunction, columns: string, selection?: ComparisonSelection) {\n const selectQuery = columns !== '' ? ` | select(${columns})` : '';\n let typeQuery = '';\n switch (type) {\n case 'errors':\n typeQuery = ' && status = error';\n break;\n case 'duration':\n if (selection) {\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n typeQuery += '&& ' + duration.join(' && ');\n }\n }\n if (!typeQuery.length) {\n typeQuery = `&& duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n }\n break;\n }\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}${typeQuery}}${selectQuery}`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 200,\n spss: 10,\n filters: [],\n };\n}\n\nfunction timeRangeFromSelection(selection?: ComparisonSelection) {\n const fromTimerange = (selection?.timeRange?.from || 0) * 1000;\n const toTimerange = (selection?.timeRange?.to || 0) * 1000;\n return fromTimerange && toTimerange\n ? new SceneTimeRange({\n from: fromTimerange.toFixed(0),\n to: toTimerange.toFixed(0),\n value: {\n from: dateTime(fromTimerange),\n to: dateTime(toTimerange),\n raw: { from: dateTime(fromTimerange), to: dateTime(toTimerange) },\n },\n })\n : undefined;\n}\n\nfunction buildGraphScene(metric: MetricFunction, children?: SceneObject[]) {\n const secondaryPanel =\n metric === 'rate'\n ? new MiniREDPanel({ metric: 'errors' })\n : new MiniREDPanel({\n metric: 'rate',\n });\n\n const tertiaryPanel =\n metric === 'duration'\n ? new MiniREDPanel({\n metric: 'errors',\n })\n : new MiniREDPanel({ metric: 'duration' });\n\n return new SceneFlexLayout({\n direction: 'column',\n $behaviors: [\n new behaviors.CursorSync({\n key: 'metricCrosshairSync',\n sync: DashboardCursorSync.Crosshair,\n }),\n ],\n children: [\n new SceneFlexLayout({\n direction: 'row',\n ySizing: 'content',\n children: [\n new SceneFlexItem({\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n width: '60%',\n body: new REDPanel({}),\n }),\n new SceneFlexLayout({\n direction: 'column',\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n children: [\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n body: secondaryPanel,\n }),\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n ySizing: 'fill',\n\n body: tertiaryPanel,\n }),\n ],\n }),\n ],\n }),\n new SceneFlexItem({\n ySizing: 'content',\n body: new TabsBarScene({}),\n }),\n ...(children || []),\n ],\n });\n}\n\nconst spanListTransformations = [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => ({\n ...df,\n fields: df.fields.filter((f) => !f.name.startsWith('nestedSet')),\n }));\n })\n );\n },\n {\n id: 'sortBy',\n options: {\n fields: {},\n sort: [\n {\n field: 'Duration',\n desc: true,\n },\n ],\n },\n },\n {\n id: 'organize',\n options: {\n indexByName: {\n 'Start time': 0,\n status: 1,\n 'Trace Service': 2,\n 'Trace Name': 3,\n Duration: 4,\n 'Span ID': 5,\n 'span.http.method': 6,\n 'span.http.request.method': 7,\n 'span.http.path': 8,\n 'span.http.route': 9,\n 'span.http.status_code': 10,\n 'span.http.response.status_code': 11,\n },\n },\n },\n];\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { EmptyState } from './EmptyState';\n\ninterface EmptyStateSceneState extends SceneObjectState {\n message?: string;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport class EmptyStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message, remedyMessage, imgWidth, padding } = model.useState();\n return ;\n };\n}\n","import React from 'react';\n\nimport { DataFrame } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, AdHocFiltersVariable } from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\nimport { getFiltersVariable, getLabelValue } from '../../../utils/utils';\nimport { DATABASE_CALLS_KEY } from 'pages/Explore/primary-signals';\n\nexport interface AddToFiltersActionState extends SceneObjectState {\n frame: DataFrame;\n onClick: (payload: any) => void;\n labelKey?: string;\n}\n\nexport class AddToFiltersAction extends SceneObjectBase {\n public onClick = () => {\n const variable = getFiltersVariable(this);\n\n const labels = this.state.frame.fields.find((f) => f.labels)?.labels ?? {};\n if (this.state.labelKey) {\n if (!labels[this.state.labelKey]) {\n return;\n }\n } else {\n if (Object.keys(labels).length !== 1) {\n return;\n }\n }\n\n const labelName = this.state.labelKey ?? Object.keys(labels)[0];\n const value = getLabelValue(this.state.frame, this.state.labelKey);\n\n addToFilters(variable, labelName, value);\n\n this.state.onClick({ labelName });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const key = model.state?.labelKey ?? '';\n const field = model.state?.frame.fields.filter((x) => x.type !== 'time');\n const value = field?.[0]?.labels?.[key] ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n if (!filterExists) {\n return (\n \n );\n }\n return <>;\n };\n}\n\nexport const addToFilters = (variable: AdHocFiltersVariable, label: string, value: string) => {\n // ensure we set the new filter with latest value\n // and remove any existing filter for the same key\n // and also keep span.db.system.name as it is a primary filter\n const filtersWithoutNew = variable.state.filters.filter((f) => f.key === DATABASE_CALLS_KEY || f.key !== label);\n\n // TODO: Replace it with new API introduced in https://github.com/grafana/scenes/issues/1103\n // At the moment AdHocFiltersVariable doesn't support pushing new history entry on change\n history.pushState(null, '');\n\n variable.setState({\n filters: [\n ...filtersWithoutNew,\n {\n key: label,\n operator: '=',\n value: value,\n },\n ],\n });\n};\n\nexport const filterExistsForKey = (model: AdHocFiltersVariable, key: string, value: string) => {\n const variable = getFiltersVariable(model);\n return variable.state.filters.find((f) => f.key === key && f.value === value);\n};\n","import { VAR_FILTERS_EXPR } from '../../../utils/shared';\n\nexport function buildHistogramQuery() {\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | histogram_over_time(duration) with(sample=true)`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1000,\n spss: 10,\n filters: [],\n };\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n index: number;\n type: HomepagePanelType;\n label: string;\n labelTitle: string;\n value: string;\n valueTitle: string;\n url: string;\n};\n\nexport const AttributePanelRow = (props: Props) => {\n const { index, type, label, labelTitle, value, valueTitle, url } = props;\n const styles = useStyles2(getStyles);\n\n return (\n
    \n {index === 0 && (\n
    \n {labelTitle}\n {valueTitle}\n
    \n )}\n\n {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.panel_row_clicked, {\n type,\n index,\n value,\n });\n locationService.push(url);\n }}\n >\n
    {label}
    \n\n
    \n {value}\n \n
    \n
    \n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n rowHeader: css({\n color: theme.colors.text.secondary,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(1)} ${theme.spacing(2)}`,\n }),\n valueTitle: css({\n margin: '0 45px 0 0',\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: theme.spacing(2),\n padding: `${theme.spacing(0.75)} ${theme.spacing(2)}`,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n cursor: 'pointer',\n '.rowLabel': {\n textDecoration: 'underline',\n },\n },\n }),\n action: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actionText: css({\n color: '#d5983c',\n padding: `0 ${theme.spacing(1)}`,\n width: 'max-content',\n }),\n actionIcon: css({\n cursor: 'pointer',\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const ErroredServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'errors',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getTotalErrs = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
    \n {series\n .sort((a, b) => getTotalErrs(b) - getTotalErrs(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, Field, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE, ROUTES } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestTracesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const durField = series[0].fields.find((f) => f.name === 'duration');\n if (durField && durField.values) {\n const sortedByDuration = durField?.values\n .map((_, i) => i)\n ?.sort((a, b) => durField?.values[b] - durField?.values[a]);\n const sortedFields = series[0].fields.map((f) => {\n return {\n ...f,\n values: sortedByDuration?.map((i) => f.values[i]),\n };\n });\n\n const getLabel = (traceServiceField: Field | undefined, traceNameField: Field | undefined, index: number) => {\n let label = '';\n if (traceServiceField?.values[index]) {\n label = traceServiceField.values[index];\n }\n if (traceNameField?.values[index]) {\n label = label.length === 0 ? traceNameField.values[index] : `${label}: ${traceNameField.values[index]}`;\n }\n return label.length === 0 ? 'Trace service & name not found' : label;\n };\n\n const getUrl = (\n traceId: string,\n spanIdField: Field | undefined,\n traceServiceField: Field | undefined,\n index: number\n ) => {\n if (!spanIdField || !spanIdField.values[index] || !traceServiceField || !traceServiceField.values[index]) {\n console.error('SpanId or traceService not found');\n return ROUTES.Explore;\n }\n\n const params = {\n traceId,\n spanId: spanIdField.values[index],\n 'var-filters': `resource.service.name|=|${traceServiceField.values[index]}`,\n 'var-metric': 'duration',\n };\n\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (durationField: Field | undefined, index: number) => {\n if (!durationField || !durationField.values) {\n return 'Duration not found';\n }\n\n return formatDuration(durationField.values[index] / 1000);\n };\n\n const traceIdField = sortedFields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = sortedFields.find((f) => f.name === 'spanID');\n const traceNameField = sortedFields.find((f) => f.name === 'traceName');\n const traceServiceField = sortedFields.find((f) => f.name === 'traceService');\n const durationField = sortedFields.find((f) => f.name === 'duration');\n\n return (\n
    \n {traceIdField?.values?.map((traceId, index) => (\n \n \n \n ))}\n
    \n );\n }\n return null;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'duration',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
    \n {series\n .sort((a, b) => getDuration(b) - getDuration(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { HomepagePanelType } from './AttributePanel';\nimport { ErroredServicesRows } from './ErroredServicesRows';\nimport { SlowestTracesRows } from './SlowestTracesRows';\nimport { SlowestServicesRows } from './SlowestServicesRows';\n\ntype Props = {\n series?: DataFrame[];\n type: HomepagePanelType;\n message?: string;\n};\n\nexport const AttributePanelRows = (props: Props) => {\n const { series, type, message } = props;\n const styles = useStyles2(getStyles);\n\n if (message) {\n return (\n
    \n
    \n \n {message}\n
    \n
    \n );\n }\n\n if (series && series.length > 0) {\n switch (type) {\n case 'slowest-traces':\n return ;\n case 'errored-services':\n return ;\n case 'slowest-services':\n return ;\n }\n }\n return
    No series data
    ;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n icon: css({\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n message: css({\n display: 'flex',\n gap: theme.spacing(1.5),\n margin: `${theme.spacing(2)} auto`,\n width: '60%',\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { AttributePanelRows } from './AttributePanelRows';\nimport { HomepagePanelType } from './AttributePanel';\n\ninterface AttributePanelSceneState extends SceneObjectState {\n series?: DataFrame[];\n title: string;\n type: HomepagePanelType;\n message?: string;\n}\n\nexport class AttributePanelScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { series, title, type, message } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
    \n
    \n \n {title}\n
    \n \n
    \n );\n };\n}\n\nfunction getIcon(type: HomepagePanelType) {\n switch (type) {\n case 'slowest-services':\n return 'clock-nine';\n case 'slowest-traces':\n return 'crosshair';\n case 'errored-services':\n return 'exclamation-triangle';\n default:\n return 'exclamation-triangle';\n }\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.isDark ? theme.colors.text.secondary : theme.colors.text.primary,\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderTopLeftRadius: theme.spacing(0.5),\n borderTopRightRadius: theme.spacing(0.5),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n }),\n titleText: css({\n marginLeft: theme.spacing(1),\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { MINI_PANEL_HEIGHT } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { AttributePanelScene } from './AttributePanelScene';\nimport Skeleton from 'react-loading-skeleton';\nimport { getErrorMessage, getNoDataMessage } from 'utils/utils';\nimport { getMinimumsForDuration, getYBuckets } from 'components/Explore/TracesByService/REDPanel';\n\nexport type HomepagePanelType = 'errored-services' | 'slowest-services' | 'slowest-traces';\n\nexport interface AttributePanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n query: {\n query: string;\n step?: string;\n };\n title: string;\n type: HomepagePanelType;\n renderDurationPanel?: boolean;\n filter?: string;\n}\n\nexport class AttributePanel extends SceneObjectBase {\n constructor(state: AttributePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', queryType: 'traceql', tableType: 'spans', limit: 10, ...state.query, exemplars: 0 }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (\n data.data?.state === LoadingState.Done &&\n (data.data.series.length === 0 || data.data.series[0].length === 0)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getNoDataMessage(state.title.toLowerCase()),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data.series.length > 0) {\n if (state.type !== 'slowest-traces' || state.renderDurationPanel) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n series: data.data.series,\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data?.state === LoadingState.Done) {\n let yBuckets = getYBuckets(data.data?.series ?? []);\n if (yBuckets?.length) {\n const { minDuration } = getMinimumsForDuration(yBuckets);\n\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanel({\n query: {\n query: `{nestedSetParent<0 && duration > ${minDuration} ${state.filter ?? ''}}`,\n },\n title: state.title,\n type: state.type,\n renderDurationPanel: true,\n }),\n ],\n }),\n });\n }\n }\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getErrorMessage(data),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
    \n \n
    \n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n minWidth: '350px',\n width: '-webkit-fill-available',\n }),\n };\n}\n\nexport const SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
    \n
    \n \n
    \n
    \n {[...Array(11)].map((_, i) => (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n ))}\n
    \n
    \n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.colors.text.secondary,\n backgroundColor: theme.colors.background.secondary,\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n textAlign: 'center',\n }),\n tracesContainer: css({\n padding: `13px ${theme.spacing(2)}`,\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n rowLeft: css({\n margin: '7px 0',\n width: '150px',\n }),\n rowRight: css({\n width: '50px',\n }),\n };\n}\n","import React from \"react\";\n\nexport const LightModeRocket = () => (\n \n \n \n);\n\nexport const DarkModeRocket = () => (\n \n \n \n);\n","import { ACTION_VIEW, PRIMARY_SIGNAL, VAR_FILTERS, FILTER_SEPARATOR, BOOKMARKS_LS_KEY, EXPLORATIONS_ROUTE, VAR_LATENCY_PARTIAL_THRESHOLD, VAR_LATENCY_THRESHOLD, SELECTION, VAR_METRIC } from \"utils/shared\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { urlUtil } from \"@grafana/data\";\nimport { locationService, usePluginUserStorage } from '@grafana/runtime';\nimport { USER_EVENTS_ACTIONS, USER_EVENTS_PAGES, reportAppInteraction } from \"utils/analytics\";\n\ntype PluginStorage = ReturnType;\n\nconst cleanupParams = (params: URLSearchParams) => {\n // Remove selection, latency threshold, and latency partial threshold because\n // selection keeps changing as time moves on, so it's not a good match for bookmarking\n params.delete(SELECTION);\n params.delete(`var-${VAR_LATENCY_THRESHOLD}`);\n params.delete(`var-${VAR_LATENCY_PARTIAL_THRESHOLD}`);\n return params;\n}\n\nexport const useBookmarksStorage = () => {\n const storage = usePluginUserStorage();\n \n return {\n getBookmarks: () => getBookmarks(storage),\n removeBookmark: (bookmark: Bookmark) => removeBookmark(storage, bookmark),\n bookmarkExists: (bookmark: Bookmark) => bookmarkExists(storage, bookmark),\n toggleBookmark: () => toggleBookmark(storage),\n };\n};\n\nexport const getBookmarkParams = (bookmark: Bookmark) => {\n if (!bookmark || !bookmark.params) {\n return { actionView: '', primarySignal: '', filters: '', metric: '' };\n }\n \n const params = new URLSearchParams(bookmark.params);\n const actionView = params.get(ACTION_VIEW) ?? '';\n const primarySignal = params.get(PRIMARY_SIGNAL) ?? '';\n const filters = params.getAll(`var-${VAR_FILTERS}`).join(FILTER_SEPARATOR);\n const metric = params.get(`var-${VAR_METRIC}`) ?? '';\n return { actionView, primarySignal, filters, metric };\n}\n\nexport const getBookmarkFromURL = (): Bookmark => {\n const params = cleanupParams(new URLSearchParams(window.location.search));\n return { params: params.toString() };\n}\n\nexport const getBookmarkForUrl = (bookmark: Bookmark): string => {\n if (!bookmark || !bookmark.params) {\n return EXPLORATIONS_ROUTE;\n }\n \n const params = new URLSearchParams(bookmark.params);\n const urlQueryMap = Object.fromEntries(params.entries());\n \n const filters = params.getAll(`var-${VAR_FILTERS}`); \n \n const url = urlUtil.renderUrl(EXPLORATIONS_ROUTE, {\n ...urlQueryMap,\n [`var-${VAR_FILTERS}`]: filters // Filters need to be added as separate params in the url as there are multiple filters with the same key\n });\n \n return url;\n}\n\nconst setBookmarks = async (storage: PluginStorage, bookmarks: Bookmark[]): Promise => {\n try {\n await storage.setItem(BOOKMARKS_LS_KEY, JSON.stringify(bookmarks));\n } catch (e) {\n console.error(\"Failed to save bookmarks to storage:\", e);\n }\n};\n\nexport const getBookmarks = async (storage: PluginStorage): Promise => {\n try {\n const value = await storage.getItem(BOOKMARKS_LS_KEY);\n if (value) {\n return JSON.parse(value);\n }\n return [];\n } catch (e) {\n console.error(\"Failed to get bookmarks from storage:\", e);\n return [];\n }\n};\n\nexport const toggleBookmark = async (storage: PluginStorage): Promise => {\n const bookmark = getBookmarkFromURL();\n const exists = await bookmarkExists(storage, bookmark);\n \n if (exists) {\n await removeBookmark(storage, bookmark);\n return false;\n } else {\n await addBookmark(storage, bookmark);\n return true;\n }\n};\n\nconst addBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n bookmarks.push(bookmark);\n await setBookmarks(storage, bookmarks);\n};\n\nexport const removeBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const storedBookmarks = await getBookmarks(storage);\n const filteredBookmarks = storedBookmarks.filter((storedBookmark) => !areBookmarksEqual(bookmark, storedBookmark));\n await setBookmarks(storage, filteredBookmarks);\n};\n\nexport const bookmarkExists = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n return bookmarks.some((b) => areBookmarksEqual(bookmark, b));\n};\n\nexport const areBookmarksEqual = (bookmark: Bookmark, storedBookmark: Bookmark) => {\n const bookmarkParams = cleanupParams(new URLSearchParams(bookmark.params));\n const storedBookmarkParams = cleanupParams(new URLSearchParams(storedBookmark.params));\n\n const filterKey = `var-${VAR_FILTERS}`;\n const bookmarkKeys = Array.from(bookmarkParams.keys()).filter(k => k !== filterKey);\n const storedKeys = Array.from(storedBookmarkParams.keys()).filter(k => k !== filterKey);\n\n // If they have different number of keys (excluding filters), they can't be equal\n if (bookmarkKeys.length !== storedKeys.length) {\n return false;\n }\n \n // Check if every key in bookmarkParams exists in storedBookmarkParams with the same value\n const allKeysMatch = bookmarkKeys.every(key => \n storedBookmarkParams.has(key) && bookmarkParams.get(key) === storedBookmarkParams.get(key)\n ); \n if (!allKeysMatch) {\n return false;\n }\n \n // Compare filters (which can have multiple values with the same key)\n const bookmarkFilters = bookmarkParams.getAll(filterKey);\n const storedFilters = storedBookmarkParams.getAll(filterKey); \n if (bookmarkFilters.length !== storedFilters.length) {\n return false;\n }\n \n // Check if every filter in bookmarkFilters exists in storedFilters\n // This handles cases where order might be different\n return bookmarkFilters.every(filter => storedFilters.includes(filter));\n}\n\nexport const goToBookmark = (bookmark: Bookmark) => {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.go_to_bookmark_clicked);\n const url = getBookmarkForUrl(bookmark);\n locationService.push(url);\n}\n","import { EVENT_ATTR, FILTER_SEPARATOR, RESOURCE_ATTR, SPAN_ATTR } from \"utils/shared\";\nimport React from \"react\";\nimport { capitalizeFirstChar } from \"utils/utils\";\nimport { css } from \"@emotion/css\";\nimport { useStyles2 } from \"@grafana/ui\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { getBookmarkParams } from \"./utils\";\nimport { getSignalForKey } from \"pages/Explore/primary-signals\";\n\nexport const BookmarkItem = ({ bookmark }: { bookmark: Bookmark }) => {\n let { actionView, primarySignal, metric, filters } = getBookmarkParams(bookmark);\n const styles = useStyles2(getStyles);\n\n const getPrimarySignalFilter = (primarySignal: string): string => {\n const signalData = getSignalForKey(primarySignal);\n if (!signalData || !signalData.filter) {\n return '';\n }\n const filter = signalData.filter;\n\n if (filter.key && filter.operator && filter.value !== undefined) {\n return `${filter.key}|${filter.operator}|${filter.value}`;\n }\n return '';\n }\n \n // Don't render the primary signal filter as the primary signal already represents this information\n const getFiltersWithoutPrimarySignal = (filters: string, primarySignal: string): string => {\n const primarySignalFilter = getPrimarySignalFilter(primarySignal);\n let filtersArray = filters.split(FILTER_SEPARATOR);\n filtersArray = filtersArray.filter(f => f !== primarySignalFilter);\n return filtersArray.join(FILTER_SEPARATOR);\n }\n\n filters = getFiltersWithoutPrimarySignal(filters, primarySignal);\n filters = filters.replace(/\\|=\\|/g, ' = ');\n filters = filters.replace(RESOURCE_ATTR, '').replace(SPAN_ATTR, '').replace(EVENT_ATTR, '');\n\n return (\n
    \n
    \n {capitalizeFirstChar(metric)} of {primarySignal.replace('_', ' ')} ({actionView})\n
    \n
    \n {filters}\n
    \n
    \n );\n}\n\nfunction getStyles() {\n return {\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n }\n}\n","import { css } from \"@emotion/css\";\nimport { GrafanaTheme2 } from \"@grafana/data\";\nimport { Button, useStyles2, LoadingPlaceholder } from \"@grafana/ui\";\nimport React, { useEffect, useState } from \"react\";\nimport { BookmarkItem } from \"./BookmarkItem\";\nimport { useBookmarksStorage, goToBookmark } from \"./utils\";\n\nexport type Bookmark = {\n params: string;\n}\n\nexport const Bookmarks = () => {\n const styles = useStyles2(getStyles);\n const { getBookmarks, removeBookmark } = useBookmarksStorage();\n const [bookmarks, setBookmarks] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [isRemoving, setIsRemoving] = useState(false);\n\n useEffect(() => {\n const fetchBookmarks = async () => {\n setIsLoading(true);\n try {\n const loadedBookmarks = await getBookmarks();\n setBookmarks(loadedBookmarks);\n } catch (error) {\n console.error('Error loading bookmarks:', error);\n setBookmarks([]);\n } finally {\n setIsLoading(false);\n }\n };\n \n fetchBookmarks();\n }, []);\n\n const removeBookmarkClicked = async (bookmark: Bookmark, event: React.MouseEvent) => {\n event.stopPropagation();\n setIsRemoving(true);\n \n try {\n await removeBookmark(bookmark);\n const updatedBookmarks = await getBookmarks();\n setBookmarks(updatedBookmarks);\n } catch (error) {\n console.error('Error removing bookmark:', error);\n } finally {\n setIsRemoving(false);\n }\n };\n\n if (isLoading) {\n return (\n
    \n
    \n

    Or view bookmarks

    \n
    \n
    \n \n
    \n
    \n );\n }\n\n return (\n
    \n
    \n

    Or view bookmarks

    \n
    \n {bookmarks.length === 0 ? (\n

    Bookmark your favorite queries to view them here.

    \n ) : (\n
    \n {bookmarks.map((bookmark: Bookmark, i: number) => (\n
    goToBookmark(bookmark)}\n >\n
    \n \n
    \n
    \n
    \n
    \n ))}\n
    \n )}\n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n header: css({\n textAlign: 'center',\n 'h4': {\n margin: 0,\n }\n }),\n bookmarks: css({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n justifyContent: 'center',\n }),\n bookmark: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n cursor: 'pointer',\n width: '318px',\n border: `1px solid ${theme.colors.border.medium}`,\n borderRadius: theme.shape.radius.default,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n }\n }),\n bookmarkItem: css({\n padding: `${theme.spacing(1.5)} ${theme.spacing(1.5)} 0 ${theme.spacing(1.5)}`,\n overflow: 'hidden'\n }),\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n remove: css({\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n noBookmarks: css({\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n textAlign: 'center',\n }),\n loading: css({\n display: 'flex',\n justifyContent: 'center',\n margin: `${theme.spacing(4)} 0`,\n }),\n }\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneObjectBase,\n} from '@grafana/scenes';\nimport { Button, Icon, LinkButton, Stack, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport {\n EXPLORATIONS_ROUTE,\n} from '../../utils/shared';\nimport { getDatasourceVariable, getHomeFilterVariable, getHomeScene } from '../../utils/utils';\nimport { DarkModeRocket, LightModeRocket } from '../../utils/rockets';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { Home } from 'pages/Home/Home';\nimport { useNavigate } from 'react-router-dom';\nimport { Bookmarks } from 'pages/Home/bookmarks/Bookmarks';\n\nexport class HeaderScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const home = getHomeScene(model);\n const navigate = useNavigate();\n const { controls } = home.useState();\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n\n const dsVariable = getDatasourceVariable(home);\n const filterVariable = getHomeFilterVariable(home);\n\n return (\n
    \n
    \n
    \n {theme.isDark ? : }\n

    Start your traces exploration!

    \n
    \n
    \n

    Drilldown and visualize your trace data without writing a query.

    \n
    \n \n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.read_documentation_clicked)}\n >\n Read documentation\n \n
    \n
    \n
    \n\n \n\n
    \n

    Or quick-start into your tracing data

    \n
    \n\n \n
    \n
    \n {dsVariable && (\n \n
    Data source
    \n \n
    \n )}\n {filterVariable && (\n \n
    Filter
    \n \n
    \n )}\n
    \n\n
    \n {controls?.map((control) => (\n \n ))}\n
    \n
    \n
    \n
    \n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n gap: theme.spacing(7),\n flexDirection: 'column',\n margin: `0 0 ${theme.spacing(4)} 0`,\n justifyContent: 'center',\n }),\n header: css({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderRadius: theme.spacing(0.5),\n flexWrap: 'wrap',\n justifyContent: 'center',\n padding: theme.spacing(3),\n gap: theme.spacing(4),\n }),\n headerTitleContainer: css({\n display: 'flex',\n alignItems: 'center',\n }),\n title: css({\n margin: `0 0 0 ${theme.spacing(2)}`,\n }),\n\n headerActions: css({\n alignItems: 'center',\n justifyContent: 'flex-start',\n display: 'flex',\n gap: theme.spacing(2),\n }),\n documentationLink: css({\n textDecoration: 'underline',\n '&:hover': {\n textDecoration: 'underline',\n },\n }),\n\n subHeader: css({\n textAlign: 'center',\n 'h4': {\n margin: `0 0 -${theme.spacing(2)} 0`,\n }\n }),\n\n label: css({\n fontSize: '12px',\n }),\n variablesAndControls: css({\n alignItems: 'center',\n gap: theme.spacing(2),\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }),\n variables: css({\n display: 'flex',\n gap: theme.spacing(2),\n }),\n controls: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { AdHocVariableFilter, MetricFindValue } from \"@grafana/data\";\nimport { getDataSourceSrv, DataSourceWithBackend } from \"@grafana/runtime\";\nimport { AdHocFiltersVariable, sceneGraph } from \"@grafana/scenes\";\nimport { EVENT_ATTR, EVENT_INTRINSIC, FILTER_SEPARATOR, ignoredAttributes, ignoredAttributesHomeFilter, RESOURCE_ATTR, SPAN_ATTR, VAR_DATASOURCE_EXPR } from \"utils/shared\";\nimport { isNumber } from \"utils/utils\";\n\nexport async function getTagKeysProvider(variable: AdHocFiltersVariable): Promise<{replace?: boolean, values: MetricFindValue[]}> {\n const dsVar = sceneGraph.interpolate(variable, VAR_DATASOURCE_EXPR);\n const datasource_ = await getDataSourceSrv().get(dsVar);\n if (!(datasource_ instanceof DataSourceWithBackend)) {\n console.error(new Error('getTagKeysProvider: invalid datasource!'));\n throw new Error('getTagKeysProvider: invalid datasource!');\n }\n \n const datasource = datasource_ as DataSourceWithBackend;\n if (datasource && datasource.getTagKeys) {\n const tagKeys = await datasource.getTagKeys();\n\n if (Array.isArray(tagKeys)) {\n const filteredKeys = filterKeys(tagKeys);\n return { replace: true, values: filteredKeys };\n } else {\n console.error(new Error('getTagKeysProvider: invalid tagKeys!'));\n return { values: [] };\n }\n } else {\n console.error(new Error('getTagKeysProvider: missing or invalid datasource!'));\n return { values: [] };\n }\n}\n\nexport function filterKeys(keys: MetricFindValue[]): MetricFindValue[] {\n const resourceAttributes = keys.filter((k) => k.text?.includes(RESOURCE_ATTR));\n const spanAttributes = keys.filter((k) => k.text?.includes(SPAN_ATTR));\n const otherAttributes = keys.filter((k) => {\n return !k.text?.includes(RESOURCE_ATTR) && !k.text?.includes(SPAN_ATTR)\n && !k.text?.includes(EVENT_ATTR) && !k.text?.includes(EVENT_INTRINSIC)\n && ignoredAttributes.concat(ignoredAttributesHomeFilter).indexOf(k.text!) === -1;\n })\n return [...resourceAttributes, ...spanAttributes, ...otherAttributes];\n}\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join(FILTER_SEPARATOR);\n return expr.length ? `&& ${expr}` : '';\n}\n\nconst renderFilter = (filter: AdHocVariableFilter) => {\n if (!filter) {\n return '';\n } \n \n let val = filter.value;\n if (val === undefined || val === null || val === '') {\n return '';\n }\n\n if (!isNumber.test(val) && !['kind'].includes(filter.key)) {\n if (typeof val === 'string' && !val.startsWith('\"') && !val.endsWith('\"')) {\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\n\nimport { AdHocVariableFilter, GrafanaTheme2 } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n DataSourceVariable,\n SceneComponentProps,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneTimeRangeLike,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { useStyles2 } from '@grafana/ui';\n\nimport {\n DATASOURCE_LS_KEY,\n explorationDS,\n HOMEPAGE_FILTERS_LS_KEY,\n VAR_DATASOURCE,\n VAR_HOME_FILTER,\n} from '../../utils/shared';\nimport { AttributePanel } from 'components/Home/AttributePanel';\nimport { HeaderScene } from 'components/Home/HeaderScene';\nimport { getDatasourceVariable, getHomeFilterVariable } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getTagKeysProvider, renderTraceQLLabelFilters } from './utils';\n\nexport interface HomeState extends SceneObjectState {\n controls?: SceneObject[];\n initialDS?: string;\n initialFilters: AdHocVariableFilter[];\n body?: SceneCSSGridLayout;\n}\n\nexport class Home extends SceneObjectBase {\n public constructor(state: HomeState) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state.initialFilters, state.initialDS),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const filterVariable = getHomeFilterVariable(this);\n filterVariable.setState({\n getTagKeysProvider: getTagKeysProvider,\n });\n\n getDatasourceVariable(this).subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n getHomeFilterVariable(this).subscribeToState((newState, prevState) => {\n if (newState.filters !== prevState.filters) {\n this.buildPanels(sceneTimeRange, newState.filters);\n\n // save the filters to local storage\n localStorage.setItem(HOMEPAGE_FILTERS_LS_KEY, JSON.stringify(newState.filters));\n\n const newFilters = newState.filters.filter((f) => !prevState.filters.find((pf) => pf.key === f.key));\n if (newFilters.length > 0) {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.filter_changed, {\n key: newFilters[0].key,\n });\n }\n }\n });\n\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n });\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n\n buildPanels(sceneTimeRange: SceneTimeRangeLike, filters: AdHocVariableFilter[]) {\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n const renderedFilters = renderTraceQLLabelFilters(filters);\n\n this.setState({\n body: new SceneCSSGridLayout({\n children: [\n new SceneCSSGridLayout({\n autoRows: 'min-content',\n columnGap: 2,\n rowGap: 2,\n children: [\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 && status = error ${renderedFilters}} | count_over_time() by (resource.service.name)`,\n step: durString,\n },\n title: 'Errored services',\n type: 'errored-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 ${renderedFilters}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,\n step: durString,\n },\n title: 'Slow services',\n type: 'slowest-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent<0 ${renderedFilters}} | histogram_over_time(duration)`,\n },\n title: 'Slow traces',\n type: 'slowest-traces',\n filter: renderedFilters,\n }),\n }),\n ],\n }),\n ],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
    \n \n {body && }\n
    \n );\n };\n}\n\nfunction getVariableSet(initialFilters: AdHocVariableFilter[], initialDS?: string) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: initialDS,\n pluginId: 'tempo',\n }),\n new AdHocFiltersVariable({\n name: VAR_HOME_FILTER,\n datasource: explorationDS,\n layout: 'combobox',\n filters: initialFilters,\n allowCustomValue: true,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n margin: `${theme.spacing(4)} auto`,\n width: '75%',\n\n '@media (max-width: 900px)': {\n width: '95%',\n },\n }),\n };\n}\n","import { AdHocVariableFilter, DataFrame, urlUtil } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n CustomVariable,\n DataSourceVariable,\n SceneDataQuery,\n SceneDataState,\n sceneGraph,\n SceneObject,\n SceneObjectUrlValues,\n SceneTimeRange,\n sceneUtils,\n} from '@grafana/scenes';\n\nimport { TraceExploration } from '../pages/Explore';\nimport {\n EventTraceOpened,\n EXPLORATIONS_ROUTE,\n VAR_DATASOURCE,\n VAR_DATASOURCE_EXPR,\n VAR_FILTERS,\n VAR_GROUPBY,\n VAR_HOME_FILTER,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from './shared';\nimport { TracesByServiceScene } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { Home } from 'pages/Home/Home';\nimport { PrimarySignalVariable } from 'pages/Explore/PrimarySignalVariable';\nimport { ActionViewType } from 'exposedComponents/types';\nimport { ExceptionsScene } from 'components/Explore/TracesByService/Tabs/Exceptions/ExceptionsScene';\n\nexport function getTraceExplorationScene(model: SceneObject): TraceExploration {\n return sceneGraph.getAncestor(model, TraceExploration);\n}\n\nexport function getHomeScene(model: SceneObject): Home {\n return sceneGraph.getAncestor(model, Home);\n}\n\nexport function getTraceByServiceScene(model: SceneObject): TracesByServiceScene {\n return sceneGraph.getAncestor(model, TracesByServiceScene);\n}\n\nexport function getExceptionsScene(model: SceneObject): ExceptionsScene | undefined {\n const tracesByServiceScene = getTraceByServiceScene(model);\n return tracesByServiceScene?.state.exceptionsScene;\n}\n\nexport function newTracesExploration(initialDS?: string, initialFilters?: AdHocVariableFilter[]): TraceExploration {\n return new TraceExploration({\n initialDS,\n initialFilters: initialFilters ?? [],\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function newHome(initialFilters: AdHocVariableFilter[], initialDS?: string): Home {\n return new Home({\n initialDS,\n initialFilters,\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function getErrorMessage(data: SceneDataState) {\n return data?.data?.error?.message ?? 'There are no Tempo data sources';\n}\n\nexport function getNoDataMessage(context: string) {\n return `No data for selected data source and filter. Select another to see ${context}.`;\n}\n\nexport function getUrlForExploration(exploration: TraceExploration) {\n const params = sceneUtils.getUrlState(exploration);\n return getUrlForValues(params);\n}\n\nexport function getUrlForValues(values: SceneObjectUrlValues) {\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, values);\n}\n\nexport function getDataSource(exploration: TraceExploration) {\n return sceneGraph.interpolate(exploration, VAR_DATASOURCE_EXPR);\n}\n\nexport const getFilterSignature = (filter: AdHocVariableFilter) => {\n return `${filter.key}${filter.operator}${filter.value}`;\n};\n\nexport function getAttributesAsOptions(attributes: string[]) {\n return attributes.map((attribute) => ({ label: attribute, value: attribute }));\n}\n\nexport function getLabelKey(frame: DataFrame) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels);\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return keys[0].replace(/\"/g, '');\n}\n\nexport function getLabelValue(frame: DataFrame, labelName?: string) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels).filter((k) => k !== 'p'); // remove the percentile label\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return labels[labelName || keys[0]].replace(/\"/g, '');\n}\n\nexport function getGroupByVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_GROUPBY, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Group by variable not found');\n }\n return variable;\n}\n\nexport function getSpanListColumnsVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_SPAN_LIST_COLUMNS, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Span list columns variable not found');\n }\n return variable;\n}\n\nexport function getLatencyThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getLatencyPartialThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_PARTIAL_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Partial latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getMetricVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n return variable;\n}\n\nexport function getFiltersVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_FILTERS, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Filters variable not found');\n }\n return variable;\n}\n\nexport function getPrimarySignalVariable(scene: SceneObject): PrimarySignalVariable {\n const variable = sceneGraph.lookupVariable(VAR_PRIMARY_SIGNAL, scene);\n if (!(variable instanceof PrimarySignalVariable)) {\n throw new Error('Primary signal variable not found');\n }\n return variable;\n}\n\nexport function getHomeFilterVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_HOME_FILTER, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Home filter variable not found');\n }\n return variable;\n}\n\nexport function getDatasourceVariable(scene: SceneObject): DataSourceVariable {\n const variable = sceneGraph.lookupVariable(VAR_DATASOURCE, scene);\n if (!(variable instanceof DataSourceVariable)) {\n throw new Error('Datasource variable not found');\n }\n return variable;\n}\n\nexport function getCurrentStep(scene: SceneObject): number | undefined {\n const data = sceneGraph.getData(scene).state.data;\n const targetQuery = data?.request?.targets[0];\n return targetQuery ? (targetQuery as SceneDataQuery).step : undefined;\n}\n\nexport function shouldShowSelection(tab?: ActionViewType): boolean {\n return tab === 'comparison' || tab === 'traceList';\n}\n\nexport function getMetricValue(scene: SceneObject) {\n return getMetricVariable(scene).useState().value;\n}\n\nexport function fieldHasEmptyValues(data: SceneDataState) {\n return data?.data?.series[0].fields?.some((v) => v.values.every((e) => e === undefined)) ?? false;\n}\n\nexport const isNumber = /^-?\\d+\\.?\\d*$/;\n\nexport const formatLabelValue = (value: string) => {\n if (!isNumber.test(value) && typeof value === 'string' && !value.startsWith('\"') && !value.endsWith('\"')) {\n return `\"${value}\"`;\n }\n return value;\n};\n\nexport const capitalizeFirstChar = (str: string) => str?.[0]?.toUpperCase() + str?.slice(1) || '';\n\nexport const getOpenTrace = (scene: SceneObject) => {\n return (traceId: string, spanId?: string) => {\n scene.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n };\n};\n","var map = {\n\t\"./af\": 9805,\n\t\"./af.js\": 9805,\n\t\"./ar\": 4449,\n\t\"./ar-dz\": 4468,\n\t\"./ar-dz.js\": 4468,\n\t\"./ar-kw\": 3480,\n\t\"./ar-kw.js\": 3480,\n\t\"./ar-ly\": 4197,\n\t\"./ar-ly.js\": 4197,\n\t\"./ar-ma\": 2180,\n\t\"./ar-ma.js\": 2180,\n\t\"./ar-ps\": 9343,\n\t\"./ar-ps.js\": 9343,\n\t\"./ar-sa\": 230,\n\t\"./ar-sa.js\": 230,\n\t\"./ar-tn\": 2808,\n\t\"./ar-tn.js\": 2808,\n\t\"./ar.js\": 4449,\n\t\"./az\": 5865,\n\t\"./az.js\": 5865,\n\t\"./be\": 6627,\n\t\"./be.js\": 6627,\n\t\"./bg\": 901,\n\t\"./bg.js\": 901,\n\t\"./bm\": 3179,\n\t\"./bm.js\": 3179,\n\t\"./bn\": 1966,\n\t\"./bn-bd\": 969,\n\t\"./bn-bd.js\": 969,\n\t\"./bn.js\": 1966,\n\t\"./bo\": 6317,\n\t\"./bo.js\": 6317,\n\t\"./br\": 6474,\n\t\"./br.js\": 6474,\n\t\"./bs\": 5961,\n\t\"./bs.js\": 5961,\n\t\"./ca\": 7270,\n\t\"./ca.js\": 7270,\n\t\"./cs\": 1564,\n\t\"./cs.js\": 1564,\n\t\"./cv\": 3239,\n\t\"./cv.js\": 3239,\n\t\"./cy\": 2366,\n\t\"./cy.js\": 2366,\n\t\"./da\": 2453,\n\t\"./da.js\": 2453,\n\t\"./de\": 6601,\n\t\"./de-at\": 5027,\n\t\"./de-at.js\": 5027,\n\t\"./de-ch\": 8101,\n\t\"./de-ch.js\": 8101,\n\t\"./de.js\": 6601,\n\t\"./dv\": 6080,\n\t\"./dv.js\": 6080,\n\t\"./el\": 2655,\n\t\"./el.js\": 2655,\n\t\"./en-au\": 6836,\n\t\"./en-au.js\": 6836,\n\t\"./en-ca\": 2086,\n\t\"./en-ca.js\": 2086,\n\t\"./en-gb\": 2103,\n\t\"./en-gb.js\": 2103,\n\t\"./en-ie\": 5964,\n\t\"./en-ie.js\": 5964,\n\t\"./en-il\": 4379,\n\t\"./en-il.js\": 4379,\n\t\"./en-in\": 765,\n\t\"./en-in.js\": 765,\n\t\"./en-nz\": 1502,\n\t\"./en-nz.js\": 1502,\n\t\"./en-sg\": 1152,\n\t\"./en-sg.js\": 1152,\n\t\"./eo\": 50,\n\t\"./eo.js\": 50,\n\t\"./es\": 3350,\n\t\"./es-do\": 9338,\n\t\"./es-do.js\": 9338,\n\t\"./es-mx\": 1326,\n\t\"./es-mx.js\": 1326,\n\t\"./es-us\": 9947,\n\t\"./es-us.js\": 9947,\n\t\"./es.js\": 3350,\n\t\"./et\": 8231,\n\t\"./et.js\": 8231,\n\t\"./eu\": 8512,\n\t\"./eu.js\": 8512,\n\t\"./fa\": 9083,\n\t\"./fa.js\": 9083,\n\t\"./fi\": 5059,\n\t\"./fi.js\": 5059,\n\t\"./fil\": 2607,\n\t\"./fil.js\": 2607,\n\t\"./fo\": 3369,\n\t\"./fo.js\": 3369,\n\t\"./fr\": 7390,\n\t\"./fr-ca\": 6711,\n\t\"./fr-ca.js\": 6711,\n\t\"./fr-ch\": 6152,\n\t\"./fr-ch.js\": 6152,\n\t\"./fr.js\": 7390,\n\t\"./fy\": 2419,\n\t\"./fy.js\": 2419,\n\t\"./ga\": 3002,\n\t\"./ga.js\": 3002,\n\t\"./gd\": 4914,\n\t\"./gd.js\": 4914,\n\t\"./gl\": 6557,\n\t\"./gl.js\": 6557,\n\t\"./gom-deva\": 8944,\n\t\"./gom-deva.js\": 8944,\n\t\"./gom-latn\": 5387,\n\t\"./gom-latn.js\": 5387,\n\t\"./gu\": 7462,\n\t\"./gu.js\": 7462,\n\t\"./he\": 9237,\n\t\"./he.js\": 9237,\n\t\"./hi\": 9617,\n\t\"./hi.js\": 9617,\n\t\"./hr\": 6544,\n\t\"./hr.js\": 6544,\n\t\"./hu\": 341,\n\t\"./hu.js\": 341,\n\t\"./hy-am\": 1388,\n\t\"./hy-am.js\": 1388,\n\t\"./id\": 5251,\n\t\"./id.js\": 5251,\n\t\"./is\": 1146,\n\t\"./is.js\": 1146,\n\t\"./it\": 7891,\n\t\"./it-ch\": 7,\n\t\"./it-ch.js\": 7,\n\t\"./it.js\": 7891,\n\t\"./ja\": 3727,\n\t\"./ja.js\": 3727,\n\t\"./jv\": 5198,\n\t\"./jv.js\": 5198,\n\t\"./ka\": 8974,\n\t\"./ka.js\": 8974,\n\t\"./kk\": 7308,\n\t\"./kk.js\": 7308,\n\t\"./km\": 7786,\n\t\"./km.js\": 7786,\n\t\"./kn\": 4807,\n\t\"./kn.js\": 4807,\n\t\"./ko\": 1584,\n\t\"./ko.js\": 1584,\n\t\"./ku\": 1906,\n\t\"./ku-kmr\": 5305,\n\t\"./ku-kmr.js\": 5305,\n\t\"./ku.js\": 1906,\n\t\"./ky\": 9190,\n\t\"./ky.js\": 9190,\n\t\"./lb\": 7396,\n\t\"./lb.js\": 7396,\n\t\"./lo\": 8503,\n\t\"./lo.js\": 8503,\n\t\"./lt\": 3010,\n\t\"./lt.js\": 3010,\n\t\"./lv\": 5192,\n\t\"./lv.js\": 5192,\n\t\"./me\": 1944,\n\t\"./me.js\": 1944,\n\t\"./mi\": 6492,\n\t\"./mi.js\": 6492,\n\t\"./mk\": 2934,\n\t\"./mk.js\": 2934,\n\t\"./ml\": 1463,\n\t\"./ml.js\": 1463,\n\t\"./mn\": 8377,\n\t\"./mn.js\": 8377,\n\t\"./mr\": 8733,\n\t\"./mr.js\": 8733,\n\t\"./ms\": 8030,\n\t\"./ms-my\": 9445,\n\t\"./ms-my.js\": 9445,\n\t\"./ms.js\": 8030,\n\t\"./mt\": 5887,\n\t\"./mt.js\": 5887,\n\t\"./my\": 7228,\n\t\"./my.js\": 7228,\n\t\"./nb\": 8294,\n\t\"./nb.js\": 8294,\n\t\"./ne\": 9559,\n\t\"./ne.js\": 9559,\n\t\"./nl\": 600,\n\t\"./nl-be\": 8796,\n\t\"./nl-be.js\": 8796,\n\t\"./nl.js\": 600,\n\t\"./nn\": 9570,\n\t\"./nn.js\": 9570,\n\t\"./oc-lnc\": 5662,\n\t\"./oc-lnc.js\": 5662,\n\t\"./pa-in\": 7101,\n\t\"./pa-in.js\": 7101,\n\t\"./pl\": 6118,\n\t\"./pl.js\": 6118,\n\t\"./pt\": 9198,\n\t\"./pt-br\": 7203,\n\t\"./pt-br.js\": 7203,\n\t\"./pt.js\": 9198,\n\t\"./ro\": 5565,\n\t\"./ro.js\": 5565,\n\t\"./ru\": 3315,\n\t\"./ru.js\": 3315,\n\t\"./sd\": 8473,\n\t\"./sd.js\": 8473,\n\t\"./se\": 1258,\n\t\"./se.js\": 1258,\n\t\"./si\": 8798,\n\t\"./si.js\": 8798,\n\t\"./sk\": 6404,\n\t\"./sk.js\": 6404,\n\t\"./sl\": 7057,\n\t\"./sl.js\": 7057,\n\t\"./sq\": 5718,\n\t\"./sq.js\": 5718,\n\t\"./sr\": 5363,\n\t\"./sr-cyrl\": 478,\n\t\"./sr-cyrl.js\": 478,\n\t\"./sr.js\": 5363,\n\t\"./ss\": 7260,\n\t\"./ss.js\": 7260,\n\t\"./sv\": 2231,\n\t\"./sv.js\": 2231,\n\t\"./sw\": 7104,\n\t\"./sw.js\": 7104,\n\t\"./ta\": 7493,\n\t\"./ta.js\": 7493,\n\t\"./te\": 7705,\n\t\"./te.js\": 7705,\n\t\"./tet\": 4457,\n\t\"./tet.js\": 4457,\n\t\"./tg\": 2727,\n\t\"./tg.js\": 2727,\n\t\"./th\": 2206,\n\t\"./th.js\": 2206,\n\t\"./tk\": 3419,\n\t\"./tk.js\": 3419,\n\t\"./tl-ph\": 7243,\n\t\"./tl-ph.js\": 7243,\n\t\"./tlh\": 16,\n\t\"./tlh.js\": 16,\n\t\"./tr\": 7020,\n\t\"./tr.js\": 7020,\n\t\"./tzl\": 8026,\n\t\"./tzl.js\": 8026,\n\t\"./tzm\": 8537,\n\t\"./tzm-latn\": 7899,\n\t\"./tzm-latn.js\": 7899,\n\t\"./tzm.js\": 8537,\n\t\"./ug-cn\": 818,\n\t\"./ug-cn.js\": 818,\n\t\"./uk\": 8478,\n\t\"./uk.js\": 8478,\n\t\"./ur\": 7893,\n\t\"./ur.js\": 7893,\n\t\"./uz\": 9133,\n\t\"./uz-latn\": 311,\n\t\"./uz-latn.js\": 311,\n\t\"./uz.js\": 9133,\n\t\"./vi\": 2179,\n\t\"./vi.js\": 2179,\n\t\"./x-pseudo\": 2455,\n\t\"./x-pseudo.js\": 2455,\n\t\"./yo\": 3310,\n\t\"./yo.js\": 3310,\n\t\"./zh-cn\": 7244,\n\t\"./zh-cn.js\": 7244,\n\t\"./zh-hk\": 76,\n\t\"./zh-hk.js\": 76,\n\t\"./zh-mo\": 2305,\n\t\"./zh-mo.js\": 2305,\n\t\"./zh-tw\": 8588,\n\t\"./zh-tw.js\": 8588\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1738;","import { TimeRange } from '@grafana/data';\nimport { sceneGraph, SceneObject, SceneObjectBase, SceneObjectState, SceneQueryRunner } from '@grafana/scenes';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\n\nimport Logo from '../../../../src/img/logo.svg';\n\nexport interface AddToInvestigationButtonState extends SceneObjectState {\n dsUid?: string;\n query?: string;\n labelValue?: string;\n type?: string;\n context?: ExtensionContext;\n queries: DataQuery[];\n}\n\ninterface ExtensionContext {\n timeRange: TimeRange;\n queries: DataQuery[];\n datasource: DataSourceRef;\n origin: string;\n url: string;\n type: string;\n title: string;\n id: string;\n logoPath: string;\n}\n\nexport class AddToInvestigationButton extends SceneObjectBase {\n constructor(state: Omit) {\n super({ ...state, queries: [] });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate = () => {\n this._subs.add(\n this.subscribeToState(() => {\n this.getQueries();\n this.getContext();\n })\n );\n };\n\n private readonly getQueries = () => {\n const data = sceneGraph.getData(this);\n const queryRunner = sceneGraph.findObject(data, isQueryRunner);\n\n if (isQueryRunner(queryRunner)) {\n const queries = queryRunner.state.queries.map((q) => ({\n ...q,\n query: this.state.query,\n }));\n\n if (JSON.stringify(queries) !== JSON.stringify(this.state.queries)) {\n this.setState({ queries });\n }\n }\n };\n\n private readonly getContext = () => {\n const { queries, dsUid, labelValue, type = 'traceMetrics' } = this.state;\n const timeRange = sceneGraph.getTimeRange(this);\n\n if (!timeRange || !queries || !dsUid) {\n return;\n }\n const ctx = {\n origin: 'Explore Traces',\n type,\n queries,\n timeRange: { ...timeRange.state.value },\n datasource: { uid: dsUid },\n url: window.location.href,\n id: `${JSON.stringify(queries)}`,\n title: `${labelValue}`,\n logoPath: Logo,\n };\n if (JSON.stringify(ctx) !== JSON.stringify(this.state.context)) {\n this.setState({ context: ctx });\n }\n };\n}\n\nfunction isQueryRunner(o: SceneObject | null): o is SceneQueryRunner {\n return o instanceof SceneQueryRunner;\n}\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n PanelBuilders,\n SceneQueryRunner,\n sceneGraph,\n SceneObject,\n} from '@grafana/scenes';\nimport { LoadingState, GrafanaTheme2 } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { useStyles2 } from '@grafana/ui';\n\nexport interface TracePanelState extends SceneObjectState {\n panel?: SceneObject;\n traceId: string;\n spanId?: string;\n}\n\nexport class TraceViewPanelScene extends SceneObjectBase {\n constructor(state: TracePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', query: state.traceId, queryType: 'traceql' }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done) {\n this.setState({\n panel: this.getVizPanel().build(),\n });\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new LoadingStateScene({\n component: SkeletonComponent,\n }),\n });\n }\n })\n );\n });\n }\n\n private getVizPanel() {\n const panel = PanelBuilders.traces().setHoverHeader(true);\n if (this.state.spanId) {\n panel.setOption('focusedSpanId' as any, this.state.spanId as any);\n }\n return panel;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
    \n \n
    \n );\n };\n}\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getStyles);\n\n return (\n
    \n
    \n \n \n
    \n \n
    \n \n \n
    \n\n
    \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n panelContainer: css({\n display: 'flex',\n height: '100%',\n\n '& [data-testid=\"data-testid panel content\"] > div': {\n overflow: 'auto',\n },\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n container: css({\n height: 'calc(100% - 32px)',\n width: 'calc(100% - 32px)',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n header: css({\n marginBottom: '20px',\n display: 'flex',\n justifyContent: 'space-between',\n }),\n map: css({\n marginTop: '20px',\n marginBottom: '20px',\n }),\n span: css({\n display: 'flex',\n }),\n service1: css({\n width: '25%',\n }),\n bar1: css({\n marginLeft: '5%',\n width: '70%',\n }),\n service2: css({\n width: '25%',\n }),\n bar2: css({\n marginLeft: '10%',\n width: '15%',\n }),\n service3: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar3: css({\n marginLeft: '10%',\n width: '65%',\n }),\n service4: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar4: css({\n marginLeft: '15%',\n width: '60%',\n }),\n service5: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar5: css({\n marginLeft: '20%',\n width: '35%',\n }),\n service6: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar6: css({\n marginLeft: '30%',\n width: '15%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, SceneObject } from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { TraceViewPanelScene } from '../panels/TraceViewPanelScene';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { getTraceExplorationScene } from '../../../utils/utils';\n\nexport interface DetailsSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class TraceDrawerScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n\n const traceExploration = getTraceExplorationScene(this);\n\n traceExploration.subscribeToState((newState, prevState) => {\n if (newState.traceId !== prevState.traceId || newState.spanId !== prevState.spanId) {\n this.updateBody();\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_trace, {\n traceId: newState.traceId,\n spanId: newState.spanId,\n });\n }\n });\n }\n\n private updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n\n if (traceExploration.state.traceId) {\n this.setState({\n body: new TraceViewPanelScene({\n traceId: traceExploration.state.traceId,\n spanId: traceExploration.state.spanId,\n }),\n });\n } else {\n this.setState({\n body: new EmptyStateScene({\n message: 'No trace selected',\n }),\n });\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState(); \n return body && ;\n };\n}\n","import { LoadingState, dateTime } from '@grafana/data';\nimport {\n SceneObjectBase,\n SceneObjectState,\n SceneTimeRange,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { getDatasourceVariable } from '../../utils/utils';\nimport { Alert, LinkButton } from '@grafana/ui';\nimport React from 'react';\n\nexport interface TraceQLIssueDetectorState extends SceneObjectState {\n hasIssue: boolean;\n}\n\nexport class TraceQLIssueDetector extends SceneObjectBase {\n constructor() {\n super({\n hasIssue: false,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() { \n this.runIssueDetectionQuery();\n\n const datasourceVar = getDatasourceVariable(this);\n this._subs.add(\n datasourceVar.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.resetIssues();\n this.runIssueDetectionQuery();\n }\n })\n );\n }\n\n private runIssueDetectionQuery() {\n const datasourceVar = getDatasourceVariable(this);\n \n // Create a minimal time range to reduce resource usage\n const now = dateTime();\n const from = dateTime(now).subtract(1, 'minute');\n const minimalTimeRange = new SceneTimeRange({\n from: from.toISOString(),\n to: now.toISOString(),\n });\n \n const issueDetector = new SceneQueryRunner({\n maxDataPoints: 1,\n datasource: { uid: String(datasourceVar.state.value) },\n $timeRange: minimalTimeRange,\n queries: [{\n refId: 'issueDetectorQuery',\n query: '{} | rate()',\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1,\n spss: 1,\n filters: [],\n }],\n });\n \n this._subs.add(\n issueDetector.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Error) {\n const message = state.data?.errors?.[0]?.message || '';\n // This is the error message when the datasource is not configured for TraceQL metrics\n // https://grafana.com/docs/tempo/latest/operations/traceql-metrics/#activate-and-configure-the-local-blocks-processor\n if (message.includes('localblocks processor not found')) {\n this.setState({ hasIssue: true });\n }\n }\n })\n );\n \n issueDetector.activate();\n }\n\n public resetIssues() {\n this.setState({\n hasIssue: false,\n });\n }\n} \n\nconst TraceQLWarningTitle = 'TraceQL metrics not configured';\nconst TraceQLWarningMessage = 'We found an error running a TraceQL metrics query: \"localblocks processor not found\". This typically means the \"local-blocks\" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.';\n\nexport const TraceQLConfigWarning: React.FC<{ detector: TraceQLIssueDetector }> = ({ detector }) => {\n const { hasIssue } = detector.useState();\n\n if (!hasIssue) {\n return null;\n }\n\n return (\n \n

    \n {TraceQLWarningMessage}\n \n Read documentation\n \n

    \n \n );\n};\n","import React, { ReactElement, useEffect, useState } from 'react';\n\nimport { TimeRange } from '@grafana/data';\nimport { ComponentSize } from '@grafana/ui';\nimport { usePluginComponent } from '@grafana/runtime';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\n\ninterface EntityAssertionsWidgetProps {\n query: {\n entityName?: string;\n entityType?: string;\n start: number;\n end: number;\n };\n size: ComponentSize;\n source?: string;\n returnToPrevious?: boolean;\n}\n\nexport type EntityAssertionsWidgetExternal = (props: EntityAssertionsWidgetProps) => ReactElement | null;\n\ninterface Props {\n serviceName: string;\n model: SceneObject;\n}\n\nexport function EntityAssertionsWidget({ serviceName, model }: Props) {\n const { isLoading, component: EntityAssertionsWidgetExternal } = usePluginComponent(\n 'grafana-asserts-app/entity-assertions-widget/v1'\n );\n const [timeRange, setTimeRange] = useState();\n\n useEffect(() => {\n const sceneTimeRange = sceneGraph.getTimeRange(model);\n setTimeRange(sceneTimeRange.state.value);\n\n const sub = sceneTimeRange.subscribeToState((state) => {\n setTimeRange(state.value);\n });\n\n return () => {\n sub.unsubscribe();\n };\n }, [model]);\n\n if (isLoading || !EntityAssertionsWidgetExternal || !timeRange) {\n return null;\n }\n\n return (\n \n );\n}\n","import { css, cx } from '@emotion/css';\nimport { useDialog } from '@react-aria/dialog';\nimport { FocusScope } from '@react-aria/focus';\nimport { useOverlay } from '@react-aria/overlays';\nimport RcDrawer from 'rc-drawer';\nimport { ReactNode, useCallback, useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\n\nimport 'rc-drawer/assets/index.css';\nimport { useStyles2, getDragStyles, IconButton, ScrollContainer, Text } from '@grafana/ui';\n\nexport interface Props {\n children: ReactNode;\n /** Title shown at the top of the drawer */\n title?: ReactNode;\n /** Subtitle shown below the title */\n subtitle?: ReactNode;\n /** Should the Drawer be closable by clicking on the mask, defaults to true */\n closeOnMaskClick?: boolean;\n /**\n * Specifies the width and min-width.\n * sm = width 25% & min-width 384px\n * md = width 50% & min-width 568px\n * lg = width 75% & min-width 744px\n **/\n size?: 'sm' | 'md' | 'lg';\n /** Tabs */\n tabs?: React.ReactNode;\n /**\n * Whether the content should be wrapped in a ScrollContainer\n * Only change this if you intend to manage scroll behaviour yourself\n * (e.g. having a split pane with independent scrolling)\n **/\n scrollableContent?: boolean;\n /** Callback for closing the drawer */\n onClose: () => void;\n}\n\nconst drawerSizes = {\n sm: { width: '25%', minWidth: 384 },\n md: { width: '50%', minWidth: 568 },\n lg: { width: '75%', minWidth: 744 },\n};\n\nexport function Drawer({\n children,\n onClose,\n closeOnMaskClick = true,\n scrollableContent = true,\n title,\n subtitle,\n size = 'md',\n tabs,\n}: Props) {\n const [drawerWidth, onMouseDown, onTouchStart] = useResizebleDrawer();\n\n const styles = useStyles2(getStyles);\n const wrapperStyles = useStyles2(getWrapperStyles, size);\n const dragStyles = useStyles2(getDragStyles);\n\n const overlayRef = React.useRef(null);\n const { dialogProps, titleProps } = useDialog({}, overlayRef);\n const { overlayProps } = useOverlay(\n {\n isDismissable: false,\n isOpen: true,\n onClose,\n },\n overlayRef\n );\n\n // Adds body class while open so the toolbar nav can hide some actions while drawer is open\n useBodyClassWhileOpen();\n\n const content =
    {children}
    ;\n const overrideWidth = drawerWidth ?? drawerSizes[size].width;\n const minWidth = drawerSizes[size].minWidth;\n\n return (\n \n \n \n \n
    \n
    \n \n
    \n {typeof title === 'string' ? (\n
    \n \n {title}\n \n {subtitle && (\n
    \n {subtitle}\n
    \n )}\n
    \n ) : (\n title\n )}\n {tabs &&
    {tabs}
    }\n
    \n {!scrollableContent ? content : {content}}\n \n
    \n \n );\n}\n\nfunction useResizebleDrawer(): [\n string | undefined,\n React.EventHandler,\n React.EventHandler,\n] {\n const [drawerWidth, setDrawerWidth] = useState(undefined);\n\n const onMouseMove = useCallback((e: MouseEvent) => {\n setDrawerWidth(getCustomDrawerWidth(e.clientX));\n }, []);\n\n const onTouchMove = useCallback((e: TouchEvent) => {\n const touch = e.touches[0];\n setDrawerWidth(getCustomDrawerWidth(touch.clientX));\n }, []);\n\n const onMouseUp = useCallback(\n (e: MouseEvent) => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n },\n [onMouseMove]\n );\n\n const onTouchEnd = useCallback(\n (e: TouchEvent) => {\n document.removeEventListener('touchmove', onTouchMove);\n document.removeEventListener('touchend', onTouchEnd);\n },\n [onTouchMove]\n );\n\n function onMouseDown(e: React.MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n // we will only add listeners when needed, and remove them afterward\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n\n function onTouchStart(e: React.TouchEvent) {\n e.stopPropagation();\n e.preventDefault();\n // we will only add listeners when needed, and remove them afterward\n document.addEventListener('touchmove', onTouchMove);\n document.addEventListener('touchend', onTouchEnd);\n }\n\n return [drawerWidth, onMouseDown, onTouchStart];\n}\n\nfunction getCustomDrawerWidth(clientX: number) {\n let offsetRight = document.body.offsetWidth - (clientX - document.body.offsetLeft);\n let widthPercent = Math.min((offsetRight / document.body.clientWidth) * 100, 98).toFixed(2);\n return `${widthPercent}vw`;\n}\n\nfunction useBodyClassWhileOpen() {\n useEffect(() => {\n if (!document.body) {\n return;\n }\n\n document.body.classList.add('body-drawer-open');\n\n return () => {\n document.body.classList.remove('body-drawer-open');\n };\n }, []);\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 1 0',\n minHeight: '100%',\n position: 'relative',\n }),\n drawer: css({\n top: 0,\n position: 'absolute !important' as 'absolute',\n\n '.rc-drawer-content-wrapper': {\n boxShadow: theme.shadows.z3,\n },\n }),\n drawerContent: css({\n backgroundColor: `${theme.colors.background.primary} !important`,\n display: 'flex',\n overflow: 'unset !important',\n flexDirection: 'column',\n }),\n drawerMotion: css({\n '&-appear': {\n transform: 'translateX(100%)',\n transition: 'none !important',\n\n '&-active': {\n transition: `${theme.transitions.create('transform')} !important`,\n transform: 'translateX(0)',\n },\n },\n }),\n // we want the mask itself to span the whole page including the top bar\n // this ensures trying to click something in the top bar will close the drawer correctly\n // but we don't want the backdrop styling to apply over the top bar as it looks weird\n // instead have a child pseudo element to apply the backdrop styling below the top bar\n mask: css({\n // The !important here is to override the default .rc-drawer-mask styles\n backgroundColor: 'transparent !important',\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n position: 'absolute !important' as 'absolute',\n\n '&:before': {\n backgroundColor: `${theme.components.overlay.background} !important`,\n bottom: 0,\n content: '\"\"',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n }),\n maskMotion: css({\n '&-appear': {\n opacity: 0,\n\n '&-active': {\n opacity: 1,\n transition: theme.transitions.create('opacity'),\n },\n },\n }),\n header: css({\n label: 'drawer-header',\n flexGrow: 0,\n padding: theme.spacing(2, 2, 3),\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n }),\n headerWithTabs: css({\n borderBottom: 'none',\n }),\n actions: css({\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n }),\n titleWrapper: css({\n label: 'drawer-title',\n overflowWrap: 'break-word',\n }),\n subtitle: css({\n label: 'drawer-subtitle',\n color: theme.colors.text.secondary,\n paddingTop: theme.spacing(1),\n }),\n content: css({\n padding: theme.spacing(theme.components.drawer?.padding ?? 2),\n height: '100%',\n flexGrow: 1,\n minHeight: 0,\n }),\n tabsWrapper: css({\n label: 'drawer-tabs',\n paddingLeft: theme.spacing(2),\n margin: theme.spacing(1, -1, -3, -3),\n }),\n resizer: css({\n top: 0,\n left: theme.spacing(-1),\n bottom: 0,\n position: 'absolute',\n zIndex: theme.zIndex.modal,\n }),\n };\n};\n\nfunction getWrapperStyles(theme: GrafanaTheme2, size: 'sm' | 'md' | 'lg') {\n return css({\n label: `drawer-content-wrapper-${size}`,\n overflow: 'unset !important',\n\n [theme.breakpoints.down('md')]: {\n width: `calc(100% - ${theme.spacing(2)}) !important`,\n minWidth: '0 !important',\n },\n });\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, useStyles2 } from '@grafana/ui';\nimport { Drawer } from './Drawer';\n\ninterface SmartDrawerProps {\n children: React.ReactNode;\n title?: string;\n isOpen: boolean;\n onClose: () => void;\n embedded?: boolean;\n forceNoDrawer?: boolean;\n investigationButton?: React.ReactNode;\n}\n\nexport const SmartDrawer = ({\n children,\n title,\n isOpen,\n onClose,\n embedded = false,\n forceNoDrawer = false,\n investigationButton,\n}: SmartDrawerProps) => {\n const styles = useStyles2(getStyles);\n\n const shouldUseDrawer = !forceNoDrawer && !embedded;\n\n if (!isOpen) {\n return null;\n }\n\n if (shouldUseDrawer) {\n return (\n \n {children}\n \n );\n }\n\n return (\n
    \n
    \n \n {embedded && investigationButton}\n
    \n {children}\n
    \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n container: css({\n height: '100%',\n width: '100%',\n background: theme.colors.background.primary,\n padding: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 3,\n }),\n drawerHeader: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingBottom: theme.spacing(2),\n\n h4: {\n margin: 0,\n },\n }),\n});\n","import { AdHocVariableFilter } from '@grafana/data';\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join('&&');\n // Return 'true' if there are no filters to help with cases where we want to concatenate additional filters in the expression\n // and avoid invalid queries like '{ && key=value }'\n return expr.length ? expr : 'true';\n}\n\nfunction renderFilter(filter: AdHocVariableFilter) {\n let val = filter.value;\n if (\n ['span.messaging.destination.partition.id', 'span.network.protocol.version'].includes(filter.key) ||\n (!isNumber(val) &&\n ![\n 'status',\n 'kind',\n 'span:status',\n 'span:kind',\n 'duration',\n 'span:duration',\n 'trace:duration',\n 'event:timeSinceStart',\n ].includes(filter.key) &&\n !['true', 'false'].includes(val)) &&\n !isQuotedNumericString(val)\n ) {\n if (typeof val === 'string') {\n // Escape \" and \\ to \\\" and \\\\ respectively\n val = val.replace(/[\"\\\\]/g, (s) => `\\\\${s}`);\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n\nfunction isNumber(value?: string | number): boolean {\n return value != null && value !== '' && !isNaN(Number(value.toString().trim()));\n}\n\nfunction isQuotedNumericString(value: string): boolean {\n return typeof value === 'string' && value.length >= 2 && isNumber(value.slice(1, -1)) && ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\")));\n}\n","import { AdHocFiltersVariable } from '@grafana/scenes';\nimport { AdHocVariableFilter, VariableHide } from '@grafana/data';\nimport { VAR_FILTERS, explorationDS } from 'utils/shared';\nimport { renderTraceQLLabelFilters } from 'utils/filters-renderer';\n\nexport interface AttributeFiltersVariableProps {\n initialFilters?: AdHocVariableFilter[];\n embedderName?: string;\n embedded?: boolean;\n}\n\nexport class AttributeFiltersVariable extends AdHocFiltersVariable {\n private initialFilters?: AdHocVariableFilter[];\n private embedderName?: string;\n private embedded?: boolean;\n\n constructor(props: Partial) {\n super({\n addFilterButtonText: 'Add filter',\n name: VAR_FILTERS,\n datasource: explorationDS,\n hide: VariableHide.hideLabel,\n layout: 'combobox',\n filters: (props.initialFilters ?? []).map((f) => ({\n ...f,\n readOnly: props.embedded,\n origin: props.embedderName,\n })),\n allowCustomValue: true,\n expressionBuilder: renderTraceQLLabelFilters,\n });\n\n this.initialFilters = props.initialFilters;\n this.embedderName = props.embedderName;\n this.embedded = props.embedded;\n\n // Subscribe to state changes to update readOnly and origin for matching filters\n this.subscribeToState((newState) => {\n if (newState.filters && this.embedded) {\n let hasChanges = false;\n const updatedFilters = newState.filters.map((filter) => {\n // Check if this filter matches any of the initial filters\n const matchingInitialFilter = this.initialFilters?.find(\n (initialFilter) =>\n initialFilter.key === filter.key &&\n initialFilter.operator === filter.operator &&\n initialFilter.value === filter.value\n );\n\n if (matchingInitialFilter && !filter.readOnly && filter.origin !== this.embedderName) {\n hasChanges = true;\n return {\n ...filter,\n readOnly: true,\n origin: this.embedderName,\n };\n }\n\n return filter;\n });\n\n // Only update if there are actual changes\n if (hasChanges) {\n this.setState({ filters: updatedFilters });\n }\n }\n });\n }\n}\n","import { css } from '@emotion/css';\nimport React, { useEffect } from 'react';\n\nimport { GrafanaTheme2, LoadingState, PluginExtensionLink, AdHocVariableFilter } from '@grafana/data';\nimport {\n CustomVariable,\n DataSourceVariable,\n SceneComponentProps,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { config, useReturnToPrevious } from '@grafana/runtime';\nimport { Button, Dropdown, Icon, Menu, Stack, useStyles2, LinkButton } from '@grafana/ui';\n\nimport {\n DATASOURCE_LS_KEY,\n EventTraceOpened,\n MetricFunction,\n VAR_DATASOURCE,\n VAR_GROUPBY,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from '../../utils/shared';\nimport {\n getTraceExplorationScene,\n getFiltersVariable,\n getPrimarySignalVariable,\n getDataSource,\n getUrlForExploration,\n} from '../../utils/utils';\nimport { TraceDrawerScene } from '../../components/Explore/TracesByService/TraceDrawerScene';\nimport { VariableHide } from '@grafana/schema';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { PrimarySignalVariable } from './PrimarySignalVariable';\nimport { primarySignalOptions } from './primary-signals';\nimport { TraceQLIssueDetector, TraceQLConfigWarning } from '../../components/Explore/TraceQLIssueDetector';\nimport { AddToInvestigationButton } from 'components/Explore/actions/AddToInvestigationButton';\nimport { ADD_TO_INVESTIGATION_MENU_TEXT, getInvestigationLink } from 'components/Explore/panels/PanelMenu';\nimport { TracesByServiceScene } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { SharedExplorationState } from 'exposedComponents/types';\nimport { EntityAssertionsWidget } from '../../addedComponents/EntityAssertionsWidget/EntityAssertionsWidget';\nimport { SmartDrawer } from './SmartDrawer';\nimport { AttributeFiltersVariable } from './AttributeFiltersVariable';\n\nexport interface TraceExplorationState extends SharedExplorationState, SceneObjectState {\n topScene?: SceneObject;\n controls: SceneObject[];\n\n body: SceneObject;\n\n drawerScene?: TraceDrawerScene;\n\n // details scene\n traceId?: string;\n spanId?: string;\n\n issueDetector?: TraceQLIssueDetector;\n\n investigationLink?: PluginExtensionLink;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nconst version = process.env.VERSION;\nconst buildTime = process.env.BUILD_TIME;\nconst commitSha = process.env.COMMIT_SHA;\nconst compositeVersion = `${buildTime?.split('T')[0]} (${commitSha})`;\n\nexport class TraceExploration extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['traceId', 'spanId'] });\n\n public constructor(state: Partial) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state as TraceExplorationState),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n body: new TraceExplorationScene({}),\n drawerScene: new TraceDrawerScene({}),\n issueDetector: new TraceQLIssueDetector(),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n if (!this.state.topScene) {\n this.setState({ topScene: getTopScene() });\n }\n\n this._subs.add(\n this.subscribeToEvent(EventTraceOpened, (event) => {\n this.setupInvestigationButton(event.payload.traceId);\n this.setState({ traceId: event.payload.traceId, spanId: event.payload.spanId });\n })\n );\n\n if (this.state.traceId) {\n this.setupInvestigationButton(this.state.traceId);\n }\n\n const datasourceVar = sceneGraph.lookupVariable(VAR_DATASOURCE, this) as DataSourceVariable;\n datasourceVar.subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n if (this.state.issueDetector) {\n if (!this.state.issueDetector.isActive) {\n this.state.issueDetector.activate();\n }\n }\n }\n\n getUrlState() {\n return { traceId: this.state.traceId, spanId: this.state.spanId };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n const stateUpdate: Partial = {};\n\n if (values.traceId || values.spanId) {\n stateUpdate.traceId = values.traceId ? (values.traceId as string) : undefined;\n stateUpdate.spanId = values.spanId ? (values.spanId as string) : undefined;\n }\n\n this.setState(stateUpdate);\n }\n\n public getMetricVariable() {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, this);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n\n if (!variable.getValue()) {\n variable.changeValueTo(this.state.initialMetric ?? 'rate');\n }\n\n return variable;\n }\n\n public onChangeMetricFunction = (metric: string) => {\n const variable = this.getMetricVariable();\n if (!metric || variable.getValue() === metric) {\n return;\n }\n\n variable.changeValueTo(metric, undefined, true);\n };\n\n public getMetricFunction() {\n return this.getMetricVariable().getValue() as MetricFunction;\n }\n\n public closeDrawer() {\n this.setState({ traceId: undefined, spanId: undefined });\n }\n\n private setupInvestigationButton(traceId: string) {\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const queryRunner = new SceneQueryRunner({\n datasource: { uid: dsUid },\n queries: [\n {\n refId: 'A',\n query: traceId,\n queryType: 'traceql',\n },\n ],\n });\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: traceId,\n type: 'trace',\n dsUid,\n $data: queryRunner,\n });\n\n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton.subscribeToState(() => {\n this.updateInvestigationLink();\n })\n );\n\n queryRunner.activate();\n\n this._subs.add(\n queryRunner.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Done && state.data?.series?.length > 0) {\n const serviceNameField = state.data.series[0]?.fields?.find((f) => f.name === 'serviceName');\n\n if (serviceNameField && serviceNameField.values[0]) {\n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: `${serviceNameField.values[0]}`,\n });\n }\n }\n })\n );\n\n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: traceId,\n });\n }\n\n private async updateInvestigationLink() {\n const { addToInvestigationButton } = this.state;\n if (!addToInvestigationButton) {\n return;\n }\n\n const link = await getInvestigationLink(addToInvestigationButton);\n if (link) {\n this.setState({ investigationLink: link });\n }\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return
    {body && }
    ;\n };\n}\n\nexport class TraceExplorationScene extends SceneObjectBase {\n static Component = ({ model }: SceneComponentProps) => {\n const traceExploration = getTraceExplorationScene(model);\n const {\n controls,\n topScene,\n drawerScene,\n traceId,\n issueDetector,\n investigationLink,\n addToInvestigationButton,\n embedded,\n } = traceExploration.useState();\n const { hasIssue } = issueDetector?.useState() || {\n hasIssue: false,\n };\n const styles = useStyles2(getStyles);\n\n const addToInvestigationClicked = (e: React.MouseEvent) => {\n if (investigationLink?.onClick) {\n investigationLink.onClick(e);\n }\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_trace_view_clicked\n );\n\n setTimeout(() => traceExploration.closeDrawer(), 100);\n };\n\n return (\n
    \n {hasIssue && issueDetector && }\n {embedded ? : }\n
    {topScene && }
    \n traceExploration.closeDrawer()}\n title={`View trace ${traceId}`}\n embedded={embedded}\n forceNoDrawer={embedded}\n investigationButton={\n addToInvestigationButton &&\n investigationLink && (\n \n )\n }\n >\n {drawerScene && }\n \n
    \n );\n };\n}\n\nexport const useServiceName = (model: SceneObject) => {\n const [serviceName, setServiceName] = React.useState();\n const traceExploration = getTraceExplorationScene(model);\n const filtersVariable = getFiltersVariable(traceExploration);\n\n const getServiceNameFromFilters = (filters: AdHocVariableFilter[]) => {\n const serviceNameFilter = filters.find((f) => f.key === 'resource.service.name');\n return serviceNameFilter?.operator === '=' || serviceNameFilter?.operator === '=~'\n ? serviceNameFilter?.value?.replace(/\"/g, '')\n : undefined;\n };\n\n useEffect(() => {\n setServiceName(getServiceNameFromFilters(filtersVariable.state.filters));\n\n const sub = filtersVariable.subscribeToState((newState) => {\n setServiceName(getServiceNameFromFilters(newState.filters));\n });\n\n return () => {\n sub.unsubscribe();\n };\n }, [filtersVariable]);\n\n return serviceName;\n};\n\nconst EmbeddedHeader = ({ model }: SceneComponentProps) => {\n const setReturnToPrevious = useReturnToPrevious();\n const styles = useStyles2(getStyles, true);\n const traceExploration = getTraceExplorationScene(model);\n const { returnToPreviousSource } = traceExploration.useState();\n const filtersVariable = getFiltersVariable(traceExploration);\n const primarySignalVariable = getPrimarySignalVariable(traceExploration);\n const timeRangeControl = traceExploration.state.controls.find((control) => control instanceof SceneTimePicker);\n\n const timeRangeState = traceExploration.state.$timeRange?.useState();\n const filtersVariableState = filtersVariable.useState();\n const metricVariableState = traceExploration.getMetricVariable().useState();\n const [explorationUrl, setExplorationUrl] = React.useState(() => getUrlForExploration(traceExploration));\n \n // Force the primary signal to be 'All Spans'\n primarySignalVariable?.changeValueTo(primarySignalOptions[1].value!);\n\n useEffect(() => {\n setExplorationUrl(getUrlForExploration(traceExploration));\n }, [timeRangeState, filtersVariableState, metricVariableState, traceExploration]);\n\n return (\n
    \n \n \n {filtersVariable && (\n
    \n \n
    \n )}\n \n {\n setReturnToPrevious(returnToPreviousSource || 'previous');\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.go_to_full_app_clicked);\n }}\n >\n Traces Drilldown\n \n {timeRangeControl && }\n \n
    \n
    \n );\n};\n\ninterface TraceExplorationHeaderProps {\n controls: SceneObject[];\n model: SceneObject;\n}\n\nconst TraceExplorationHeader = ({ controls, model }: TraceExplorationHeaderProps) => {\n const styles = useStyles2(getStyles);\n const [menuVisible, setMenuVisible] = React.useState(false);\n const serviceName = useServiceName(model);\n const traceExploration = getTraceExplorationScene(model);\n\n const dsVariable = sceneGraph.lookupVariable(VAR_DATASOURCE, traceExploration);\n const filtersVariable = getFiltersVariable(traceExploration);\n const primarySignalVariable = getPrimarySignalVariable(traceExploration);\n\n function VersionHeader() {\n const styles = useStyles2(getStyles);\n\n return (\n
    \n
    Grafana Traces Drilldown v{version}
    \n
    Last update: {compositeVersion}
    \n
    \n );\n }\n\n const menu = (\n }>\n
    \n {config.feedbackLinksEnabled && (\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.global_docs_link_clicked)\n }\n />\n )}\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.feedback_link_clicked)\n }\n />\n
    \n
    \n );\n\n return (\n
    \n \n \n {dsVariable && (\n \n
    Data source
    \n \n
    \n )}\n
    \n
    \n \n setMenuVisible(!menuVisible)}>\n \n \n {controls.map((control) => (\n \n ))}\n
    \n
    \n \n \n
    Filters
    \n {primarySignalVariable && }\n
    \n {filtersVariable && (\n
    \n \n
    \n )}\n
    \n
    \n );\n};\n\nfunction getTopScene() {\n return new TracesByServiceScene({});\n}\n\nfunction getVariableSet(state: TraceExplorationState) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: state.initialDS,\n pluginId: 'tempo',\n isReadOnly: state.embedded,\n }),\n new PrimarySignalVariable({\n name: VAR_PRIMARY_SIGNAL,\n isReadOnly: state.embedded,\n }),\n new AttributeFiltersVariable({\n initialFilters: state.initialFilters,\n embedderName: state.embedderName,\n embedded: state.embedded,\n }),\n new CustomVariable({\n name: VAR_METRIC,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_GROUPBY,\n defaultToAll: false,\n value: state.initialGroupBy,\n }),\n new CustomVariable({\n name: VAR_SPAN_LIST_COLUMNS,\n defaultToAll: false,\n }),\n new CustomVariable({\n name: VAR_LATENCY_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_LATENCY_PARTIAL_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2, embedded?: boolean) {\n return {\n bodyContainer: css({\n label: 'bodyContainer',\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n container: css({\n label: 'container',\n flexGrow: 1,\n display: 'flex',\n gap: theme.spacing(1),\n minHeight: '100%',\n flexDirection: 'column',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(2)} ${theme.spacing(2)}`,\n overflow: 'auto' /* Needed for sticky positioning */,\n maxHeight: '100%' /* Needed for sticky positioning */,\n position: 'relative', // Needed for the drawer to be positioned correctly\n }),\n drawerHeader: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n paddingBottom: theme.spacing(2),\n marginBottom: theme.spacing(2),\n\n h3: {\n margin: 0,\n },\n }),\n drawerHeaderButtons: css({\n display: 'flex',\n justifyContent: 'flex-end',\n gap: theme.spacing(1.5),\n }),\n body: css({\n label: 'body',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n }),\n headerContainer: css({\n label: 'headerContainer',\n backgroundColor: embedded ? theme.colors.background.primary : theme.colors.background.canvas,\n display: 'flex',\n flexDirection: 'column',\n position: 'sticky',\n top: 0,\n zIndex: 3,\n padding: `${theme.spacing(1.5)} 0`,\n gap: theme.spacing(1),\n }),\n datasourceLabel: css({\n label: 'datasourceLabel',\n fontSize: '12px',\n padding: `0 ${theme.spacing(1)}`,\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n fontWeight: theme.typography.fontWeightMedium,\n position: 'relative',\n right: -1,\n width: '90px',\n }),\n controls: css({\n label: 'controls',\n display: 'flex',\n gap: theme.spacing(1),\n zIndex: 3,\n flexWrap: 'wrap',\n }),\n menu: css({\n label: 'menu',\n 'svg, span': {\n color: theme.colors.text.link,\n },\n }),\n menuHeader: css`\n padding: ${theme.spacing(0.5, 1)};\n white-space: nowrap;\n `,\n menuHeaderSubtitle: css`\n color: ${theme.colors.text.secondary};\n font-size: ${theme.typography.bodySmall.fontSize};\n `,\n tooltip: css({\n label: 'tooltip',\n fontSize: '14px',\n lineHeight: '22px',\n width: '180px',\n textAlign: 'center',\n }),\n helpIcon: css({\n label: 'helpIcon',\n marginLeft: theme.spacing(1),\n }),\n filters: css({\n label: 'filters',\n marginTop: theme.spacing(1),\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { css, keyframes } from '@emotion/css';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\nimport React from 'react';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { testIds } from 'utils/testIds';\n\ninterface LoadingStateSceneState extends SceneObjectState {\n component: () => React.JSX.Element;\n}\n\nexport class LoadingStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const { component } = model.useState();\n\n return (\n
    \n \n {component()}\n \n
    \n );\n };\n}\n\nconst fadeIn = keyframes({\n '0%': {\n opacity: 0,\n },\n '100%': {\n opacity: 1,\n },\n});\n\nfunction getStyles() {\n return {\n container: css({\n label: 'loading-state-scene',\n // animation prevents flickering when loading\n animationName: fadeIn,\n animationDelay: '100ms',\n animationTimingFunction: 'ease-in',\n animationDuration: '100ms',\n animationFillMode: 'backwards',\n }),\n };\n}\n","import React from 'react';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\n\ninterface StreamingIndicatorProps {\n isStreaming: boolean;\n iconSize?: number;\n}\n\nexport const StreamingIndicator = ({ \n isStreaming, \n iconSize = 14,\n}: StreamingIndicatorProps) => {\n const styles = useStyles2(getStyles, iconSize);\n\n if (!isStreaming) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2, iconSize: number) => {\n return {\n streamingIndicator: css({\n width: `${iconSize}px`,\n height: `${iconSize}px`,\n backgroundColor: theme.colors.success.text,\n fill: theme.colors.success.text,\n borderRadius: '50%',\n display: 'inline-block',\n }),\n };\n}; \n","import { map, Observable } from 'rxjs';\nimport { DataFrame, DataTopic, Field } from '@grafana/data';\nimport { CustomTransformerDefinition } from '@grafana/scenes';\n\nexport const exemplarsTransformations = (\n openTrace?: (traceId: string, spanId?: string) => void\n): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((frame) => {\n if (frame.name === 'exemplar') {\n const traceIDField = frame.fields.find((field: Field) => field.name === 'traceId');\n if (traceIDField) {\n // The traceID will be interpolated in the url\n // Then, onClick we retrieve the traceId from the url and navigate to the trace exploration scene by setting the state\n traceIDField.config.links = [\n {\n title: 'View trace',\n url: '#${__value.raw}',\n onClick: (event) => {\n event.e.stopPropagation(); // Prevent the click event from propagating to the parent anchor\n const parentAnchorHref = event.e.target?.parentElement?.parentElement?.href;\n if (!parentAnchorHref || parentAnchorHref.indexOf('#') === -1) {\n return;\n }\n const traceId = parentAnchorHref.split('#')[1];\n if (!traceId || traceId === '') {\n return;\n }\n openTrace?.(traceId);\n },\n },\n ];\n }\n }\n\n return frame;\n });\n })\n );\n },\n },\n];\n\nexport const removeExemplarsTransformation = (): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.filter((frame) => frame.name !== 'exemplar');\n })\n );\n },\n },\n];\n\n","import { throttle } from 'lodash';\nimport { useState, useEffect } from 'react';\n\ninterface MousePosition {\n x: number | null;\n y: number | null;\n}\n\n// For performance reasons, we throttle the mouse position updates\nconst DEFAULT_THROTTLE_INTERVAL_MS = 50;\n\nconst useMousePosition = (throttleInterval = DEFAULT_THROTTLE_INTERVAL_MS) => {\n const [mousePosition, setMousePosition] = useState({ x: null, y: null });\n\n useEffect(() => {\n const updateMousePosition = throttle((event: MouseEvent) => {\n setMousePosition({ x: event.clientX, y: event.clientY });\n }, throttleInterval);\n window.addEventListener('mousemove', updateMousePosition);\n\n return () => {\n window.removeEventListener('mousemove', updateMousePosition);\n };\n }, [throttleInterval]);\n\n return mousePosition;\n};\n\nexport default useMousePosition;\n","import { css } from '@emotion/css';\nimport React, { SVGProps } from 'react';\nimport SVG from 'react-inlinesvg';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\n\nimport dark404 from './img/grot-404-dark.svg';\nimport light404 from './img/grot-404-light.svg';\n\nimport useMousePosition from './useMousePosition';\n\nconst MIN_ARM_ROTATION = -20;\nconst MAX_ARM_ROTATION = 5;\nconst MIN_ARM_TRANSLATION = -5;\nconst MAX_ARM_TRANSLATION = 5;\n\nexport interface Props {\n width?: SVGProps['width'];\n height?: SVGProps['height'];\n show404?: boolean;\n}\n\nexport const GrotNotFound = ({ width = 'auto', height, show404 = false }: Props) => {\n const theme = useTheme2();\n const { x, y } = useMousePosition();\n const styles = useStyles2(getStyles, x, y, show404);\n return ;\n};\n\nGrotNotFound.displayName = 'GrotNotFound';\n\nconst getStyles = (theme: GrafanaTheme2, xPos: number | null, yPos: number | null, show404: boolean) => {\n const { innerWidth, innerHeight } = window;\n const heightRatio = yPos && yPos / innerHeight;\n const widthRatio = xPos && xPos / innerWidth;\n const rotation = heightRatio !== null ? getIntermediateValue(heightRatio, MIN_ARM_ROTATION, MAX_ARM_ROTATION) : 0;\n const translation =\n widthRatio !== null ? getIntermediateValue(widthRatio, MIN_ARM_TRANSLATION, MAX_ARM_TRANSLATION) : 0;\n\n return {\n svg: css({\n '#grot-404-arm, #grot-404-magnifier': {\n transform: `rotate(${rotation}deg) translateX(${translation}%)`,\n transformOrigin: 'center',\n transition: 'transform 50ms linear',\n },\n '#grot-404-text': {\n display: show404 ? 'block' : 'none',\n },\n }),\n };\n};\n\n/**\n * Given a start value, end value, and a ratio, return the intermediate value\n * Works with negative and inverted start/end values\n */\nconst getIntermediateValue = (ratio: number, start: number, end: number) => {\n const value = ratio * (end - start) + start;\n return value;\n};\n","import React from 'react';\n\nimport { Icon, Stack, Text, useStyles2 } from '@grafana/ui';\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { GrotNotFound } from './GrotNotFound';\nimport { css } from '@emotion/css';\nimport { testIds } from 'utils/testIds';\n\nexport interface Props {\n message?: string | React.ReactNode;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport const EmptyState = ({ message, remedyMessage, imgWidth, padding }: Props) => {\n const styles = useStyles2(getStyles, padding);\n\n return (\n
    \n \n \n {typeof message === 'string' && {message}}\n {typeof message !== 'string' && message}\n\n {remedyMessage && (\n
    \n \n \n \n {remedyMessage}\n \n \n
    \n )}\n
    \n
    \n );\n};\n\nEmptyState.displayName = 'EmptyState';\n\nfunction getStyles(theme: GrafanaTheme2, padding?: string) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n justifyContent: 'space-evenly',\n flexDirection: 'column',\n padding: padding ? padding : 0,\n }),\n remedy: css({\n marginBottom: theme.spacing(4),\n })\n };\n}\n","import { SelectableValue } from '@grafana/data';\n\nexport const DATABASE_CALLS_KEY = 'span.db.system.name';\n\nexport const primarySignalOptions: Array> = [\n {\n label: 'Root spans',\n value: 'nestedSetParent<0',\n filter: { key: 'nestedSetParent', operator: '<', value: '0' },\n description: 'Focus your analysis on the root span of each trace',\n },\n {\n label: 'All spans',\n value: 'true',\n filter: { key: '', operator: '', value: true },\n description: 'View and analyse raw span data. This option may result in long query times.',\n },\n {\n label: 'Server spans',\n value: 'kind=server',\n filter: { key: 'kind', operator: '=', value: 'server' },\n description: 'Explore server-specific segments of traces',\n },\n {\n label: 'Consumer spans',\n value: 'kind=consumer',\n filter: { key: 'kind', operator: '=', value: 'consumer' },\n description: 'Analyze interactions initiated by consumer services',\n },\n {\n label: 'Database calls',\n value: `${DATABASE_CALLS_KEY}!=\"\"`,\n filter: { key: DATABASE_CALLS_KEY, operator: '!=', value: '\"\"' },\n description: 'Evaluate the performance issues in database interactions',\n },\n];\n\nexport const getSignalForKey = (key?: string) => {\n return primarySignalOptions.find((option) => option.value === key);\n};\n","import { PanelMenuItem, PluginExtensionLink, toURLRange, urlUtil } from '@grafana/data';\nimport {\n SceneObjectBase,\n VizPanelMenu,\n SceneObject,\n SceneComponentProps,\n sceneGraph,\n SceneObjectState,\n} from '@grafana/scenes';\nimport React from 'react';\nimport { AddToInvestigationButton } from '../actions/AddToInvestigationButton';\n// Certain imports are not available in the dependant package, but can be if the plugin is running in a different Grafana version.\n// We need both imports to support Grafana v11 and v12.\n// @ts-expect-error\nimport { config, getPluginLinkExtensions, getObservablePluginLinks } from '@grafana/runtime';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getCurrentStep, getDataSource, getTraceExplorationScene } from 'utils/utils';\nimport { firstValueFrom } from 'rxjs';\n\nexport const ADD_TO_INVESTIGATION_MENU_TEXT = 'Add to investigation';\nconst extensionPointId = 'grafana-exploretraces-app/investigation/v1';\nconst ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT = 'investigations_divider'; // Text won't be visible\nconst ADD_TO_INVESTIGATION_MENU_GROUP_TEXT = 'Investigations';\n\ninterface PanelMenuState extends SceneObjectState {\n body?: VizPanelMenu;\n query?: string;\n labelValue?: string;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nexport class PanelMenu extends SceneObjectBase implements VizPanelMenu, SceneObject {\n constructor(state: Partial) {\n super(state);\n this.addActivationHandler(() => {\n const items: PanelMenuItem[] = [\n {\n text: 'Navigation',\n type: 'group',\n },\n {\n text: 'Explore',\n iconClassName: 'compass',\n href: getExploreHref(this),\n onClick: () => onExploreClick(),\n },\n ];\n\n this.setState({\n body: new VizPanelMenu({\n items,\n }),\n });\n\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: this.state.query,\n dsUid,\n });\n\n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton?.subscribeToState(() => {\n subscribeToAddToInvestigation(this);\n })\n );\n \n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: this.state.labelValue,\n });\n });\n }\n\n addItem(item: PanelMenuItem): void {\n if (this.state.body) {\n this.state.body.addItem(item);\n }\n }\n\n setItems(items: PanelMenuItem[]): void {\n if (this.state.body) {\n this.state.body.setItems(items);\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n\n if (body) {\n return ;\n }\n\n return <>;\n };\n}\n\nconst getExploreHref = (model: SceneObject) => {\n const traceExploration = getTraceExplorationScene(model);\n const datasource = getDataSource(traceExploration);\n const timeRange = sceneGraph.getTimeRange(model).state.value;\n const step = getCurrentStep(model);\n\n const exploreState = JSON.stringify({\n ['traces-explore']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'A', datasource, query: model.state.query, step }],\n },\n });\n const subUrl = config.appSubUrl ?? '';\n const exploreUrl = urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n return exploreUrl;\n};\n\nconst onExploreClick = () => {\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_in_explore_clicked);\n};\n\nexport const getInvestigationLink = async (addToInvestigations: AddToInvestigationButton) => {\n const context = addToInvestigations.state.context;\n\n // `getPluginLinkExtensions` is removed in Grafana v12\n if (getPluginLinkExtensions !== undefined) {\n const links = getPluginLinkExtensions({\n extensionPointId,\n context,\n });\n\n return links.extensions[0];\n }\n\n // `getObservablePluginLinks` is introduced in Grafana v12\n if (getObservablePluginLinks !== undefined) {\n const links: PluginExtensionLink[] = await firstValueFrom(\n getObservablePluginLinks({\n extensionPointId,\n context,\n })\n );\n\n return links[0];\n }\n\n return undefined;\n};\n\nasync function subscribeToAddToInvestigation(menu: PanelMenu) {\n const addToInvestigationButton = menu.state.addToInvestigationButton;\n if (addToInvestigationButton) {\n const link = await getInvestigationLink(addToInvestigationButton);\n const existingMenuItems = menu.state.body?.state.items ?? [];\n const existingAddToInvestigationLink = existingMenuItems.find(\n (item) => item.text === ADD_TO_INVESTIGATION_MENU_TEXT\n );\n\n if (link) {\n if (!existingAddToInvestigationLink) {\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n type: 'divider',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n type: 'group',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_TEXT,\n iconClassName: 'plus-square',\n onClick: (e) => {\n if (link.onClick) {\n link.onClick(e);\n }\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_clicked\n );\n },\n });\n } else {\n if (existingAddToInvestigationLink) {\n menu.state.body?.setItems(\n existingMenuItems.filter(\n (item) =>\n [\n ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n ADD_TO_INVESTIGATION_MENU_TEXT,\n ].includes(item.text) === false\n )\n );\n }\n }\n }\n }\n}\n","import { DataFrame } from '@grafana/data';\nimport { ComparisonSelection, MetricFunction } from './shared';\n\nexport const computeHighestDifference = (frame: DataFrame) => {\n const baselineField = frame.fields.find((f) => f.name === 'Baseline');\n const selectionField = frame.fields.find((f) => f.name === 'Selection');\n\n let maxDifference = 0;\n let maxDifferenceIndex = 0;\n\n for (let i = 0; i < (baselineField?.values?.length || 0); i++) {\n const diff = (selectionField?.values[i] || 0) - (baselineField?.values[i] || 0);\n if (Math.abs(diff) > Math.abs(maxDifference || 0)) {\n maxDifference = diff;\n maxDifferenceIndex = i;\n }\n }\n\n return { maxDifference, maxDifferenceIndex };\n};\n\nexport const getDefaultSelectionForMetric = (metric: MetricFunction): ComparisonSelection | undefined => {\n if (metric === 'duration') {\n return undefined;\n }\n return { query: 'status = error', type: 'auto' };\n};\n","import React, { useEffect } from 'react';\nimport { CustomVariable, MultiValueVariable, MultiValueVariableState, SceneComponentProps } from '@grafana/scenes';\nimport { primarySignalOptions } from './primary-signals';\nimport { Icon, RadioButtonGroup, Select, useStyles2, Text } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { components, DropdownIndicatorProps } from 'react-select';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { GrafanaTheme2 } from '@grafana/data';\n\nconst CustomMenu = (props: any) => {\n const styles = useStyles2(getStyles);\n return ;\n};\n\nexport function DropdownIndicator({ selectProps }: DropdownIndicatorProps) {\n const isOpen = selectProps.menuIsOpen;\n const icon = isOpen ? 'angle-up' : 'angle-down';\n const size = 'md';\n return ;\n}\n\nconst GroupHeading = () => {\n const styles = useStyles2(getStyles);\n return (\n
    \n \n Primary signal\n \n
    \n );\n};\n\nexport class PrimarySignalVariable extends CustomVariable {\n static Component = ({ model }: SceneComponentProps>) => {\n const styles = useStyles2(getStyles);\n const { value, isReadOnly } = model.useState();\n\n // ensure the variable is set to the default value\n useEffect(() => {\n if (!value) {\n model.changeValueTo(isReadOnly ? primarySignalOptions[1].value! : primarySignalOptions[0].value!);\n }\n });\n\n const buttonGroupOptions = primarySignalOptions.slice(0, 2);\n const currentSignal = primarySignalOptions.find((option) => option.value === value);\n if (currentSignal && !buttonGroupOptions.some((option) => option.filter.key === currentSignal.filter.key)) {\n buttonGroupOptions.push(currentSignal);\n }\n const selectOptions = primarySignalOptions.filter(\n (option) => !buttonGroupOptions.some((b) => b.value === option.value)\n );\n\n const onChange = (v: string) => {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.primary_signal_changed,\n {\n primary_signal: v,\n }\n );\n model.changeValueTo(v!, undefined, true);\n };\n\n if (isReadOnly) {\n return <>;\n }\n\n return (\n <>\n \n onChange(v.value!)}\n className={styles.select}\n components={{\n IndicatorSeparator: () => null,\n SingleValue: () => null,\n Menu: CustomMenu,\n DropdownIndicator,\n GroupHeading,\n }}\n />\n \n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n select: css`\n [class$='input-suffix'] {\n position: absolute;\n z-index: 2;\n }\n\n :focus-within {\n outline: none;\n box-shadow: none;\n }\n\n > div {\n padding: 0;\n }\n\n input {\n opacity: 0 !important;\n }\n\n border-radius: 0 2px 2px 0;\n border-left: none;\n `,\n buttonGroup: css`\n border-radius: 2px 0 0 2px;\n `,\n customMenu: css`\n width: 230px;\n\n [class$='grafana-select-option-grafana-select-option-focused'] {\n background: transparent;\n\n ::before {\n display: none;\n }\n }\n `,\n heading: css({\n padding: theme.spacing(1, 1, 0.75, 0.75),\n borderLeft: '2px solid transparent',\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n }),\n});\n","import { reportInteraction } from '@grafana/runtime';\nimport pluginJson from '../plugin.json';\n\n// Helper function to create a unique interaction name for analytics\nconst createInteractionName = (page: UserEventPagesType, action: string) => {\n return `${pluginJson.id.replace(/-/g, '_')}_${page}_${action}`;\n};\n\n// Runs reportInteraction with a standardized interaction name\nexport const reportAppInteraction = (\n page: UserEventPagesType,\n action: UserEventActionType,\n properties?: Record\n) => {\n reportInteraction(createInteractionName(page, action), properties);\n};\n\nexport const USER_EVENTS_PAGES = {\n analyse_traces: 'analyse_traces',\n home: 'home',\n common: 'common',\n} as const;\n\nexport type UserEventPagesType = keyof typeof USER_EVENTS_PAGES;\ntype UserEventActionType =\n | keyof (typeof USER_EVENTS_ACTIONS)['analyse_traces']\n | keyof (typeof USER_EVENTS_ACTIONS)['home']\n | keyof (typeof USER_EVENTS_ACTIONS)['common'];\n\nexport const USER_EVENTS_ACTIONS = {\n [USER_EVENTS_PAGES.analyse_traces]: {\n action_view_changed: 'action_view_changed',\n breakdown_group_by_changed: 'breakdown_group_by_changed',\n breakdown_add_to_filters_clicked: 'breakdown_add_to_filters_clicked',\n comparison_add_to_filters_clicked: 'comparison_add_to_filters_clicked',\n select_attribute_in_comparison_clicked: 'select_attribute_in_comparison_clicked',\n layout_type_changed: 'layout_type_changed',\n start_investigation: 'start_investigation',\n stop_investigation: 'stop_investigation',\n open_trace: 'open_trace',\n open_in_explore_clicked: 'open_in_explore_clicked',\n add_to_investigation_clicked: 'add_to_investigation_clicked',\n add_to_investigation_trace_view_clicked: 'add_to_investigation_trace_view_clicked',\n span_list_columns_changed: 'span_list_columns_changed',\n toggle_bookmark_clicked: 'toggle_bookmark_clicked',\n primary_signal_changed: 'primary_signal_changed',\n exception_message_clicked: 'exception_message_clicked',\n },\n [USER_EVENTS_PAGES.home]: {\n homepage_initialized: 'homepage_initialized',\n panel_row_clicked: 'panel_row_clicked',\n explore_traces_clicked: 'explore_traces_clicked',\n read_documentation_clicked: 'read_documentation_clicked',\n filter_changed: 'filter_changed',\n go_to_bookmark_clicked: 'go_to_bookmark_clicked',\n },\n [USER_EVENTS_PAGES.common]: {\n metric_changed: 'metric_changed',\n new_filter_added_manually: 'new_filter_added_manually',\n app_initialized: 'app_initialized',\n global_docs_link_clicked: 'global_docs_link_clicked',\n metric_docs_link_clicked: 'metric_docs_link_clicked',\n feedback_link_clicked: 'feedback_link_clicked',\n go_to_full_app_clicked: 'go_to_full_app_clicked',\n },\n} as const;\n","import { QueryRunnerState, sceneGraph, SceneQueryRunner } from '@grafana/scenes';\nimport { getStepForTimeRange } from '../../../utils/dates';\n\nexport class StepQueryRunner extends SceneQueryRunner {\n constructor(state: QueryRunnerState) {\n super(state);\n this.addActivationHandler(this._onActivateStep.bind(this));\n }\n\n private _onActivateStep() {\n const step = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step,\n };\n }),\n });\n\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n const newStep = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step: newStep,\n };\n }),\n });\n }\n });\n }\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { DrawStyle, StackingMode, TooltipDisplayMode } from '@grafana/ui';\nimport { MetricFunction } from 'utils/shared';\n\nexport const barsPanelConfig = (metric: MetricFunction, axisWidth?: number) => {\n const isErrorsMetric = metric === 'errors' || false;\n \n const builder = PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setCustomFieldConfig('drawStyle', DrawStyle.Bars)\n .setCustomFieldConfig('stacking', { mode: StackingMode.Normal })\n .setCustomFieldConfig('fillOpacity', 75)\n .setCustomFieldConfig('lineWidth', 0)\n .setCustomFieldConfig('pointSize', 0)\n .setCustomFieldConfig('axisLabel', 'Rate')\n .setOverrides((overrides) => {\n overrides.matchFieldsWithNameByRegex('.*').overrideColor({\n mode: 'fixed',\n fixedColor: isErrorsMetric ? 'semi-dark-red' : 'green',\n });\n })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi });\n\n if (axisWidth !== undefined) {\n builder.setCustomFieldConfig('axisWidth', axisWidth);\n }\n\n return builder;\n};\n","import React from 'react';\n\nimport { SceneObjectBase, SceneComponentProps, SceneObjectState } from '@grafana/scenes';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getMetricValue, getTraceByServiceScene, shouldShowSelection } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { ComparisonSelection } from '../../../utils/shared';\n\nexport interface ComparisonControlState extends SceneObjectState {\n selection?: ComparisonSelection;\n}\n\nexport class DurationComparisonControl extends SceneObjectBase {\n public constructor({ selection }: ComparisonControlState) {\n super({ selection });\n }\n\n public startInvestigation = () => {\n const byServiceScene = getTraceByServiceScene(this);\n byServiceScene.setState({ selection: this.state.selection });\n if (!shouldShowSelection(byServiceScene.state.actionView)) {\n byServiceScene.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: this.state.selection,\n metric: getMetricValue(this),\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { selection } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n const isDisabled = selection?.type === 'auto';\n const tooltip = isDisabled\n ? 'Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.'\n : undefined;\n\n return (\n
    \n \n {isDisabled ? 'Slowest traces selected' : 'Select slowest traces'}\n \n
    \n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n wrapper: css({\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }),\n placeholder: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n display: 'flex',\n gap: theme.spacing.x0_5,\n }),\n };\n}\n","import React, { ReactElement } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { usePluginComponent } from '@grafana/runtime';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\nimport { css } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport { getMetricVariable } from 'utils/utils';\nimport { MetricFunction } from 'utils/shared';\n\nexport type AssertionSeverity = 'warning' | 'critical' | 'info';\n\ninterface InsightsTimelineWidgetProps {\n serviceName: string;\n start: string | number;\n end: string | number;\n filterBySeverity?: AssertionSeverity[];\n filterBySummaryKeywords?: string[];\n label?: ReactElement;\n}\n\nexport type InsightsTimelineWidgetExternal = (props: InsightsTimelineWidgetProps) => ReactElement | null;\n\ninterface Props {\n serviceName: string;\n model: SceneObject;\n}\n\nexport function InsightsTimelineWidget({ serviceName, model }: Props) {\n const { isLoading, component: InsightsTimelineWidgetExternal } = usePluginComponent(\n 'grafana-asserts-app/insights-timeline-widget/v1'\n );\n const styles = useStyles2(getStyles);\n const sceneTimeRange = sceneGraph.getTimeRange(model).useState();\n\n const metric = getMetricVariable(model).state.value as MetricFunction;\n let filterBySeverity: AssertionSeverity[] = [];\n if (metric === 'errors') {\n filterBySeverity = ['critical', 'warning'];\n } else if (metric === 'rate') {\n filterBySeverity = ['info'];\n }\n\n let filterBySummaryKeywords: string[] = [];\n if (metric === 'duration') {\n filterBySummaryKeywords = ['latency'];\n }\n\n if (isLoading || !InsightsTimelineWidgetExternal || !sceneTimeRange || !serviceName) {\n return null;\n }\n\n return (\n Insights}\n />\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n label: css({\n fontSize: '12px',\n color: theme.colors.text.secondary,\n marginLeft: '35px', // we are also passing an axisWidth of 70 to barsPanelConfig()\n marginTop: '-3px',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { arrayToDataFrame, DataFrame, GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { ComparisonSelection, EMPTY_STATE_ERROR_MESSAGE, explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { getMetricsTempoQuery } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { css } from '@emotion/css';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { StreamingIndicator } from '../StreamingIndicator';\nimport {\n fieldHasEmptyValues,\n getLatencyPartialThresholdVariable,\n getLatencyThresholdVariable,\n getMetricVariable,\n getOpenTrace,\n getTraceByServiceScene,\n shouldShowSelection,\n} from '../../../utils/utils';\nimport { getHistogramVizPanel, yBucketToDuration } from '../panels/histogram';\nimport { TraceSceneState } from './TracesByServiceScene';\nimport { SelectionColor } from '../layouts/allComparison';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { isEqual } from 'lodash';\nimport { DurationComparisonControl } from './DurationComparisonControl';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\nimport { InsightsTimelineWidget } from 'addedComponents/InsightsTimelineWidget/InsightsTimelineWidget';\nimport { useServiceName } from 'pages/Explore/TraceExploration';\n\nexport interface RateMetricsPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n actions?: SceneObject[];\n yBuckets?: number[];\n isStreaming?: boolean;\n}\n\nexport class REDPanel extends SceneObjectBase {\n constructor(state: RateMetricsPanelState) {\n super({\n yBuckets: [],\n actions: [],\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n const parent = getTraceByServiceScene(this);\n const timeRange = sceneGraph.getTimeRange(this);\n\n this._subs.add(\n data.subscribeToState((newData) => {\n this.setState({ isStreaming: newData.data?.state === LoadingState.Streaming });\n\n if (newData.data?.state === LoadingState.Done) {\n if (\n newData.data.series.length === 0 ||\n newData.data.series[0].length === 0 ||\n fieldHasEmptyValues(newData)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n imgWidth: 150,\n }),\n }),\n ],\n }),\n });\n } else {\n let yBuckets: number[] | undefined = [];\n if (this.isDuration()) {\n yBuckets = getYBuckets(data.state.data?.series || []);\n if (parent.state.selection && newData.data?.state === LoadingState.Done) {\n // set selection annotation if it exists\n const annotations = this.buildSelectionAnnotation(parent.state);\n\n if (annotations && !data.state.data?.annotations?.length) {\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n\n if (yBuckets?.length) {\n const { minDuration, minBucket } = getMinimumsForDuration(yBuckets);\n const selection: ComparisonSelection = { type: 'auto' };\n\n getLatencyThresholdVariable(this).changeValueTo(minDuration);\n getLatencyPartialThresholdVariable(this).changeValueTo(\n yBucketToDuration(minBucket - 1, yBuckets, 0.3)\n );\n\n selection.duration = { from: minDuration, to: '' };\n selection.raw = {\n x: {\n from: timeRange.state.value.from.unix() * 1000,\n to: timeRange.state.value.to.unix() * 1000,\n },\n y: { from: minBucket - 0.5, to: yBuckets.length - 0.5 },\n };\n\n this.setState({\n actions: [\n new DurationComparisonControl({\n selection,\n }),\n ],\n });\n if (!parent.state.selection?.duration || parent.state.selection.type === 'auto') {\n parent.setState({ selection });\n }\n }\n }\n\n // update panel\n this.setState({\n yBuckets,\n panel: this.getVizPanel(),\n });\n }\n } else if (newData.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n\n this._subs.add(\n parent.subscribeToState((newState, prevState) => {\n if (data.state.data?.state === LoadingState.Done) {\n if (!isEqual(newState.selection, prevState.selection) || newState.actionView !== prevState.actionView) {\n if (this.isDuration()) {\n const annotations = this.buildSelectionAnnotation(newState);\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n }\n })\n );\n });\n }\n\n private isDuration() {\n return getMetricVariable(this).state.value === 'duration';\n }\n\n private _onActivate() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.isDuration() ? 24 : 64,\n datasource: explorationDS,\n queries: [this.isDuration() ? buildHistogramQuery() : getMetricsTempoQuery({ metric, sample: true })],\n }),\n transformations: this.isDuration()\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(),\n });\n }\n\n private getVizPanel() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n if (this.isDuration()) {\n return getHistogramVizPanel(this, this.state.yBuckets ?? []);\n }\n\n return this.getRateOrErrorVizPanel(metric);\n }\n\n private getRateOrErrorVizPanel(type: MetricFunction) {\n const panel = barsPanelConfig(type, 70).setHoverHeader(true).setDisplayMode('transparent');\n if (type === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (type === 'errors') {\n panel.setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel.build(),\n }),\n ],\n });\n }\n\n private buildSelectionAnnotation(state: TraceSceneState) {\n if (!shouldShowSelection(state.actionView)) {\n return undefined;\n }\n\n const xSel = state.selection?.raw?.x;\n const ySel = state.selection?.raw?.y;\n\n const frame = arrayToDataFrame([\n {\n time: xSel?.from || 0,\n xMin: xSel?.from || 0,\n xMax: xSel?.to || 0,\n timeEnd: xSel?.to || 0,\n yMin: ySel?.from,\n yMax: ySel?.to,\n isRegion: true,\n fillOpacity: 0.15,\n lineWidth: 1,\n lineStyle: 'solid',\n color: SelectionColor,\n text: 'Comparison selection',\n },\n ]);\n frame.name = 'xymark';\n\n return [frame];\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, actions, isStreaming } = model.useState();\n const { value: metric } = getMetricVariable(model).useState();\n const styles = useStyles2(getStyles);\n const serviceName = useServiceName(model);\n\n if (!panel) {\n return;\n }\n\n const getTitle = () => {\n switch (metric) {\n case 'errors':\n return 'Errors rate';\n case 'rate':\n return 'Span rate';\n case 'duration':\n return 'Histogram by duration';\n default:\n return '';\n }\n };\n\n const getSubtitle = () => {\n switch (metric) {\n case 'duration':\n return 'Click and drag to compare selection with baseline.';\n default:\n return '';\n }\n };\n\n const subtitle = getSubtitle();\n\n return (\n
    \n
    \n
    \n
    \n \n {getTitle()}\n
    \n {subtitle &&
    {subtitle}
    }\n
    \n
    \n {isStreaming && }\n {actions?.map((action) => )}\n
    \n
    \n \n \n
    \n );\n };\n}\n\nexport const getYBuckets = (series: DataFrame[]) => {\n return series.map((s) => parseFloat(s.fields[1].name)).sort((a, b) => a - b);\n};\n\nexport const getMinimumsForDuration = (yBuckets: number[]) => {\n const slowestBuckets = Math.floor(yBuckets.length / 4);\n let minBucket = yBuckets.length - slowestBuckets - 1;\n if (minBucket < 0) {\n minBucket = 0;\n }\n\n return {\n minDuration: yBucketToDuration(minBucket - 1, yBuckets),\n minBucket,\n };\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n\n '.show-on-hover': {\n display: 'none',\n },\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n '& .u-select': {\n border: '1px solid #ffffff75',\n },\n }),\n headerContainer: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n padding: '8px',\n gap: '8px',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n fontWeight: theme.typography.fontWeightBold,\n }),\n titleContainer: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n }),\n titleRadioWrapper: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actions: css({\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }),\n subtitle: css({\n display: 'flex',\n color: theme.colors.text.secondary,\n fontSize: '12px',\n fontWeight: 400,\n\n '& svg': {\n margin: '0 2px',\n },\n }),\n };\n}\n","import { dropWhile as _dropWhile, round as _round } from 'lodash';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\nimport { duration } from 'moment/moment';\n\nexport const ONE_MILLISECOND = 1000;\nexport const ONE_SECOND = 1000 * ONE_MILLISECOND;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const DEFAULT_MS_PRECISION = Math.log10(ONE_MILLISECOND);\n\nconst UNIT_STEPS: Array<{ unit: string; microseconds: number; ofPrevious: number }> = [\n { unit: 'd', microseconds: ONE_DAY, ofPrevious: 24 },\n { unit: 'h', microseconds: ONE_HOUR, ofPrevious: 60 },\n { unit: 'm', microseconds: ONE_MINUTE, ofPrevious: 60 },\n { unit: 's', microseconds: ONE_SECOND, ofPrevious: 1000 },\n { unit: 'ms', microseconds: ONE_MILLISECOND, ofPrevious: 1000 },\n { unit: 'μs', microseconds: 1, ofPrevious: 1000 },\n];\n\n/**\n * Humanizes the duration for display.\n *\n * Example:\n * 5000ms => 5s\n * 1000μs => 1ms\n * 183840s => 2d 3h\n *\n * @param {number} duration (in microseconds)\n * @return {string} formatted duration\n */\nexport const formatDuration = (duration: number): string => {\n // Drop all units that are too large except the last one\n const [primaryUnit, secondaryUnit] = _dropWhile(\n UNIT_STEPS,\n ({ microseconds }, index) => index < UNIT_STEPS.length - 1 && microseconds > duration\n );\n\n if (primaryUnit.ofPrevious === 1000) {\n // If the unit is decimal based, display as a decimal\n return `${_round(duration / primaryUnit.microseconds, 2)}${primaryUnit.unit}`;\n }\n\n let primaryValue = Math.floor(duration / primaryUnit.microseconds);\n let secondaryValue = (duration / secondaryUnit.microseconds) % primaryUnit.ofPrevious;\n const secondaryValueRounded = Math.round(secondaryValue);\n\n // Handle rollover case before rounding (e.g., 60s should become 1m, not 0m 60s)\n if (secondaryValueRounded === primaryUnit.ofPrevious) {\n primaryValue += 1;\n secondaryValue = 0;\n } else {\n secondaryValue = secondaryValueRounded;\n }\n\n const primaryUnitString = `${primaryValue}${primaryUnit.unit}`;\n\n if (secondaryValue === 0) {\n return primaryUnitString;\n }\n\n const secondaryUnitString = `${secondaryValue}${secondaryUnit.unit}`;\n return `${primaryUnitString} ${secondaryUnitString}`;\n}\n\n/**\n * Calculate bucket size based on time range and desired number of data points\n * @param timeRangeSeconds - The time range in seconds\n * @param dataPoints - Desired number of data points (default: 50)\n * @returns Bucket size in seconds\n */\nexport const calculateBucketSize = (timeRangeSeconds: number, dataPoints = 50): number => {\n return Math.floor(timeRangeSeconds / dataPoints) || 1;\n};\n\nexport const getStepForTimeRange = (scene: SceneObject, dataPoints?: number) => {\n const sceneTimeRange = sceneGraph.getTimeRange(scene);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n\n const dur = duration(to - from, 's');\n const bucketSizeSeconds = calculateBucketSize(dur.asSeconds(), dataPoints);\n return `${bucketSizeSeconds}s`;\n}\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { Alert } from '@grafana/ui';\nimport { testIds } from 'utils/testIds';\n\ninterface ErrorStateSceneState extends SceneObjectState {\n message: string;\n}\n\nexport class ErrorStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message } = model.useState();\n return (\n \n {message}\n \n );\n };\n}\n","import { Field, Input, Icon, useStyles2 } from \"@grafana/ui\"\nimport React from \"react\"\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { css } from \"@emotion/css\";\n\ntype Props = {\n searchQuery: string;\n onSearchQueryChange: (event: React.ChangeEvent) => void;\n}\n\nexport const Search = (props: Props) => {\n const styles = useStyles2(getStyles);\n const { searchQuery, onSearchQueryChange } = props;\n\n return (\n \n }\n value={searchQuery}\n onChange={onSearchQueryChange}\n id='searchFieldInput'\n />\n \n )\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n searchField: css({\n marginBottom: theme.spacing(1),\n }),\n };\n}\n","import { DataQueryResponseData, Field } from '@grafana/data';\n\nexport function cloneDataFrame(frame: DataQueryResponseData): DataQueryResponseData {\n return {\n ...frame,\n fields: frame.fields.map((field: Field) => ({\n ...field,\n values: field.values,\n })),\n };\n}\n","import React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, LoadingState, PanelData, sortDataFrame } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneCSSGridLayout,\n SceneFlexItem,\n sceneGraph,\n SceneLayout,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { ErrorStateScene } from 'components/states/ErrorState/ErrorStateScene';\nimport { debounce } from 'lodash';\nimport { Search } from './Search';\nimport { getGroupByVariable } from 'utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTimeseriesDataReceived,\n GRID_TEMPLATE_COLUMNS,\n} from '../../utils/shared';\nimport { cloneDataFrame } from '../../utils/frames';\n\ninterface ByFrameRepeaterState extends SceneObjectState {\n body: SceneLayout;\n groupBy?: boolean;\n\n getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneFlexItem;\n\n searchQuery?: string;\n}\n\nexport class ByFrameRepeater extends SceneObjectBase {\n public constructor(state: ByFrameRepeaterState) {\n super(state);\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (data.data.series.length === 0 && data.data?.state !== LoadingState.Streaming) {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n });\n } else if (data.data?.state === LoadingState.Done) {\n const filtered = {\n ...data.data,\n series: data.data?.series.filter(doesQueryMatchDataFrameLabels(this.state.searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n this.publishEvent(new EventTimeseriesDataReceived({ series: data.data.series }), true);\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new ErrorStateScene({\n message: data.data.errors?.[0]?.message ?? 'An error occurred in the query',\n }),\n ],\n }),\n ],\n });\n } else {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(8),\n }),\n ],\n }),\n ],\n });\n }\n })\n );\n\n this.subscribeToState((newState, prevState) => {\n if (newState.searchQuery !== prevState.searchQuery) {\n this.onSearchQueryChangeDebounced(newState.searchQuery ?? '');\n }\n });\n\n if (data.state.data) {\n this.performRepeat(data.state.data);\n }\n });\n }\n\n private onSearchQueryChange = (evt: React.SyntheticEvent) => {\n this.setState({ searchQuery: evt.currentTarget.value });\n };\n\n private onSearchQueryChangeDebounced = debounce((searchQuery: string) => {\n const data = sceneGraph.getData(this);\n const filtered = {\n ...data.state.data,\n series: data.state.data?.series.filter(doesQueryMatchDataFrameLabels(searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n }, 250);\n\n private renderFilteredData(filtered: PanelData) {\n if (filtered.series && filtered.series.length > 0) {\n this.performRepeat(filtered as PanelData);\n } else {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: 'No data for search term',\n padding: '32px',\n }),\n }),\n ],\n });\n }\n }\n\n private groupSeriesBy(data: PanelData, groupBy: string) {\n const groupedData = data.series.reduce(\n (acc, series) => {\n const key = series.fields.find((f) => f.type === FieldType.number)?.labels?.[groupBy];\n if (!key) {\n return acc;\n }\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(series);\n return acc;\n },\n {} as Record\n );\n\n const newSeries = [];\n for (const key in groupedData) {\n const frames = groupedData[key].sort((a, b) => a.name?.localeCompare(b.name!) || 0);\n const mainFrame = cloneDataFrame(frames[0]);\n frames.slice(1, frames.length).forEach((frame) => mainFrame.fields.push(frame.fields[1]));\n newSeries.push(sortDataFrame(mainFrame, 0));\n }\n return newSeries;\n }\n\n private performRepeat(data: PanelData) {\n const newChildren: SceneFlexItem[] = [];\n let frames = data.series;\n\n if (this.state.groupBy) {\n frames = this.groupSeriesBy(data, getGroupByVariable(this).getValueText());\n }\n\n for (let frameIndex = 0; frameIndex < frames.length; frameIndex++) {\n const currentFrame = frames[frameIndex];\n // Skip frames with no data\n const sum = currentFrame.fields\n .filter((f) => f.type === FieldType.number)\n .reduce((sum, f) => sum + f.values.reduce((vSum, v) => vSum + (v || 0), 0) || 0, 0);\n if (sum === 0) {\n continue;\n }\n // Build the layout child\n const layoutChild = this.state.getLayoutChild(data, frames[frameIndex], frameIndex);\n newChildren.push(layoutChild);\n }\n\n this.state.body.setState({ children: newChildren });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body, searchQuery } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
    \n \n \n
    \n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n }),\n };\n}\n\nexport const SkeletonComponent = (repeat: number) => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
    \n {[...Array(repeat)].map((_, i) => (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {[...Array(2)].map((_, i) => (\n
    \n \n
    \n ))}\n
    \n
    \n {[...Array(2)].map((_, i) => (\n
    \n \n
    \n ))}\n
    \n
    \n ))}\n
    \n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'grid',\n gridTemplateColumns: GRID_TEMPLATE_COLUMNS,\n gridAutoRows: '200px',\n rowGap: theme.spacing(1),\n columnGap: theme.spacing(1),\n }),\n itemContainer: css({\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.background.secondary}`,\n padding: '5px',\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n title: css({\n width: '100px',\n }),\n action: css({\n width: '60px',\n }),\n yAxis: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n marginTop: '35px',\n }),\n yAxisItem: css({\n width: '60px',\n height: '55px',\n }),\n xAxis: css({\n display: 'flex',\n justifyContent: 'space-evenly',\n }),\n xAxisItem: css({\n width: '55px',\n }),\n };\n}\n\nexport const doesQueryMatchDataFrameLabels = (searchQuery?: string) => (dataFrame: DataFrame) => {\n const pattern = searchQuery?.trim();\n if (!pattern) {\n return true;\n }\n\n const regex = new RegExp(pattern, 'i');\n\n return dataFrame.fields.some((f) => (!f.labels ? false : Object.values(f.labels).find((label) => regex.test(label))));\n};\n","import { getTraceByServiceScene, shouldShowSelection } from '../../../utils/utils';\nimport { ComparisonSelection } from '../../../utils/shared';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { PanelBuilders, SceneFlexItem, SceneFlexLayout, SceneObject } from '@grafana/scenes';\n\nexport function getHistogramVizPanel(scene: SceneObject, yBuckets: number[]) {\n const parent = getTraceByServiceScene(scene);\n const panel = histogramPanelConfig()\n .setHoverHeader(true)\n // @ts-ignore\n .setOption('selectionMode', 'xy')\n .build();\n panel.setState({\n extendPanelContext: (vizPanel, context) => {\n // TODO remove when we the Grafana version with #88107 is released\n // @ts-ignore\n context.onSelectRange = (args) => {\n if (args.length === 0) {\n parent.setState({ selection: undefined });\n return;\n }\n const rawSelection = args[0];\n // @ts-ignore\n const newSelection: ComparisonSelection = { type: 'manual', raw: rawSelection };\n\n newSelection.timeRange = {\n from: Math.round((rawSelection.x?.from || 0) / 1000),\n to: Math.round((rawSelection.x?.to || 0) / 1000),\n };\n\n // Ignore selection and return if the selection is invalid\n if (newSelection.timeRange.from === newSelection.timeRange.to) {\n return;\n }\n\n const yFrom = yBucketToDuration((args[0].y?.from || 0) - 1, yBuckets);\n const yTo = yBucketToDuration(args[0].y?.to || 0, yBuckets);\n newSelection.duration = { from: yFrom, to: yTo };\n\n parent.onUserUpdateSelection(newSelection);\n if (!shouldShowSelection(parent.state.actionView)) {\n parent.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: newSelection,\n metric: 'duration',\n });\n };\n },\n });\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel,\n }),\n ],\n });\n}\n\nexport const histogramPanelConfig = () => {\n return PanelBuilders.heatmap()\n .setOption('legend', { show: false })\n .setOption('yAxis', {\n unit: 's',\n axisLabel: 'duration',\n })\n .setOption('color', {\n scheme: 'Blues',\n steps: 16,\n })\n .setOption('rowsFrame', { value: 'Spans' });\n};\n\nexport function yBucketToDuration(yValue: number, buckets?: number[], multiplier?: number) {\n if (!buckets) {\n return '';\n }\n if (yValue < 0) {\n return '0';\n }\n\n const rawValue = buckets[Math.floor(yValue)] * (multiplier || 1);\n if (!rawValue || isNaN(rawValue)) {\n return '';\n }\n if (rawValue >= 1) {\n return `${rawValue.toFixed(0)}s`;\n }\n return `${(rawValue * 1000).toFixed(0)}ms`;\n}\n","export const testIds = {\n emptyState: 'data-testid empty-state',\n errorState: 'data-testid error-state',\n loadingState: 'data-testid loading-state',\n};\n","import { ALL, MetricFunction, VAR_FILTERS_EXPR } from '../../../utils/shared';\n\ninterface QueryOptions {\n metric: MetricFunction;\n extraFilters?: string;\n groupByKey?: string;\n sample?: boolean;\n}\n\nexport function generateMetricsQuery({ metric, groupByKey, extraFilters, sample = false }: QueryOptions) {\n // Generate span set filters\n let filters = `${VAR_FILTERS_EXPR}`;\n\n if (metric === 'errors') {\n filters += ' && status=error';\n }\n\n if (extraFilters) {\n filters += ` && ${extraFilters}`;\n }\n\n if (groupByKey && groupByKey !== ALL) {\n filters += ` && ${groupByKey} != nil`;\n }\n\n // Generate metrics function\n let metricFn = 'rate()';\n switch (metric) {\n case 'errors':\n metricFn = 'rate()';\n break;\n case 'duration':\n metricFn = 'quantile_over_time(duration, 0.9)';\n break;\n }\n\n // Generate group by section\n let groupByAttrs = [];\n if (groupByKey && groupByKey !== ALL) {\n groupByAttrs.push(groupByKey);\n }\n\n const groupBy = groupByAttrs.length ? `by(${groupByAttrs.join(', ')})` : '';\n\n const sampleStr = sample ? ' with(sample=true)' : '';\n\n return `{${filters}} | ${metricFn} ${groupBy}${sampleStr}`;\n}\n\nexport function getMetricsTempoQuery(options: QueryOptions) {\n return {\n refId: 'A',\n query: generateMetricsQuery(options),\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n","import { SceneComponentProps, SceneObjectBase, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Button, Stack, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport React from 'react';\nimport { getFiltersVariable } from '../../../utils/utils';\nimport { addToFilters, filterExistsForKey } from '../actions/AddToFiltersAction';\nimport { computeHighestDifference } from '../../../utils/comparison';\n\nexport interface HighestDifferencePanelState extends SceneObjectState {\n frame: DataFrame;\n panel: VizPanel;\n maxDifference?: number;\n maxDifferenceIndex?: number;\n}\n\nexport class HighestDifferencePanel extends SceneObjectBase {\n constructor(state: HighestDifferencePanelState) {\n super({\n ...state,\n });\n\n this.addActivationHandler(() => this._onActivate());\n }\n\n private _onActivate() {\n const { frame } = this.state;\n this.setState({ ...computeHighestDifference(frame) });\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n if (newState.frame !== prevState.frame) {\n const { frame } = newState;\n this.setState({ ...computeHighestDifference(frame) });\n }\n })\n );\n }\n\n private getAttribute() {\n return this.state.frame.name;\n }\n\n private getValue() {\n const valueField = this.state.frame.fields.find((f) => f.name === 'Value');\n return valueField?.values[this.state.maxDifferenceIndex || 0];\n }\n\n private onAddToFilters() {\n const variable = getFiltersVariable(this);\n const attribute = this.getAttribute();\n if (attribute) {\n addToFilters(variable, attribute, this.getValue());\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { maxDifference, maxDifferenceIndex, panel } = model.useState();\n const styles = useStyles2(getStyles);\n const value = model.getValue();\n const key = model.state.frame.name ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n return (\n
    \n {}\n
    \n {maxDifference !== undefined && maxDifferenceIndex !== undefined && (\n <>\n \n
    Highest difference
    \n {!filterExists && (\n model.onAddToFilters()}\n >\n Add to filters\n \n )}\n
    \n
    \n {(Math.abs(maxDifference) * 100).toFixed(maxDifference === 0 ? 0 : 2)}%\n
    \n
    {value}
    \n \n )}\n
    \n
    \n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n height: '100%',\n }),\n differenceContainer: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n border: `1px solid ${theme.colors.secondary.border}`,\n background: theme.colors.background.primary,\n padding: '8px',\n marginBottom: theme.spacing(2),\n fontSize: '12px',\n height: '116px',\n }),\n differenceValue: css({\n fontSize: '36px',\n fontWeight: 'bold',\n textAlign: 'center',\n }),\n value: css({\n textAlign: 'center',\n color: theme.colors.secondary.text,\n textWrap: 'nowrap',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n title: css({\n fontWeight: 500,\n }),\n };\n}\n","import { PanelBuilders, SceneCSSGridItem, SceneCSSGridLayout, SceneDataNode, VizPanelState } from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { DataFrame, PanelData } from '@grafana/data';\nimport { AxisPlacement } from '@grafana/ui';\nimport { TooltipDisplayMode } from '@grafana/schema';\nimport { HighestDifferencePanel } from './HighestDifferencePanel';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport const BaselineColor = '#5794F299';\nexport const SelectionColor = '#FF9930';\n\nexport function buildAllComparisonLayout(\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const panels: Record = {};\n\n return new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '320px',\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getFrameName, actionsFn, metric),\n });\n}\n\nconst getFrameName = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n const body = existingGridItem.state.body as HighestDifferencePanel;\n body.setState({ frame });\n body.state.panel.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: new HighestDifferencePanel({ frame, panel: panel.build() }),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n\nexport function getPanelConfig(metric: MetricFunction) {\n return PanelBuilders.barchart()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setMax(1)\n .setOverrides((overrides) => {\n overrides.matchFieldsWithName('Value').overrideCustomFieldConfig('axisPlacement', AxisPlacement.Hidden);\n overrides\n .matchFieldsWithName('Baseline')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? BaselineColor : 'semi-dark-green',\n })\n .overrideUnit('percentunit');\n overrides\n .matchFieldsWithName('Selection')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? SelectionColor : 'semi-dark-red',\n })\n .overrideUnit('percentunit');\n });\n}\n"],"names":["ShareExplorationAction","exploration","origin","useLocation","tooltip","setTooltip","useState","ToolbarButton","variant","icon","onClick","navigator","clipboard","writeText","getUrlForExploration","setTimeout","RECOMMENDED_ATTRIBUTES","labelOrder","SpanListColumnsSelector","options","value","onChange","styles","useStyles2","getStyles","opt","useMemo","Object","values","reduce","acc","curr","label","slice","indexOf","includes","group","push","startsWith","sort","a","b","div","className","container","Field","Select","toString","split","placeholder","x","map","join","isMulti","isClearable","virtualized","prefix","Icon","name","css","display","minWidth","width","SpanListScene","SceneObjectBase","setupTransformations","source","pipe","data","df","nameField","fields","find","f","type","TableCellDisplayMode","Custom","cellComponent","props","frame","traceIdField","spanIdField","traceId","rowIndex","spanId","title","this","publishEvent","EventTraceOpened","Link","href","getLinkToExplore","target","size","config","custom","cellOptions","updatePanel","state","LoadingState","Loading","NotStarted","Streaming","series","length","Done","dataState","panel","setState","SceneFlexLayout","children","SceneFlexItem","body","EmptyStateScene","message","EMPTY_STATE_ERROR_MESSAGE","remedyMessage","EMPTY_STATE_ERROR_REMEDY_MESSAGE","padding","direction","PanelBuilders","table","setHoverHeader","setOverrides","builder","matchFieldsWithName","overrideCustomFieldConfig","build","LoadingStateScene","component","SkeletonComponent","constructor","super","traceExplorationScene","getTraceExplorationScene","datasource","getDataSource","timeRange","sceneGraph","getTimeRange","exploreState","JSON","stringify","range","toURLRange","raw","queries","refId","queryType","query","panelsState","trace","subUrl","appSubUrl","urlUtil","renderUrl","panes","schemaVersion","columns","variable","getSpanListColumnsVariable","getValue","changeValueTo","reportAppInteraction","USER_EVENTS_PAGES","analyse_traces","USER_EVENTS_ACTIONS","span_list_columns_changed","addActivationHandler","$data","SceneDataTransformer","transformations","sceneData","getData","_subs","add","subscribeToState","Component","model","useTheme2","attributes","getTraceByServiceScene","header","description","toOption","theme","gap","justifyContent","alignItems","fontSize","background","colors","secondary","color","text","link","cursor","maxWidth","overflow","textOverflow","textDecoration","typography","h6","spacing","getSkeletonStyles","Skeleton","count","Array","_","i","row","key","j","span","rowItem","height","position","backgroundColor","primary","border","weak","marginBottom","SpansScene","_onActivate","updateBody","newState","prevState","getMetricVariable","bind","nestedSetLeft","parseInt","intValue","Value","int_value","Error","nestedSetRight","TreeNode","addSpan","left","Math","min","right","max","spans","addChild","node","parent","isChild","findMatchingChild","nodeName","child","serviceName","operationName","traceID","createNode","s","serviceNameAttr","stringValue","string_value","svcName","resetLeftRight","t","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","c","ROOT_SPAN_ID","StructureTabScene","tree","traces","spanSets","traceStartTime","startTimeUnixNano","ss","s1","s2","curNode","newNode","mergeTraces","parse","countSpans","loading","wrap","getPanels","minHeight","getPanel","from","to","openTrace","getOpenTrace","setTitle","setOption","setData","SceneDataNode","buildData","getTrace","traceName","createDataFrame","FieldType","other","references","string","spanID","parentSpanId","number","duration","startTime","statusCode","erroredSpans","refType","durationNanos","SceneQueryRunner","explorationDS","buildQuery","metric","filterStreamingProgressTransformations","metricQuery","selectionQuery","VAR_LATENCY_PARTIAL_THRESHOLD_EXPR","VAR_LATENCY_THRESHOLD_EXPR","VAR_FILTERS_EXPR","tableType","limit","spss","filters","isLoading","emptyMsg","tabName","structureDisplayName","noDataMessage","Text","textAlignment","longText","Stack","actionContainer","action","LinkButton","fill","toLowerCase","baseColor","highlightColor","traceViewList","EmptyState","flexDirection","x1","margin","marginLeft","GroupBySelector","radioAttributes","showAll","radioOptions","otherAttrOptions","selectQuery","setSelectQuery","allowAutoUpdate","setAllowAutoUpdate","availableWidth","setAvailableWidth","controlsContainer","useRef","initialGroupBy","getFiltersVariable","metricValue","useResizeObserver","ref","onResize","element","current","clientWidth","radioOptionsWidth","filter","op","checks","o","operator","attribute","replace","SPAN_ATTR","RESOURCE_ATTR","option","textWidth","measureText","ops","ro","filteredOptions","getModifiedSelectOptions","ignoredAttributes","defaultValue","useEffect","some","showAllOption","ALL","defaultOnChangeValue","RadioButtonGroup","selected","newSelected","select","onInputChange","onCloseMenu","maxOptions","queryLowerCase","tag","LayoutSwitcher","Selector","active","onLayoutChange","layout_type_changed","layout","layouts","index","findIndex","linesPanelConfig","timeseries","showLegend","mode","TooltipDisplayMode","Multi","setCustomFieldConfig","syncYAxis","vizPanel","maxima","Map","eventSub","subscribeToEvent","EventTimeseriesDataReceived","event","payload","forEach","set","v","findAllObjects","VizPanel","clearFieldConfigCache","fieldConfig","merge","cloneDeep","defaults","updateTimeseriesAxis","unsubscribe","buildNormalLayout","scene","actionsFn","getMetricsTempoQuery","groupByKey","getValueText","panels","$behaviors","StepQueryRunner","maxDataPoints","exemplarsTransformations","reduceField","field","reducers","ReducerID","calcs","setUnit","ByFrameRepeater","SceneCSSGridLayout","templateColumns","GRID_TEMPLATE_COLUMNS","autoRows","isLazy","groupBy","getLayoutChild","getLabelValue","getTitle","existingGridItem","undefined","dataNode","annotations","labels","status","localeCompare","interpolate","generateMetricsQuery","extraFilters","formatLabelValue","barsPanelConfig","setMenu","PanelMenu","labelValue","actions","setHeaderActions","gridItem","SceneCSSGridItem","AttributesDescription","tags","infoFlex","tagsFlex","borderRadius","style","AttributesBreakdownScene","getGroupByVariable","setBody","onReferencedVariableValueChanged","radioAttributesResource","onAddToFiltersClick","breakdown_add_to_filters_clicked","_variableDependency","VariableDependencyConfig","variableNames","VAR_FILTERS","VAR_METRIC","AddToFiltersAction","labelKey","ignore","breakdown_group_by_changed","flexGrow","content","paddingTop","controls","controlsRight","scope","marginRight","controlsLeft","justifyItems","groupByValue","defaultScope","radioAttributesSpan","SPAN","RESOURCE","setScope","filterType","filteredAttributes","attr","concat","getDescription","getAttributesAsOptions","BreakdownScene","createTimeSeries","timestamps","timeRangeSeconds","bucketSizeMs","calculateBucketSize","buckets","timestamp","bucketKey","floor","get","entries","time","normalizeExceptionMessage","trim","ExceptionsScene","exceptionsCount","calculateExceptionsCount","TableCellHeight","Lg","createTransformation","messageField","typeField","serviceField","timeField","messages","types","occurrences","lastSeenTimes","services","timeSeries","aggregated","messageTimestamps","service","normalizedMessage","has","timestampMs","parseFloat","timeSeriesData","sortedEntries","lastSeenMs","diffMs","Date","now","aggregateExceptions","seriesData","renderSparklineCell","links","createDataLink","url","exception_message_clicked","navigateToTracesWithFilter","escapeFilterValue","occurrencesField","total","getExceptionsCount","SparklineCell","sparklineMessage","countValues","point","timeValues","validCountValues","isFinite","isNaN","validTimeValues","minCount","maxCount","minTime","maxTime","countDelta","timeDelta","safeCountDelta","safeTimeDelta","sparklineData","y","delta","sparklineContainer","Sparkline","sparkline","drawStyle","GraphDrawStyle","Line","fillOpacity","fillColor","lineWidth","showPoints","VisibilityMode","Never","exceptionMessage","filtersVariable","traceByServiceScene","setActionView","currentFilters","escapedMessage","existingFilterIndex","newFilter","newFilters","dataTransformer","loadingContainer","bodySmall","comparisonQuery","selection","selector","fromTimerange","toTimerange","buildAttributeComparison","attributeSeries","d","splitFrames","baselineField","selectionField","displayName","getLabel","getPanelConfig","InspectAttributeAction","Button","AttributesComparisonScene","updateData","getPrimarySignalVariable","isEqual","byServiceScene","sceneTimeRange","unix","primarySignal","getFilteredAttributes","groupedFrames","groupFrameListByAttribute","frames","frameGroupToDataframe","aCompare","computeHighestDifference","bCompare","abs","maxDifference","comparison_add_to_filters_clicked","VAR_PRIMARY_SIGNAL","traceExploration","hasAllValue","buildAllComparisonLayout","getMetricFunction","select_attribute_in_comparison_clicked","compareQuery","durString","asSeconds","step","BaselineColor","getTheme","visualization","getColorByName","SelectionColor","numberField","nonInternalKey","keys","newFrame","valueNameField","val","baselineTotal","getTotalForMetaType","selectionTotal","metaType","calculatedTotal","currentValue","ComparisonScene","tracesByService","getDefaultSelectionForMetric","actionViewsDefinitions","getScene","TabsBarScene","breakpoints","up","md","top","zIndex","setExceptionsCount","metricScene","actionView","allowedActionViews","tracesCount","enabledViews","view","primarySignalVariable","timeRangeValue","exceptionsScene","getExceptionsScene","subscription","hasSetView","embedded","useMount","Box","TabsBar","tab","Tab","onChangeTab","counter","MiniREDPanel","buildHistogramQuery","sample","removeExemplarsTransformation","getVizPanel","getDurationVizPanel","getRateOrErrorPanel","setDisplayMode","setColor","fixedColor","histogramPanelConfig","isStreaming","fieldHasEmptyValues","imgWidth","maxHeight","MINI_PANEL_HEIGHT","flex","borderColor","headerWrapper","clickable","input","radioButton","indicatorWrapper","selectMetric","common","metric_changed","location","onChangeMetricFunction","RadioButtonList","StreamingIndicator","iconSize","TracesByServiceScene","urlActionView","URLSearchParams","window","search","metricVariable","updateQueryRunner","updateExceptionsScene","selectionFrom","getDatasourceVariable","updateAttributes","actionViewDef","buildGraphScene","activate","ds","getDataSourceSrv","VAR_DATASOURCE_EXPR","__sceneObject","getTagKeys","then","tagKeys","l","getUrlState","updateFromUrl","newSelection","onUserUpdateSelection","_urlSync","performBrowserHistoryAction","action_view_changed","oldAction","newAction","$timeRange","timeRangeFromSelection","spanListTransformations","SceneObjectUrlSyncConfig","Tooltip","MetricTypeTooltip","placement","interactive","hand","subtitle","emphasize","button","metric_docs_link_clicked","x0_5","paddingBottom","fontWeight","MAIN_PANEL_HEIGHT","typeQuery","SceneTimeRange","toFixed","dateTime","secondaryPanel","tertiaryPanel","behaviors","sync","DashboardCursorSync","Crosshair","ySizing","REDPanel","id","desc","indexByName","Duration","labelName","addToFilters","filterExistsForKey","filtersWithoutNew","DATABASE_CALLS_KEY","history","pushState","AttributePanelRow","labelTitle","valueTitle","rowHeader","home","panel_row_clicked","locationService","actionText","actionIcon","isDark","ErroredServicesRows","valuesField","getUrl","params","EXPLORATIONS_ROUTE","getTotalErrs","SlowestTracesRows","durField","sortedByDuration","sortedFields","traceServiceField","traceNameField","console","error","ROUTES","Explore","getDuration","durationField","formatDuration","SlowestServicesRows","AttributePanelRows","AttributePanelScene","getIcon","medium","borderTopLeftRadius","borderTopRightRadius","titleText","AttributePanel","exemplars","renderDurationPanel","yBuckets","getYBuckets","minDuration","getMinimumsForDuration","getNoDataMessage","getErrorMessage","tracesContainer","rowLeft","rowRight","textAlign","LightModeRocket","svg","xmlns","viewBox","path","DarkModeRocket","cleanupParams","delete","SELECTION","VAR_LATENCY_THRESHOLD","VAR_LATENCY_PARTIAL_THRESHOLD","useBookmarksStorage","storage","usePluginUserStorage","getBookmarks","removeBookmark","bookmark","bookmarkExists","toggleBookmark","getBookmarkForUrl","urlQueryMap","fromEntries","getAll","setBookmarks","bookmarks","setItem","BOOKMARKS_LS_KEY","e","getItem","addBookmark","filteredBookmarks","storedBookmark","areBookmarksEqual","bookmarkParams","storedBookmarkParams","filterKey","bookmarkKeys","k","storedKeys","allKeysMatch","every","bookmarkFilters","storedFilters","BookmarkItem","ACTION_VIEW","PRIMARY_SIGNAL","FILTER_SEPARATOR","getBookmarkParams","primarySignalFilter","signalData","getSignalForKey","getPrimarySignalFilter","filtersArray","getFiltersWithoutPrimarySignal","EVENT_ATTR","capitalizeFirstChar","WebkitLineClamp","WebkitBoxOrient","Bookmarks","setIsLoading","isRemoving","setIsRemoving","loadedBookmarks","h4","LoadingPlaceholder","p","noBookmarks","go_to_bookmark_clicked","goToBookmark","bookmarkItem","remove","disabled","stopPropagation","updatedBookmarks","removeBookmarkClicked","flexWrap","shape","radius","default","HeaderScene","headerTitleContainer","headerActions","documentationLink","subHeader","variablesAndControls","variables","getTagKeysProvider","dsVar","datasource_","DataSourceWithBackend","isArray","resourceAttributes","spanAttributes","otherAttributes","EVENT_INTRINSIC","ignoredAttributesHomeFilter","filterKeys","getHomeScene","navigate","useNavigate","dsVariable","filterVariable","getHomeFilterVariable","h2","explore_traces_clicked","read_documentation_clicked","control","renderFilter","isNumber","test","endsWith","Home","localStorage","DATASOURCE_LS_KEY","buildPanels","HOMEPAGE_FILTERS_LS_KEY","pf","filter_changed","renderedFilters","expr","renderTraceQLLabelFilters","columnGap","rowGap","initialFilters","initialDS","$variables","SceneVariableSet","DataSourceVariable","VAR_DATASOURCE","pluginId","AdHocFiltersVariable","VAR_HOME_FILTER","allowCustomValue","SceneTimePicker","SceneRefreshPicker","getAncestor","TraceExploration","tracesByServiceScene","newTracesExploration","context","sceneUtils","lookupVariable","VAR_GROUPBY","CustomVariable","VAR_SPAN_LIST_COLUMNS","getLatencyThresholdVariable","getLatencyPartialThresholdVariable","PrimarySignalVariable","getCurrentStep","targetQuery","request","targets","shouldShowSelection","getMetricValue","str","toUpperCase","webpackContext","req","webpackContextResolve","__webpack_require__","code","resolve","module","exports","AddToInvestigationButton","getQueries","getContext","queryRunner","findObject","isQueryRunner","q","dsUid","ctx","uid","logoPath","Logo","TraceViewPanelScene","panelContainer","service1","bar1","service2","bar2","service3","bar3","service4","bar4","service5","bar5","service6","bar6","marginTop","TraceDrawerScene","open_trace","TraceQLIssueDetector","runIssueDetectionQuery","datasourceVar","resetIssues","subtract","minimalTimeRange","toISOString","issueDetector","String","errors","hasIssue","TraceQLConfigWarning","detector","Alert","severity","EntityAssertionsWidget","EntityAssertionsWidgetExternal","usePluginComponent","setTimeRange","sub","start","valueOf","end","entityName","entityType","returnToPrevious","drawerSizes","sm","lg","Drawer","onClose","closeOnMaskClick","scrollableContent","tabs","drawerWidth","onMouseDown","onTouchStart","setDrawerWidth","onMouseMove","useCallback","getCustomDrawerWidth","clientX","onTouchMove","touch","touches","onMouseUp","document","removeEventListener","onTouchEnd","preventDefault","addEventListener","useResizebleDrawer","wrapperStyles","getWrapperStyles","dragStyles","getDragStyles","overlayRef","React","dialogProps","titleProps","useDialog","overlayProps","useOverlay","isDismissable","isOpen","classList","overrideWidth","RcDrawer","open","getContainer","drawerContent","rootClassName","drawer","classNames","wrapper","motion","motionAppear","motionName","drawerMotion","maskClassName","mask","maskClosable","maskMotion","FocusScope","restoreFocus","contain","autoFocus","aria-label","selectors","components","General","cx","dragHandleVertical","resizer","Boolean","headerWithTabs","IconButton","data-testid","close","titleWrapper","tabsWrapper","ScrollContainer","showScrollIndicators","offsetRight","offsetWidth","offsetLeft","boxShadow","shadows","z3","transform","transition","transitions","create","overlay","bottom","opacity","borderBottom","overflowWrap","paddingLeft","modal","down","SmartDrawer","forceNoDrawer","investigationButton","drawerHeader","AttributeFiltersVariable","addFilterButtonText","hide","VariableHide","hideLabel","readOnly","embedderName","expressionBuilder","hasChanges","updatedFilters","initialFilter","buildTime","process","compositeVersion","topScene","setupInvestigationButton","isActive","stateUpdate","initialMetric","closeDrawer","addToInvestigationButton","updateInvestigationLink","serviceNameField","getInvestigationLink","investigationLink","getVariableSet","TraceExplorationScene","drawerScene","bodyContainer","EmbeddedHeader","TraceExplorationHeader","add_to_investigation_trace_view_clicked","ADD_TO_INVESTIGATION_MENU_TEXT","useServiceName","setServiceName","getServiceNameFromFilters","serviceNameFilter","setReturnToPrevious","useReturnToPrevious","returnToPreviousSource","timeRangeControl","timeRangeState","filtersVariableState","metricVariableState","explorationUrl","setExplorationUrl","primarySignalOptions","headerContainer","go_to_full_app_clicked","menuVisible","setMenuVisible","VersionHeader","menuHeader","h5","menuHeaderSubtitle","menu","Menu","feedbackLinksEnabled","Item","ariaLabel","global_docs_link_clicked","feedback_link_clicked","datasourceLabel","Dropdown","onVisibleChange","helpIcon","isReadOnly","hideVariable","defaultToAll","h3","drawerHeaderButtons","canvas","fontWeightMedium","lineHeight","testIds","loadingState","SkeletonTheme","fadeIn","keyframes","animationName","animationDelay","animationTimingFunction","animationDuration","animationFillMode","streamingIndicator","success","topic","DataTopic","Annotations","traceIDField","parentAnchorHref","parentElement","throttleInterval","mousePosition","setMousePosition","updateMousePosition","throttle","clientY","GrotNotFound","show404","useMousePosition","SVG","src","dark404","light404","xPos","yPos","innerWidth","innerHeight","heightRatio","widthRatio","rotation","getIntermediateValue","translation","transformOrigin","ratio","emptyState","remedy","extensionPointId","ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT","ADD_TO_INVESTIGATION_MENU_GROUP_TEXT","addItem","item","setItems","items","iconClassName","getExploreHref","onExploreClick","VizPanelMenu","existingMenuItems","existingAddToInvestigationLink","add_to_investigation_clicked","open_in_explore_clicked","addToInvestigations","getPluginLinkExtensions","extensions","getObservablePluginLinks","firstValueFrom","maxDifferenceIndex","diff","CustomMenu","customMenu","DropdownIndicator","selectProps","menuIsOpen","GroupHeading","heading","weight","buttonGroupOptions","currentSignal","selectOptions","primary_signal_changed","primary_signal","buttonGroup","isSearchable","IndicatorSeparator","SingleValue","borderLeft","page","properties","reportInteraction","pluginJson","createInteractionName","start_investigation","stop_investigation","toggle_bookmark_clicked","homepage_initialized","new_filter_added_manually","app_initialized","_onActivateStep","getStepForTimeRange","newStep","axisWidth","isErrorsMetric","DrawStyle","Bars","StackingMode","Normal","overrides","matchFieldsWithNameByRegex","overrideColor","DurationComparisonControl","startInvestigation","isDisabled","InsightsTimelineWidget","InsightsTimelineWidgetExternal","filterBySeverity","filterBySummaryKeywords","isDuration","getHistogramVizPanel","getRateOrErrorVizPanel","buildSelectionAnnotation","xSel","ySel","arrayToDataFrame","xMin","xMax","timeEnd","yMin","yMax","isRegion","lineStyle","newData","minBucket","yBucketToDuration","titleContainer","titleRadioWrapper","slowestBuckets","fontWeightBold","ONE_MILLISECOND","ONE_SECOND","ONE_MINUTE","ONE_HOUR","UNIT_STEPS","log10","unit","microseconds","ofPrevious","primaryUnit","secondaryUnit","_dropWhile","_round","primaryValue","secondaryValue","secondaryValueRounded","round","primaryUnitString","dataPoints","dur","ErrorStateScene","errorState","Search","searchQuery","onSearchQueryChange","searchField","Input","cloneDataFrame","renderFilteredData","filtered","performRepeat","groupSeriesBy","groupedData","newSeries","mainFrame","sortDataFrame","newChildren","frameIndex","sum","vSum","layoutChild","evt","currentTarget","onSearchQueryChangeDebounced","debounce","doesQueryMatchDataFrameLabels","repeat","itemContainer","yAxis","yAxisItem","xAxis","xAxisItem","gridTemplateColumns","gridAutoRows","dataFrame","pattern","regex","RegExp","extendPanelContext","onSelectRange","args","rawSelection","yFrom","yTo","heatmap","show","axisLabel","scheme","steps","yValue","multiplier","rawValue","metricFn","groupByAttrs","HighestDifferencePanel","getAttribute","valueField","onAddToFilters","differenceContainer","differenceValue","textWrap","whiteSpace","filterExists","getFrameName","barchart","setMax","AxisPlacement","Hidden","overrideUnit"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js new file mode 100644 index 00000000..b8973a0f --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[220],{8220:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var l={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}} kulcsos szűrő szerkesztése","managed-filter":"{{origin}} által kezelt szűrő","remove-filter-with-key":"{{keyLabel}} kulcsos szűrő eltávolítása"},"adhoc-filters-combobox":{"remove-filter-value":"Szűrőérték eltávolítása – {{itemLabel}}","use-custom-value":"Egyéni érték használata: {{itemLabel}}"},"fallback-page":{content:"Ha egy hivatkozáson keresztül lépett ide, akkor lehet, hogy hiba van ebben az alkalmazásban.",subTitle:"Az URL-cím nem egyezett egyetlen oldallal sem",title:"Nem található"},"nested-scene-renderer":{"collapse-button-label":"Jelenet összecsukása","expand-button-label":"Jelenet kibontása","remove-button-label":"Jelenet eltávolítása"},"scene-debugger":{"object-details":"Az objektum részletei","scene-graph":"Jelenetdiagram","title-scene-debugger":"Jelenet-hibakereső"},"scene-grid-row":{"collapse-row":"Sor összecsukása","expand-row":"Sor kibontása"},"scene-time-range-compare-renderer":{"button-label":"Összehasonlítás","button-tooltip":"Időkeret-összehasonlítás engedélyezése"},splitter:{"aria-label-pane-resize-widget":"Ablaktábla-átméretezési widget"},"viz-panel":{title:{title:"Cím"}},"viz-panel-explore-button":{explore:"Explore"},"viz-panel-renderer":{"loading-plugin-panel":"Bővítménypanel betöltése…","panel-plugin-has-no-panel-component":"A panelbővítménynek nincs panelösszetevője"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"Ha túl sok sorozatot jelenít meg egyetlen panelen, az hatással lehet a teljesítményre, és megnehezítheti az adatok olvasását.","warning-message":"Csak {{seriesLimit}} sorozat megjelenítése"}},utils:{"controls-label":{"tooltip-remove":"Eltávolítás"},"loading-indicator":{"content-cancel-query":"A lekérdezés megszakítása"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"Szűrőoperátor szerkesztése"},"ad-hoc-filter-builder":{"aria-label-add-filter":"Szűrő hozzáadása","title-add-filter":"Szűrő hozzáadása"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"Szűrő eltávolítása","key-select":{"placeholder-select-label":"Címke kiválasztása"},"label-select-label":"Címke kiválasztása","title-remove-filter":"Szűrő eltávolítása","value-select":{"placeholder-select-value":"Érték kiválasztása"}},"data-source-variable":{label:{default:"alapértelmezés"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"törlés",tooltip:"Alapértelmezés szerint alkalmazva ezen az irányítópulton. A szerkesztést átviszi más irányítópultokra.","tooltip-restore-groupby-set-by-this-dashboard":"A jelen irányítópult által beállított csoportosítási szempont visszaállítása."},"format-registry":{formats:{description:{"commaseparated-values":"Vesszővel elválasztott értékek","double-quoted-values":"Dupla idézőjeles értékek","format-date-in-different-ways":"Dátum formázása különböző módokon","format-multivalued-variables-using-syntax-example":"Többértékű változók formázása glob szintaxissal, például: {érték1,érték2}","html-escaping-of-values":"Értékek módosított HTML-értelmezése","json-stringify-value":"A JSON stringify értéke","keep-value-as-is":"Érték megtartása adott állapotban","multiple-values-are-formatted-like-variablevalue":"Több érték formázása változó=érték formátumban","single-quoted-values":"Egyszeres idézőjeles értékek","useful-escaping-values-taking-syntax-characters":"Hasznos az értékek módosított URL-értelmezéséhez, az URI-szintaktikai karakterek figyelembevételével","useful-for-url-escaping-values":"Hasznos az értékek módosított URL-értelmezéséhez","values-are-separated-by-character":"Az értékeket | karakter választja el"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"Csoportosításiszempont-választó","placeholder-group-by-label":"Csoportosítási szempont címkéje"},"interval-variable":{"placeholder-select-value":"Érték kiválasztása"},"loading-options-placeholder":{"loading-options":"Beállítások betöltése…"},"multi-value-apply-button":{apply:"Alkalmaz"},"no-options-placeholder":{"no-options-found":"Nem található beállítás"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"Hiba történt a címkék lekérése során. Kattintson az újrapróbálkozáshoz"},"test-object-with-variable-dependency":{title:{hello:"Üdv"}},"test-variable":{text:{text:"Szöveg"}},"variable-value-input":{"placeholder-enter-value":"Érték megadása"},"variable-value-select":{"placeholder-select-value":"Érték kiválasztása"}}}}}}]); +//# sourceMappingURL=220.js.map?_cache=06dc1f2a0010c383dc1e \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js.map new file mode 100644 index 00000000..4a0be742 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/220.js.map @@ -0,0 +1 @@ +{"version":3,"file":"220.js?_cache=06dc1f2a0010c383dc1e","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0CACxB,iBAAkB,gCAClB,yBAA0B,2CAE3B,yBAA0B,CACzB,sBAAuB,0CACvB,mBAAoB,0CAErB,gBAAiB,CAChBC,QAAS,+FACTC,SAAU,gDACVC,MAAO,iBAER,wBAAyB,CACxB,wBAAyB,uBACzB,sBAAuB,oBACvB,sBAAuB,wBAExB,iBAAkB,CACjB,iBAAkB,wBAClB,cAAe,iBACf,uBAAwB,sBAEzB,iBAAkB,CACjB,eAAgB,mBAChB,aAAc,iBAEf,oCAAqC,CACpC,eAAgB,kBAChB,iBAAkB,0CAEnBC,SAAU,CACT,gCAAiC,kCAElC,YAAa,CACZD,MAAO,CACNA,MAAO,QAGT,2BAA4B,CAC3BE,QAAS,WAEV,qBAAsB,CACrB,uBAAwB,4BACxB,sCAAuC,8CAExC,yBAA0B,CACzB,2DAA4D,gIAC5D,kBAAmB,+CAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,eAEnB,oBAAqB,CACpB,uBAAwB,8BAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,8BAEpC,wBAAyB,CACxB,wBAAyB,mBACzB,mBAAoB,oBAErB,yBAA0B,CACzB,2BAA4B,qBAC5B,aAAc,CACb,2BAA4B,sBAE7B,qBAAsB,qBACtB,sBAAuB,qBACvB,eAAgB,CACf,2BAA4B,uBAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,mBAGb,8CAA+C,CAC9C,mBAAoB,SACpBC,QAAS,yGACT,gDAAiD,iFAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,iCACzB,uBAAwB,2BACxB,gCAAiC,oCACjC,oDAAqD,4EACrD,0BAA2B,sCAC3B,uBAAwB,0BACxB,mBAAoB,oCACpB,mDAAoD,iDACpD,uBAAwB,+BACxB,kDAAmD,uGACnD,iCAAkC,mDAClC,oCAAqC,0CAIxC,6BAA8B,CAC7B,+BAAgC,kCAChC,6BAA8B,mCAE/B,oBAAqB,CACpB,2BAA4B,sBAE7B,8BAA+B,CAC9B,kBAAmB,0BAEpB,2BAA4B,CAC3BC,MAAO,YAER,yBAA0B,CACzB,mBAAoB,2BAErB,4BAA6B,CAC5B,6CAA8C,0EAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,QAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,WAGR,uBAAwB,CACvB,0BAA2B,kBAE5B,wBAAyB,CACxB,2BAA4B,wB","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/hu-HU/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}} kulcsos szűrő szerkesztése\",\n\t\t\t\"managed-filter\": \"{{origin}} által kezelt szűrő\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}} kulcsos szűrő eltávolítása\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"Szűrőérték eltávolítása – {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"Egyéni érték használata: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"Ha egy hivatkozáson keresztül lépett ide, akkor lehet, hogy hiba van ebben az alkalmazásban.\",\n\t\t\tsubTitle: \"Az URL-cím nem egyezett egyetlen oldallal sem\",\n\t\t\ttitle: \"Nem található\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"Jelenet összecsukása\",\n\t\t\t\"expand-button-label\": \"Jelenet kibontása\",\n\t\t\t\"remove-button-label\": \"Jelenet eltávolítása\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"Az objektum részletei\",\n\t\t\t\"scene-graph\": \"Jelenetdiagram\",\n\t\t\t\"title-scene-debugger\": \"Jelenet-hibakereső\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"Sor összecsukása\",\n\t\t\t\"expand-row\": \"Sor kibontása\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"Összehasonlítás\",\n\t\t\t\"button-tooltip\": \"Időkeret-összehasonlítás engedélyezése\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"Ablaktábla-átméretezési widget\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"Cím\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"Explore\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"Bővítménypanel betöltése…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"A panelbővítménynek nincs panelösszetevője\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"Ha túl sok sorozatot jelenít meg egyetlen panelen, az hatással lehet a teljesítményre, és megnehezítheti az adatok olvasását.\",\n\t\t\t\"warning-message\": \"Csak {{seriesLimit}} sorozat megjelenítése\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"Eltávolítás\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"A lekérdezés megszakítása\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"Szűrőoperátor szerkesztése\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"Szűrő hozzáadása\",\n\t\t\t\"title-add-filter\": \"Szűrő hozzáadása\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"Szűrő eltávolítása\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"Címke kiválasztása\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"Címke kiválasztása\",\n\t\t\t\"title-remove-filter\": \"Szűrő eltávolítása\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"alapértelmezés\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"törlés\",\n\t\t\ttooltip: \"Alapértelmezés szerint alkalmazva ezen az irányítópulton. A szerkesztést átviszi más irányítópultokra.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"A jelen irányítópult által beállított csoportosítási szempont visszaállítása.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"Vesszővel elválasztott értékek\",\n\t\t\t\t\t\"double-quoted-values\": \"Dupla idézőjeles értékek\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"Dátum formázása különböző módokon\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"Többértékű változók formázása glob szintaxissal, például: {érték1,érték2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"Értékek módosított HTML-értelmezése\",\n\t\t\t\t\t\"json-stringify-value\": \"A JSON stringify értéke\",\n\t\t\t\t\t\"keep-value-as-is\": \"Érték megtartása adott állapotban\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"Több érték formázása változó=érték formátumban\",\n\t\t\t\t\t\"single-quoted-values\": \"Egyszeres idézőjeles értékek\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"Hasznos az értékek módosított URL-értelmezéséhez, az URI-szintaktikai karakterek figyelembevételével\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"Hasznos az értékek módosított URL-értelmezéséhez\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"Az értékeket | karakter választja el\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"Csoportosításiszempont-választó\",\n\t\t\t\"placeholder-group-by-label\": \"Csoportosítási szempont címkéje\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"Beállítások betöltése…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"Alkalmaz\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"Nem található beállítás\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"Hiba történt a címkék lekérése során. Kattintson az újrapróbálkozáshoz\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"Üdv\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"Szöveg\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"Érték megadása\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"Érték kiválasztása\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js new file mode 100644 index 00000000..24c0ab9a --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[327],{4327:(e,l,a)=>{a.r(l),a.d(l,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}}キーでフィルターを編集 ","managed-filter":"{{origin}}管理フィルター","remove-filter-with-key":"{{keyLabel}}キーでフィルターを削除 "},"adhoc-filters-combobox":{"remove-filter-value":"フィルター値を削除 - {{itemLabel}}","use-custom-value":"カスタム値を使用:{{itemLabel}} "},"fallback-page":{content:"リンクからこのページにアクセスした場合、アプリケーションにバグがある可能性があります。",subTitle:"URLがどのページにも一致しません",title:"見つかりません"},"nested-scene-renderer":{"collapse-button-label":"シーンを折りたたむ","expand-button-label":"シーンを展開","remove-button-label":"シーンを削除"},"scene-debugger":{"object-details":"オブジェクトの詳細","scene-graph":"シーングラフ","title-scene-debugger":"シーンデバッガー"},"scene-grid-row":{"collapse-row":"行を折りたたむ","expand-row":"行を展開"},"scene-time-range-compare-renderer":{"button-label":"比較","button-tooltip":"時間枠比較を有効にする"},splitter:{"aria-label-pane-resize-widget":"ペインリサイズウィジェット"},"viz-panel":{title:{title:"タイトル"}},"viz-panel-explore-button":{explore:"探検"},"viz-panel-renderer":{"loading-plugin-panel":"プラグインパネルを読み込み中...","panel-plugin-has-no-panel-component":"パネルプラグインにパネルコンポーネントがありません"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"単一パネルで多数の系列を表示すると、パフォーマンスに影響し、データが読みにくくなる場合があります。","warning-message":"{{seriesLimit}}系列のみ表示"}},utils:{"controls-label":{"tooltip-remove":"削除"},"loading-indicator":{"content-cancel-query":"クエリをキャンセル"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"フィルター演算子を編集"},"ad-hoc-filter-builder":{"aria-label-add-filter":"フィルターを追加","title-add-filter":"フィルターを追加"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"フィルターを削除","key-select":{"placeholder-select-label":"ラベルを選択"},"label-select-label":"ラベルを選択","title-remove-filter":"フィルターを削除","value-select":{"placeholder-select-value":"値を選択"}},"data-source-variable":{label:{default:"デフォルト"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"クリア",tooltip:"このダッシュボードでデフォルトで適用されます。編集した場合、他のダッシュボードに引き継がれます。","tooltip-restore-groupby-set-by-this-dashboard":"このダッシュボードで設定されたgroupbyを復元します。"},"format-registry":{formats:{description:{"commaseparated-values":"カンマ区切り値","double-quoted-values":"二重引用符で囲まれた値","format-date-in-different-ways":"日付を様々な形式でフォーマット","format-multivalued-variables-using-syntax-example":"glob構文を使用して複数値変数をフォーマット(例: {value1,value2})","html-escaping-of-values":"値のHTMLエスケープ","json-stringify-value":"JSON文字列化値","keep-value-as-is":"値をそのまま保持","multiple-values-are-formatted-like-variablevalue":"複数の値は変数=値の形式でフォーマットされます","single-quoted-values":"一重引用符で囲まれた値","useful-escaping-values-taking-syntax-characters":"URI構文文字を考慮したURLエスケープ値に便利","useful-for-url-escaping-values":"URLエスケープ値に便利","values-are-separated-by-character":"値は|文字で区切られます"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"セレクターでグループ化","placeholder-group-by-label":"ラベルでグループ化"},"interval-variable":{"placeholder-select-value":"値を選択"},"loading-options-placeholder":{"loading-options":"オプションを読み込み中..."},"multi-value-apply-button":{apply:"適用"},"no-options-placeholder":{"no-options-found":"オプションが見つかりません"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"ラベルの取得中にエラーが発生しました。クリックして再試行"},"test-object-with-variable-dependency":{title:{hello:"こんにちは"}},"test-variable":{text:{text:"テキスト"}},"variable-value-input":{"placeholder-enter-value":"値を入力"},"variable-value-select":{"placeholder-select-value":"値を選択"}}}}}}]); +//# sourceMappingURL=327.js.map?_cache=9823d5c8efdaeaf61bf4 \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js.map new file mode 100644 index 00000000..dded42c2 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/327.js.map @@ -0,0 +1 @@ +{"version":3,"file":"327.js?_cache=9823d5c8efdaeaf61bf4","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,2BACxB,iBAAkB,oBAClB,yBAA0B,4BAE3B,yBAA0B,CACzB,sBAAuB,4BACvB,mBAAoB,2BAErB,gBAAiB,CAChBC,QAAS,8CACTC,SAAU,oBACVC,MAAO,WAER,wBAAyB,CACxB,wBAAyB,YACzB,sBAAuB,SACvB,sBAAuB,UAExB,iBAAkB,CACjB,iBAAkB,YAClB,cAAe,SACf,uBAAwB,YAEzB,iBAAkB,CACjB,eAAgB,UAChB,aAAc,QAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,eAEnBC,SAAU,CACT,gCAAiC,iBAElC,YAAa,CACZD,MAAO,CACNA,MAAO,SAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,oBACxB,sCAAuC,6BAExC,yBAA0B,CACzB,2DAA4D,oDAC5D,kBAAmB,0BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,cAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,eAEpC,wBAAyB,CACxB,wBAAyB,WACzB,mBAAoB,YAErB,yBAA0B,CACzB,2BAA4B,WAC5B,aAAc,CACb,2BAA4B,UAE7B,qBAAsB,SACtB,sBAAuB,WACvB,eAAgB,CACf,2BAA4B,SAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,UAGb,8CAA+C,CAC9C,mBAAoB,MACpBC,QAAS,mDACT,gDAAiD,iCAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,UACzB,uBAAwB,cACxB,gCAAiC,kBACjC,oDAAqD,8CACrD,0BAA2B,cAC3B,uBAAwB,YACxB,mBAAoB,WACpB,mDAAoD,0BACpD,uBAAwB,cACxB,kDAAmD,2BACnD,iCAAkC,eAClC,oCAAqC,kBAIxC,6BAA8B,CAC7B,+BAAgC,cAChC,6BAA8B,aAE/B,oBAAqB,CACpB,2BAA4B,QAE7B,8BAA+B,CAC9B,kBAAmB,kBAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,iBAErB,4BAA6B,CAC5B,6CAA8C,gCAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,UAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,SAGR,uBAAwB,CACvB,0BAA2B,QAE5B,wBAAyB,CACxB,2BAA4B,U","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/ja-JP/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}}キーでフィルターを編集 \",\n\t\t\t\"managed-filter\": \"{{origin}}管理フィルター\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}}キーでフィルターを削除 \"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"フィルター値を削除 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"カスタム値を使用:{{itemLabel}} \"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"リンクからこのページにアクセスした場合、アプリケーションにバグがある可能性があります。\",\n\t\t\tsubTitle: \"URLがどのページにも一致しません\",\n\t\t\ttitle: \"見つかりません\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"シーンを折りたたむ\",\n\t\t\t\"expand-button-label\": \"シーンを展開\",\n\t\t\t\"remove-button-label\": \"シーンを削除\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"オブジェクトの詳細\",\n\t\t\t\"scene-graph\": \"シーングラフ\",\n\t\t\t\"title-scene-debugger\": \"シーンデバッガー\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"行を折りたたむ\",\n\t\t\t\"expand-row\": \"行を展開\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"比較\",\n\t\t\t\"button-tooltip\": \"時間枠比較を有効にする\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"ペインリサイズウィジェット\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"タイトル\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"探検\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"プラグインパネルを読み込み中...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"パネルプラグインにパネルコンポーネントがありません\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"単一パネルで多数の系列を表示すると、パフォーマンスに影響し、データが読みにくくなる場合があります。\",\n\t\t\t\"warning-message\": \"{{seriesLimit}}系列のみ表示\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"削除\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"クエリをキャンセル\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"フィルター演算子を編集\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"フィルターを追加\",\n\t\t\t\"title-add-filter\": \"フィルターを追加\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"フィルターを削除\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"ラベルを選択\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"ラベルを選択\",\n\t\t\t\"title-remove-filter\": \"フィルターを削除\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"デフォルト\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"クリア\",\n\t\t\ttooltip: \"このダッシュボードでデフォルトで適用されます。編集した場合、他のダッシュボードに引き継がれます。\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"このダッシュボードで設定されたgroupbyを復元します。\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"カンマ区切り値\",\n\t\t\t\t\t\"double-quoted-values\": \"二重引用符で囲まれた値\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"日付を様々な形式でフォーマット\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"glob構文を使用して複数値変数をフォーマット(例: {value1,value2})\",\n\t\t\t\t\t\"html-escaping-of-values\": \"値のHTMLエスケープ\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON文字列化値\",\n\t\t\t\t\t\"keep-value-as-is\": \"値をそのまま保持\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"複数の値は変数=値の形式でフォーマットされます\",\n\t\t\t\t\t\"single-quoted-values\": \"一重引用符で囲まれた値\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"URI構文文字を考慮したURLエスケープ値に便利\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"URLエスケープ値に便利\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"値は|文字で区切られます\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"セレクターでグループ化\",\n\t\t\t\"placeholder-group-by-label\": \"ラベルでグループ化\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"オプションを読み込み中...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"適用\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"オプションが見つかりません\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"ラベルの取得中にエラーが発生しました。クリックして再試行\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"こんにちは\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"テキスト\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"値を入力\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"値を選択\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js new file mode 100644 index 00000000..8b8d6d9e --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[341],{9341:(e,l,a)=>{a.r(l),a.d(l,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"使用鍵 {{keyLabel}} 編輯篩選條件","managed-filter":"{{origin}} 受管理的篩選條件","remove-filter-with-key":"使用鍵 {{keyLabel}} 移除篩選條件"},"adhoc-filters-combobox":{"remove-filter-value":"移除篩選條件值 - {{itemLabel}}","use-custom-value":"使用自訂值:{{itemLabel}}"},"fallback-page":{content:"如果您使用連結找到此處,則此應用程式中可能存在錯誤。",subTitle:"URL 與任何頁面都不相符",title:"無結果"},"nested-scene-renderer":{"collapse-button-label":"收闔場景","expand-button-label":"展開場景","remove-button-label":"移除場景"},"scene-debugger":{"object-details":"物件詳情","scene-graph":"場景圖表","title-scene-debugger":"場景除錯器"},"scene-grid-row":{"collapse-row":"收闔列","expand-row":"展開列"},"scene-time-range-compare-renderer":{"button-label":"比較","button-tooltip":"啟用時間範圍比較"},splitter:{"aria-label-pane-resize-widget":"窗格調整大小小工具"},"viz-panel":{title:{title:"標題"}},"viz-panel-explore-button":{explore:"探索"},"viz-panel-renderer":{"loading-plugin-panel":"正在載入外掛程式面板…","panel-plugin-has-no-panel-component":"面板外掛程式沒有面板元件"},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"在單個面板中呈現太多序列可能會影響效能,並使資料更難讀取。","warning-message":"僅顯示 {{seriesLimit}} 個序列"}},utils:{"controls-label":{"tooltip-remove":"移除"},"loading-indicator":{"content-cancel-query":"取消查詢"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"編輯篩選條件運算子"},"ad-hoc-filter-builder":{"aria-label-add-filter":"新增篩選條件","title-add-filter":"新增篩選條件"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"移除篩選條件","key-select":{"placeholder-select-label":"選擇標籤"},"label-select-label":"選擇標籤","title-remove-filter":"移除篩選條件","value-select":{"placeholder-select-value":"選擇值"}},"data-source-variable":{label:{default:"預設值"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"清除",tooltip:"在此儀表板中預設套用。如果編輯,它會轉移到其他儀表板。","tooltip-restore-groupby-set-by-this-dashboard":"還原此儀表板設定的分組依據。"},"format-registry":{formats:{description:{"commaseparated-values":"逗點分隔的值","double-quoted-values":"帶雙引號的值","format-date-in-different-ways":"以不同方式格式化日期","format-multivalued-variables-using-syntax-example":"使用 glob 語法格式化多值變數,例如 {value1,value2}","html-escaping-of-values":"值的 HTML 轉義","json-stringify-value":"JSON 字串化值","keep-value-as-is":"按原樣保留值","multiple-values-are-formatted-like-variablevalue":"多個值按「變數=值」的方式格式化","single-quoted-values":"帶單引號的值","useful-escaping-values-taking-syntax-characters":"對 URL 轉義值很有用,需考慮 URI 語法字元","useful-for-url-escaping-values":"對 URL 轉義值很有用","values-are-separated-by-character":"值以 | 字元分隔"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"按選取器分組","placeholder-group-by-label":"按標籤分組"},"interval-variable":{"placeholder-select-value":"選擇值"},"loading-options-placeholder":{"loading-options":"正在載入選項…"},"multi-value-apply-button":{apply:"套用"},"no-options-placeholder":{"no-options-found":"未找到選項"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"擷取標籤時發生錯誤。點選以重試"},"test-object-with-variable-dependency":{title:{hello:"您好"}},"test-variable":{text:{text:"文字"}},"variable-value-input":{"placeholder-enter-value":"輸入值"},"variable-value-select":{"placeholder-select-value":"選擇值"}}}}}}]); +//# sourceMappingURL=341.js.map?_cache=9833176b4a90b4233a97 \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js.map new file mode 100644 index 00000000..22fbc3ab --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/341.js.map @@ -0,0 +1 @@ +{"version":3,"file":"341.js?_cache=9833176b4a90b4233a97","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,0BACxB,iBAAkB,sBAClB,yBAA0B,2BAE3B,yBAA0B,CACzB,sBAAuB,0BACvB,mBAAoB,uBAErB,gBAAiB,CAChBC,QAAS,6BACTC,SAAU,gBACVC,MAAO,OAER,wBAAyB,CACxB,wBAAyB,OACzB,sBAAuB,OACvB,sBAAuB,QAExB,iBAAkB,CACjB,iBAAkB,OAClB,cAAe,OACf,uBAAwB,SAEzB,iBAAkB,CACjB,eAAgB,MAChB,aAAc,OAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,YAEnBC,SAAU,CACT,gCAAiC,aAElC,YAAa,CACZD,MAAO,CACNA,MAAO,OAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,cACxB,sCAAuC,gBAExC,yBAA0B,CACzB,2DAA4D,gCAC5D,kBAAmB,4BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,SAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,aAEpC,wBAAyB,CACxB,wBAAyB,SACzB,mBAAoB,UAErB,yBAA0B,CACzB,2BAA4B,SAC5B,aAAc,CACb,2BAA4B,QAE7B,qBAAsB,OACtB,sBAAuB,SACvB,eAAgB,CACf,2BAA4B,QAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,QAGb,8CAA+C,CAC9C,mBAAoB,KACpBC,QAAS,8BACT,gDAAiD,kBAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,SACzB,uBAAwB,SACxB,gCAAiC,aACjC,oDAAqD,uCACrD,0BAA2B,aAC3B,uBAAwB,YACxB,mBAAoB,SACpB,mDAAoD,mBACpD,uBAAwB,SACxB,kDAAmD,4BACnD,iCAAkC,eAClC,oCAAqC,eAIxC,6BAA8B,CAC7B,+BAAgC,SAChC,6BAA8B,SAE/B,oBAAqB,CACpB,2BAA4B,OAE7B,8BAA+B,CAC9B,kBAAmB,WAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,SAErB,4BAA6B,CAC5B,6CAA8C,mBAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,OAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,OAGR,uBAAwB,CACvB,0BAA2B,OAE5B,wBAAyB,CACxB,2BAA4B,S","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/zh-Hant/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"使用鍵 {{keyLabel}} 編輯篩選條件\",\n\t\t\t\"managed-filter\": \"{{origin}} 受管理的篩選條件\",\n\t\t\t\"remove-filter-with-key\": \"使用鍵 {{keyLabel}} 移除篩選條件\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"移除篩選條件值 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"使用自訂值:{{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"如果您使用連結找到此處,則此應用程式中可能存在錯誤。\",\n\t\t\tsubTitle: \"URL 與任何頁面都不相符\",\n\t\t\ttitle: \"無結果\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"收闔場景\",\n\t\t\t\"expand-button-label\": \"展開場景\",\n\t\t\t\"remove-button-label\": \"移除場景\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"物件詳情\",\n\t\t\t\"scene-graph\": \"場景圖表\",\n\t\t\t\"title-scene-debugger\": \"場景除錯器\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"收闔列\",\n\t\t\t\"expand-row\": \"展開列\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"比較\",\n\t\t\t\"button-tooltip\": \"啟用時間範圍比較\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"窗格調整大小小工具\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"標題\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"探索\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"正在載入外掛程式面板…\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"面板外掛程式沒有面板元件\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"在單個面板中呈現太多序列可能會影響效能,並使資料更難讀取。\",\n\t\t\t\"warning-message\": \"僅顯示 {{seriesLimit}} 個序列\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"移除\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"取消查詢\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"編輯篩選條件運算子\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"新增篩選條件\",\n\t\t\t\"title-add-filter\": \"新增篩選條件\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"移除篩選條件\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"選擇標籤\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"選擇標籤\",\n\t\t\t\"title-remove-filter\": \"移除篩選條件\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"預設值\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"清除\",\n\t\t\ttooltip: \"在此儀表板中預設套用。如果編輯,它會轉移到其他儀表板。\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"還原此儀表板設定的分組依據。\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"逗點分隔的值\",\n\t\t\t\t\t\"double-quoted-values\": \"帶雙引號的值\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"以不同方式格式化日期\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"使用 glob 語法格式化多值變數,例如 {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"值的 HTML 轉義\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON 字串化值\",\n\t\t\t\t\t\"keep-value-as-is\": \"按原樣保留值\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"多個值按「變數=值」的方式格式化\",\n\t\t\t\t\t\"single-quoted-values\": \"帶單引號的值\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"對 URL 轉義值很有用,需考慮 URI 語法字元\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"對 URL 轉義值很有用\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"值以 | 字元分隔\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"按選取器分組\",\n\t\t\t\"placeholder-group-by-label\": \"按標籤分組\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"正在載入選項…\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"套用\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"未找到選項\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"擷取標籤時發生錯誤。點選以重試\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"您好\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"文字\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"輸入值\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"選擇值\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js new file mode 100644 index 00000000..5a3f0d2c --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[353],{7353:(e,a,l)=>{l.r(a),l.d(a,{default:()=>t});var t={"grafana-scenes":{components:{"adhoc-filter-pill":{"edit-filter-with-key":"{{keyLabel}} 키로 필터 편집","managed-filter":"{{origin}} 관리 필터","remove-filter-with-key":"{{keyLabel}} 키로 필터 제거"},"adhoc-filters-combobox":{"remove-filter-value":"필터 값 제거 - {{itemLabel}}","use-custom-value":"사용자 지정 값 사용: {{itemLabel}}"},"fallback-page":{content:"링크를 사용하여 여기로 이동한 경우 이 애플리케이션에 버그가 있을 수 있습니다.",subTitle:"URL이 어떤 페이지와도 일치하지 않습니다.",title:"찾을 수 없음"},"nested-scene-renderer":{"collapse-button-label":"장면 접기","expand-button-label":"장면 펼치기","remove-button-label":"장면 제거"},"scene-debugger":{"object-details":"객체 상세 정보","scene-graph":"장면 그래프","title-scene-debugger":"장면 디버거"},"scene-grid-row":{"collapse-row":"행 접기","expand-row":"행 펼치기"},"scene-time-range-compare-renderer":{"button-label":"비교","button-tooltip":"시간 범위 비교 활성화"},splitter:{"aria-label-pane-resize-widget":"창 크기 조정 위젯"},"viz-panel":{title:{title:"제목"}},"viz-panel-explore-button":{explore:"탐색"},"viz-panel-renderer":{"loading-plugin-panel":"플러그인 패널 로딩 중...","panel-plugin-has-no-panel-component":"패널 플러그인에 패널 구성 요소가 없습니다."},"viz-panel-series-limit":{"content-rendering-series-single-panel-impact-performance":"하나의 패널에 너무 많은 시리즈를 렌더링하면 성능에 영향을 주고 데이터가 읽기 어려워질 수 있습니다. ","warning-message":"{{seriesLimit}}개 시계열만 표시 중"}},utils:{"controls-label":{"tooltip-remove":"제거"},"loading-indicator":{"content-cancel-query":"쿼리 취소"}},variables:{"ad-hoc-combobox":{"aria-label-edit-filter-operator":"필터 연산자 편집"},"ad-hoc-filter-builder":{"aria-label-add-filter":"필터 추가","title-add-filter":"필터 추가"},"ad-hoc-filter-renderer":{"aria-label-remove-filter":"필터 제거","key-select":{"placeholder-select-label":"레이블 선택"},"label-select-label":"레이블 선택","title-remove-filter":"필터 제거","value-select":{"placeholder-select-value":"값 선택"}},"data-source-variable":{label:{default:"기본값"}},"default-group-by-custom-indicator-container":{"aria-label-clear":"지우기",tooltip:"이 대시보드에서 기본적으로 적용됩니다. 편집하면 다른 대시보드로 이전됩니다.","tooltip-restore-groupby-set-by-this-dashboard":"이 대시보드에서 설정한 '그룹별'을 복원합니다."},"format-registry":{formats:{description:{"commaseparated-values":"쉼표로 구분된 값","double-quoted-values":"큰 따옴표로 묶인 값","format-date-in-different-ways":"다양한 방식으로 날짜 형식 지정","format-multivalued-variables-using-syntax-example":"glob 구문을 사용하여 다중 값 변수 형식 지정, 예: {value1,value2}","html-escaping-of-values":"값의 HTML 이스케이프","json-stringify-value":"JSON 문자열화 값","keep-value-as-is":"값을 그대로 유지","multiple-values-are-formatted-like-variablevalue":"여러 값은 variable=value와 같은 형식으로 지정됩니다.","single-quoted-values":"작은 따옴표로 묶인 값","useful-escaping-values-taking-syntax-characters":"URI 구문 문자를 고려한 URL 이스케이프 값에 유용","useful-for-url-escaping-values":"URL 이스케이프 값에 유용","values-are-separated-by-character":"값은 | 문자로 구분됩니다"}}},"group-by-variable-renderer":{"aria-label-group-by-selector":"선택기를 기준으로 그룹화","placeholder-group-by-label":"레이블을 기준으로 그룹화"},"interval-variable":{"placeholder-select-value":"값 선택"},"loading-options-placeholder":{"loading-options":"옵션 로딩 중..."},"multi-value-apply-button":{apply:"적용"},"no-options-placeholder":{"no-options-found":"찾은 옵션 없음"},"options-error-placeholder":{"error-occurred-fetching-labels-click-retry":"라벨을 가져오는 동안 오류가 발생했습니다. 클릭하여 다시 시도"},"test-object-with-variable-dependency":{title:{hello:"안녕하세요"}},"test-variable":{text:{text:"텍스트"}},"variable-value-input":{"placeholder-enter-value":"값 입력"},"variable-value-select":{"placeholder-select-value":"값 선택"}}}}}}]); +//# sourceMappingURL=353.js.map?_cache=4585cf7a0d5ac43a4d0e \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js.map b/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js.map new file mode 100644 index 00000000..5a843483 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/353.js.map @@ -0,0 +1 @@ +{"version":3,"file":"353.js?_cache=4585cf7a0d5ac43a4d0e","mappings":"mKAAA,IAAIA,EAAgB,CACnB,iBAAkB,CAClBC,WAAY,CACX,oBAAqB,CACpB,uBAAwB,wBACxB,iBAAkB,mBAClB,yBAA0B,yBAE3B,yBAA0B,CACzB,sBAAuB,0BACvB,mBAAoB,8BAErB,gBAAiB,CAChBC,QAAS,+CACTC,SAAU,2BACVC,MAAO,WAER,wBAAyB,CACxB,wBAAyB,QACzB,sBAAuB,SACvB,sBAAuB,SAExB,iBAAkB,CACjB,iBAAkB,WAClB,cAAe,SACf,uBAAwB,UAEzB,iBAAkB,CACjB,eAAgB,OAChB,aAAc,SAEf,oCAAqC,CACpC,eAAgB,KAChB,iBAAkB,gBAEnBC,SAAU,CACT,gCAAiC,cAElC,YAAa,CACZD,MAAO,CACNA,MAAO,OAGT,2BAA4B,CAC3BE,QAAS,MAEV,qBAAsB,CACrB,uBAAwB,kBACxB,sCAAuC,4BAExC,yBAA0B,CACzB,2DAA4D,4DAC5D,kBAAmB,+BAGrBC,MAAO,CACN,iBAAkB,CACjB,iBAAkB,MAEnB,oBAAqB,CACpB,uBAAwB,UAG1BC,UAAW,CACV,kBAAmB,CAClB,kCAAmC,aAEpC,wBAAyB,CACxB,wBAAyB,QACzB,mBAAoB,SAErB,yBAA0B,CACzB,2BAA4B,QAC5B,aAAc,CACb,2BAA4B,UAE7B,qBAAsB,SACtB,sBAAuB,QACvB,eAAgB,CACf,2BAA4B,SAG9B,uBAAwB,CACvBC,MAAO,CACN,QAAW,QAGb,8CAA+C,CAC9C,mBAAoB,MACpBC,QAAS,6CACT,gDAAiD,8BAElD,kBAAmB,CAClBC,QAAS,CACRC,YAAa,CACZ,wBAAyB,YACzB,uBAAwB,cACxB,gCAAiC,oBACjC,oDAAqD,kDACrD,0BAA2B,gBAC3B,uBAAwB,cACxB,mBAAoB,YACpB,mDAAoD,uCACpD,uBAAwB,eACxB,kDAAmD,iCACnD,iCAAkC,kBAClC,oCAAqC,oBAIxC,6BAA8B,CAC7B,+BAAgC,gBAChC,6BAA8B,iBAE/B,oBAAqB,CACpB,2BAA4B,QAE7B,8BAA+B,CAC9B,kBAAmB,cAEpB,2BAA4B,CAC3BC,MAAO,MAER,yBAA0B,CACzB,mBAAoB,YAErB,4BAA6B,CAC5B,6CAA8C,sCAE/C,uCAAwC,CACvCT,MAAO,CACNU,MAAO,UAGT,gBAAiB,CAChBC,KAAM,CACLA,KAAM,QAGR,uBAAwB,CACvB,0BAA2B,QAE5B,wBAAyB,CACxB,2BAA4B,U","sources":["webpack://grafana-exploretraces-app/../node_modules/@grafana/scenes/dist/esm/locales/ko-KR/grafana-scenes.json.js"],"sourcesContent":["var grafanaScenes = {\n\t\"grafana-scenes\": {\n\tcomponents: {\n\t\t\"adhoc-filter-pill\": {\n\t\t\t\"edit-filter-with-key\": \"{{keyLabel}} 키로 필터 편집\",\n\t\t\t\"managed-filter\": \"{{origin}} 관리 필터\",\n\t\t\t\"remove-filter-with-key\": \"{{keyLabel}} 키로 필터 제거\"\n\t\t},\n\t\t\"adhoc-filters-combobox\": {\n\t\t\t\"remove-filter-value\": \"필터 값 제거 - {{itemLabel}}\",\n\t\t\t\"use-custom-value\": \"사용자 지정 값 사용: {{itemLabel}}\"\n\t\t},\n\t\t\"fallback-page\": {\n\t\t\tcontent: \"링크를 사용하여 여기로 이동한 경우 이 애플리케이션에 버그가 있을 수 있습니다.\",\n\t\t\tsubTitle: \"URL이 어떤 페이지와도 일치하지 않습니다.\",\n\t\t\ttitle: \"찾을 수 없음\"\n\t\t},\n\t\t\"nested-scene-renderer\": {\n\t\t\t\"collapse-button-label\": \"장면 접기\",\n\t\t\t\"expand-button-label\": \"장면 펼치기\",\n\t\t\t\"remove-button-label\": \"장면 제거\"\n\t\t},\n\t\t\"scene-debugger\": {\n\t\t\t\"object-details\": \"객체 상세 정보\",\n\t\t\t\"scene-graph\": \"장면 그래프\",\n\t\t\t\"title-scene-debugger\": \"장면 디버거\"\n\t\t},\n\t\t\"scene-grid-row\": {\n\t\t\t\"collapse-row\": \"행 접기\",\n\t\t\t\"expand-row\": \"행 펼치기\"\n\t\t},\n\t\t\"scene-time-range-compare-renderer\": {\n\t\t\t\"button-label\": \"비교\",\n\t\t\t\"button-tooltip\": \"시간 범위 비교 활성화\"\n\t\t},\n\t\tsplitter: {\n\t\t\t\"aria-label-pane-resize-widget\": \"창 크기 조정 위젯\"\n\t\t},\n\t\t\"viz-panel\": {\n\t\t\ttitle: {\n\t\t\t\ttitle: \"제목\"\n\t\t\t}\n\t\t},\n\t\t\"viz-panel-explore-button\": {\n\t\t\texplore: \"탐색\"\n\t\t},\n\t\t\"viz-panel-renderer\": {\n\t\t\t\"loading-plugin-panel\": \"플러그인 패널 로딩 중...\",\n\t\t\t\"panel-plugin-has-no-panel-component\": \"패널 플러그인에 패널 구성 요소가 없습니다.\"\n\t\t},\n\t\t\"viz-panel-series-limit\": {\n\t\t\t\"content-rendering-series-single-panel-impact-performance\": \"하나의 패널에 너무 많은 시리즈를 렌더링하면 성능에 영향을 주고 데이터가 읽기 어려워질 수 있습니다. \",\n\t\t\t\"warning-message\": \"{{seriesLimit}}개 시계열만 표시 중\"\n\t\t}\n\t},\n\tutils: {\n\t\t\"controls-label\": {\n\t\t\t\"tooltip-remove\": \"제거\"\n\t\t},\n\t\t\"loading-indicator\": {\n\t\t\t\"content-cancel-query\": \"쿼리 취소\"\n\t\t}\n\t},\n\tvariables: {\n\t\t\"ad-hoc-combobox\": {\n\t\t\t\"aria-label-edit-filter-operator\": \"필터 연산자 편집\"\n\t\t},\n\t\t\"ad-hoc-filter-builder\": {\n\t\t\t\"aria-label-add-filter\": \"필터 추가\",\n\t\t\t\"title-add-filter\": \"필터 추가\"\n\t\t},\n\t\t\"ad-hoc-filter-renderer\": {\n\t\t\t\"aria-label-remove-filter\": \"필터 제거\",\n\t\t\t\"key-select\": {\n\t\t\t\t\"placeholder-select-label\": \"레이블 선택\"\n\t\t\t},\n\t\t\t\"label-select-label\": \"레이블 선택\",\n\t\t\t\"title-remove-filter\": \"필터 제거\",\n\t\t\t\"value-select\": {\n\t\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t\t}\n\t\t},\n\t\t\"data-source-variable\": {\n\t\t\tlabel: {\n\t\t\t\t\"default\": \"기본값\"\n\t\t\t}\n\t\t},\n\t\t\"default-group-by-custom-indicator-container\": {\n\t\t\t\"aria-label-clear\": \"지우기\",\n\t\t\ttooltip: \"이 대시보드에서 기본적으로 적용됩니다. 편집하면 다른 대시보드로 이전됩니다.\",\n\t\t\t\"tooltip-restore-groupby-set-by-this-dashboard\": \"이 대시보드에서 설정한 '그룹별'을 복원합니다.\"\n\t\t},\n\t\t\"format-registry\": {\n\t\t\tformats: {\n\t\t\t\tdescription: {\n\t\t\t\t\t\"commaseparated-values\": \"쉼표로 구분된 값\",\n\t\t\t\t\t\"double-quoted-values\": \"큰 따옴표로 묶인 값\",\n\t\t\t\t\t\"format-date-in-different-ways\": \"다양한 방식으로 날짜 형식 지정\",\n\t\t\t\t\t\"format-multivalued-variables-using-syntax-example\": \"glob 구문을 사용하여 다중 값 변수 형식 지정, 예: {value1,value2}\",\n\t\t\t\t\t\"html-escaping-of-values\": \"값의 HTML 이스케이프\",\n\t\t\t\t\t\"json-stringify-value\": \"JSON 문자열화 값\",\n\t\t\t\t\t\"keep-value-as-is\": \"값을 그대로 유지\",\n\t\t\t\t\t\"multiple-values-are-formatted-like-variablevalue\": \"여러 값은 variable=value와 같은 형식으로 지정됩니다.\",\n\t\t\t\t\t\"single-quoted-values\": \"작은 따옴표로 묶인 값\",\n\t\t\t\t\t\"useful-escaping-values-taking-syntax-characters\": \"URI 구문 문자를 고려한 URL 이스케이프 값에 유용\",\n\t\t\t\t\t\"useful-for-url-escaping-values\": \"URL 이스케이프 값에 유용\",\n\t\t\t\t\t\"values-are-separated-by-character\": \"값은 | 문자로 구분됩니다\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"group-by-variable-renderer\": {\n\t\t\t\"aria-label-group-by-selector\": \"선택기를 기준으로 그룹화\",\n\t\t\t\"placeholder-group-by-label\": \"레이블을 기준으로 그룹화\"\n\t\t},\n\t\t\"interval-variable\": {\n\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t},\n\t\t\"loading-options-placeholder\": {\n\t\t\t\"loading-options\": \"옵션 로딩 중...\"\n\t\t},\n\t\t\"multi-value-apply-button\": {\n\t\t\tapply: \"적용\"\n\t\t},\n\t\t\"no-options-placeholder\": {\n\t\t\t\"no-options-found\": \"찾은 옵션 없음\"\n\t\t},\n\t\t\"options-error-placeholder\": {\n\t\t\t\"error-occurred-fetching-labels-click-retry\": \"라벨을 가져오는 동안 오류가 발생했습니다. 클릭하여 다시 시도\"\n\t\t},\n\t\t\"test-object-with-variable-dependency\": {\n\t\t\ttitle: {\n\t\t\t\thello: \"안녕하세요\"\n\t\t\t}\n\t\t},\n\t\t\"test-variable\": {\n\t\t\ttext: {\n\t\t\t\ttext: \"텍스트\"\n\t\t\t}\n\t\t},\n\t\t\"variable-value-input\": {\n\t\t\t\"placeholder-enter-value\": \"값 입력\"\n\t\t},\n\t\t\"variable-value-select\": {\n\t\t\t\"placeholder-select-value\": \"값 선택\"\n\t\t}\n\t}\n}\n};\n\nexport { grafanaScenes as default };\n//# sourceMappingURL=grafana-scenes.json.js.map\n"],"names":["grafanaScenes","components","content","subTitle","title","splitter","explore","utils","variables","label","tooltip","formats","description","apply","hello","text"],"sourceRoot":""} \ No newline at end of file diff --git a/hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js b/hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js new file mode 100644 index 00000000..56ba36a1 --- /dev/null +++ b/hw3/settings/grafana/plugins/grafana-exploretraces-app/43.js @@ -0,0 +1,3 @@ +/*! For license information please see 43.js.LICENSE.txt */ +(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[43],{7:function(e,t,n){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},16:function(e,t,n){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"}function r(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"}function a(e,t,n,r){var a=s(e);switch(n){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}function s(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,s="";return n>0&&(s+=t[n]+"vatlh"),r>0&&(s+=(""!==s?" ":"")+t[r]+"maH"),a>0&&(s+=(""!==s?" ":"")+t[a]),""===s?"pagh":s}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:n,past:r,s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},50:function(e,t,n){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(2689))},76:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},116:(e,t,n)=>{"use strict";n.d(t,{$0:()=>v,AY:()=>M,Hp:()=>d,IP:()=>c,LE:()=>g,MB:()=>r,NY:()=>a,Nm:()=>w,bE:()=>u,d_:()=>s,fY:()=>l,jQ:()=>o,k8:()=>m,mz:()=>b,rT:()=>i,tS:()=>y,tv:()=>_,w2:()=>p,wQ:()=>f,wi:()=>L,y6:()=>h});const r="en-US",a="fr-FR",s="es-ES",i="de-DE",o="pt-BR",l="zh-Hans",u="it-IT",d="ja-JP",c="id-ID",h="ko-KR",m="ru-RU",p="cs-CZ",f="nl-NL",_="hu-HU",g="pt-PT",y="pl-PL",v="sv-SE",b="tr-TR",M="zh-Hant",w=r,L="pseudo"},118:(e,t,n)=>{"use strict";n.d(t,{H9:()=>ds,yP:()=>ul,mI:()=>dl,d0:()=>Sd,xK:()=>vu,gF:()=>yu,Zv:()=>W,Es:()=>Gi,vA:()=>_u,G1:()=>fu,Bs:()=>Y,So:()=>z,dt:()=>Ms,WM:()=>iu,KE:()=>eu,JZ:()=>ee,Pj:()=>il,$L:()=>xl,Sh:()=>Fs,Eb:()=>Ji,Lw:()=>Ol,Gg:()=>r,jh:()=>hi,Go:()=>kd});var r={};n.r(r),n.d(r,{K2:()=>Li});var a=n(1159),s=n(7781),i=n(8531);function o(e,t,n){const r={...t};if(n)for(const e of Object.keys(r))n.includes(e)||delete r[e];return s.urlUtil.renderUrl(s.locationUtil.assureBaseUrl(e),r)}function l(e){const t=(0,a.useParams)(),n=(0,a.useLocation)();return{params:t,isExact:null!==(0,a.matchPath)({path:e,caseSensitive:!1,end:!0},n.pathname),path:n.pathname,url:n.pathname}}const u=new Map;var d=n(5959),c=n.t(d,2),h=n.n(d),m=n(1269);const p={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let f;const _=new Uint8Array(16);function g(){if(!f&&(f="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!f))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return f(_)}const y=[];for(let e=0;e<256;++e)y.push((e+256).toString(16).slice(1));function v(e,t=0){return y[e[t+0]]+y[e[t+1]]+y[e[t+2]]+y[e[t+3]]+"-"+y[e[t+4]]+y[e[t+5]]+"-"+y[e[t+6]]+y[e[t+7]]+"-"+y[e[t+8]]+y[e[t+9]]+"-"+y[e[t+10]]+y[e[t+11]]+y[e[t+12]]+y[e[t+13]]+y[e[t+14]]+y[e[t+15]]}const b=function(e,t,n){if(p.randomUUID&&!t&&!e)return p.randomUUID();const r=(e=e||{}).random||(e.rng||g)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return v(r)};const M=h().memo(function({model:e,...t}){var n;const r=null!=(n=e.constructor.Component)?n:w,[a,s]=(0,d.useState)(0);return(0,d.useEffect)(()=>{const t=e.activate();return s(e=>e+1),t},[e]),e.isActive||e.renderBeforeActivation?h().createElement(r,{...t,model:e}):null});function w(e){return null}class L extends s.BusEventWithPayload{}L.type="scene-object-state-change";class S extends s.BusEventWithPayload{}S.type="scene-object-user-action";var k,D=e=>{throw TypeError(e)},T=(e,t,n)=>t.has(e)||D("Cannot "+n);class x{constructor(e){var t,n,r;t=this,(n=k).has(t)?D("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(t):n.set(t,r),((e,t,n)=>{T(e,t,"write to private field"),t.set(e,n)})(this,k,e)}resolve(){return T(e=this,t=k,"read from private field"),n?n.call(e):t.get(e);var e,t,n}}k=new WeakMap;class Y{constructor(e){this._isActive=!1,this._activationHandlers=[],this._deactivationHandlers=new Map,this._subs=new m.Subscription,this._refCount=0,this._renderBeforeActivation=!1,e.key||(e.key=b()),this._events=new s.EventBusSrv,this._state=Object.freeze(e),this._setParent(this._state)}get state(){return this._state}get isActive(){return this._isActive}get renderBeforeActivation(){return this._renderBeforeActivation}get parent(){return this._parent}get variableDependency(){return this._variableDependency}get urlSync(){return this._urlSync}get Component(){return M}_setParent(e){O(e,e=>{e._parent&&e._parent!==this&&console.warn("SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.",e,this),e._parent=this})}clearParent(){this._parent=void 0}subscribeToState(e){return this._events.subscribe(L,t=>{t.payload.changedObject===this&&e(t.payload.newState,t.payload.prevState)})}subscribeToEvent(e,t){return this._events.subscribe(e,t)}setState(e){const t=this._state,n={...this._state,...e};this._state=Object.freeze(n),this._setParent(e),this._handleActivationOfChangedStateProps(t,n),this.publishEvent(new L({prevState:t,newState:n,partialUpdate:e,changedObject:this}),!0)}_handleActivationOfChangedStateProps(e,t){this.isActive&&(e.$behaviors!==t.$behaviors&&this._handleChangedBehaviors(e.$behaviors,t.$behaviors),e.$data!==t.$data&&this._handleChangedStateActivation(e.$data,t.$data),e.$variables!==t.$variables&&this._handleChangedStateActivation(e.$variables,t.$variables),e.$timeRange!==t.$timeRange&&this._handleChangedStateActivation(e.$timeRange,t.$timeRange))}_handleChangedStateActivation(e,t){if(e){const t=this._deactivationHandlers.get(e);t&&(t(),this._deactivationHandlers.delete(e))}t&&this._deactivationHandlers.set(t,t.activate())}_handleChangedBehaviors(e,t){if(e)for(const n of e)if(!t||!t.includes(n)){const e=this._deactivationHandlers.get(n);e&&(e(),this._deactivationHandlers.delete(n))}if(t)for(const n of t)e&&e.includes(n)||this._activateBehavior(n)}publishEvent(e,t){this._events.publish(e),t&&this.parent&&this.parent.publishEvent(e,t)}getRoot(){return this._parent?this._parent.getRoot():this}_internalActivate(){this._isActive=!0;const{$data:e,$variables:t,$timeRange:n,$behaviors:r}=this.state;if(this._activationHandlers.forEach(e=>{const t=e();t&&this._deactivationHandlers.set(t,t)}),n&&!n.isActive&&this._deactivationHandlers.set(n,n.activate()),t&&!t.isActive&&this._deactivationHandlers.set(t,t.activate()),e&&!e.isActive&&this._deactivationHandlers.set(e,e.activate()),r)for(const e of r)this._activateBehavior(e)}_activateBehavior(e){if(e instanceof Y)this._deactivationHandlers.set(e,e.activate());else if("function"==typeof e){const t=e(this);t&&this._deactivationHandlers.set(e,t)}}activate(){this.isActive||this._internalActivate(),this._refCount++;let e=!1;return()=>{if(this._refCount--,e){throw new Error("SceneObject cancelation handler returned by activate() called a second time")}e=!0,0===this._refCount&&this._internalDeactivate()}}_internalDeactivate(){this._isActive=!1;for(let e of this._deactivationHandlers.values())e();this._deactivationHandlers.clear(),this._events.removeAllListeners(),this._subs.unsubscribe(),this._subs=new m.Subscription}useState(){return E(this)}forceRender(){this.setState({})}clone(e){return function(e,t){const n=C(e.state,t);return new e.constructor(n)}(this,e)}addActivationHandler(e){this._activationHandlers.push(e)}forEachChild(e){O(this.state,e)}getRef(){return this._ref||(this._ref=new x(this)),this._ref}toJSON(){return{type:Object.getPrototypeOf(this).constructor.name,isActive:this.isActive,state:this.state}}}function E(e,t){var n;const[r,a]=(0,d.useState)(e.state),s=e.state,i=null!=(n=null==t?void 0:t.shouldActivateOrKeepAlive)&&n;return(0,d.useEffect)(()=>{let t;i&&(t=e.activate());const n=e.subscribeToState(e=>{a(e)});return e.state!==s&&a(e.state),()=>{n.unsubscribe(),t&&t()}},[e,i]),e.state}function O(e,t){for(const n of Object.values(e)){if(n instanceof Y){if(!1===t(n))break}if(Array.isArray(n)){let e=!1;for(const r of n)if(r instanceof Y){if(!1===t(r)){e=!0;break}}if(e)break}}}var A=n(3241);function C(e,t){const n={...e};Object.assign(n,t);for(const e in n){if(t&&void 0!==t[e])continue;const r=n[e];if(r instanceof x)console.warn("Cloning object with SceneObjectRef");else if(r instanceof Y)n[e]=r.clone();else if(Array.isArray(r)){const t=[];for(const e of r)e instanceof Y?t.push(e.clone()):"object"==typeof e?t.push((0,A.cloneDeep)(e)):t.push(e);n[e]=t}else n[e]="object"==typeof r?(0,A.cloneDeep)(r):r}return n}s.DataSourceApi;const R=new Map;function P(e,t){const n=t.state.$variables;if(!n)return t.parent?P(e,t.parent):null;const r=n.getByName(e);return r||(t.parent?P(e,t.parent):null)}function j(e,t,...n){let r=!1;"undefined"!=typeof window&&(r="true"===localStorage.getItem("grafana.debug.scenes"))}function H(e){return"isQueryController"in e}function N(e){let t=e;for(;t;){if(t.state.$behaviors)for(const e of t.state.$behaviors)if(H(e))return e;t=t.parent}}new WeakMap,new WeakMap;var I=n(1625);I.ob.Auto;var F=(e=>(e.NotStarted="NotStarted",e.Loading="Loading",e.Streaming="Streaming",e.Done="Done",e.Error="Error",e))(F||{});class W extends Y{constructor(e){super({data:V,...e})}getResultsStream(){const e={origin:this,data:this.state.data};return(0,m.of)(e)}}const V={state:F.Done,series:[],timeRange:(0,s.getDefaultTimeRange)()};class z{constructor(e,t){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1,this._keys=t.keys}getKeys(){return"function"==typeof this._keys?this._keys():this._keys}getUrlState(){return this._sceneObject.getUrlState()}updateFromUrl(e){this._sceneObject.updateFromUrl(e)}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}}function $(e,t){let n,r=e;for(;r&&!n;)n=t(r),r=r.parent;return n}const B=/^\d+[yYmMsSwWhHdD]$/;function U(e){if("string"!=typeof e)return null;if(-1!==e.indexOf("now"))return e;if(B.test(e))return e;if(8===e.length){const t=(0,s.toUtc)(e,"YYYYMMDD");if(t.isValid())return t.toISOString()}else if(15===e.length){const t=(0,s.toUtc)(e,"YYYYMMDDTHHmmss");if(t.isValid())return t.toISOString()}else if(19===e.length){const t=(0,s.toUtc)(e,"YYYY-MM-DD HH:mm:ss");if(t.isValid())return t.toISOString()}else if(24===e.length){return(0,s.toUtc)(e).toISOString()}const t=parseInt(e,10);return isNaN(t)?null:(0,s.toUtc)(t).toISOString()}function q(e,t,n,r,a,i){const o=a&&"now"===t,l=Date.now();i&&function(e){e!==G&&(G=e,(0,s.setWeekStart)(e))}(i);const u=(e,t)=>s.dateMath.toDateTime?s.dateMath.toDateTime(e,t):s.dateMath.parse(e,t.roundUp,t.timezone,t.fiscalYearStartMonth);return{to:u(o?"now-"+a:t,{roundUp:!0,timezone:n,fiscalYearStartMonth:r,now:l}),from:u(e,{roundUp:!1,timezone:n,fiscalYearStartMonth:r,now:l}),raw:{from:e,to:t}}}let G;function J(e,t,n){if((0,s.isDateTime)(e))return e.isValid();if(s.dateMath.isMathString(e))return s.dateMath.isValid(e);return(0,s.dateTimeParse)(e,{roundUp:t,timeZone:n}).isValid()}new WeakMap,new WeakMap,new WeakMap,new WeakMap,new WeakMap;const K="refresh",Q="filter_removed",Z="filter_changed",X="variable_value_changed";class ee extends Y{constructor(e={}){var t;const n=e.from&&J(e.from)?e.from:"now-6h",r=e.to&&J(e.to)?e.to:"now",a=te(e.timeZone);super({from:n,to:r,timeZone:a,value:q(n,r,a||(0,s.getTimeZone)(),e.fiscalYearStartMonth,e.UNSAFE_nowDelay,e.weekStart),refreshOnActivate:null!=(t=e.refreshOnActivate)?t:{percent:10},...e}),this._urlSync=new z(this,{keys:["from","to","timezone","time","time.window"]}),this.onTimeRangeChange=e=>{const t={};if("string"==typeof e.raw.from?t.from=e.raw.from:t.from=e.raw.from.toISOString(),"string"==typeof e.raw.to?t.to=e.raw.to:t.to=e.raw.to.toISOString(),t.value=q(t.from,t.to,this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),t.from!==this.state.from||t.to!==this.state.to){const e=N(this);null==e||e.startProfile("time_range_change"),this._urlSync.performBrowserHistoryAction(()=>{this.setState(t)})}},this.onTimeZoneChange=e=>{this._urlSync.performBrowserHistoryAction(()=>{var t;const n=null!=(t=te(e))?t:I.vp,r=q(this.state.from,this.state.to,n,this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart);this.setState({timeZone:n,value:r})})},this.onRefresh=()=>{this.refreshRange(0),this.publishEvent(new i.RefreshEvent,!0)},this.addActivationHandler(this._onActivate.bind(this))}_onActivate(){if(!this.state.timeZone){const e=this.getTimeZoneSource();e!==this&&this._subs.add(e.subscribeToState((e,t)=>{void 0!==e.timeZone&&e.timeZone!==t.timeZone&&this.refreshRange(0)}))}return s.rangeUtil.isRelativeTimeRange(this.state.value.raw)&&this.refreshIfStale(),()=>{this.state.weekStart&&(0,s.setWeekStart)(i.config.bootData.user.weekStart)}}refreshIfStale(){var e,t,n,r;let a;void 0!==(null==(t=null==(e=this.state)?void 0:e.refreshOnActivate)?void 0:t.percent)&&(a=this.calculatePercentOfInterval(this.state.refreshOnActivate.percent)),void 0!==(null==(r=null==(n=this.state)?void 0:n.refreshOnActivate)?void 0:r.afterMs)&&(a=Math.min(this.state.refreshOnActivate.afterMs,null!=a?a:1/0)),void 0!==a&&this.refreshRange(a)}getTimeZoneSource(){if(!this.parent||!this.parent.parent)return this;const e=$(this.parent.parent,e=>{if(e.state.$timeRange&&e.state.$timeRange.state.timeZone)return e.state.$timeRange});return e||this}refreshRange(e){var t;const n=q(this.state.from,this.state.to,null!=(t=this.state.timeZone)?t:(0,s.getTimeZone)(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart);n.to.diff(this.state.value.to,"milliseconds")>=e&&this.setState({value:n})}calculatePercentOfInterval(e){const t=this.state.value.to.diff(this.state.value.from,"milliseconds");return Math.ceil(t/100*e)}getTimeZone(){if(this.state.timeZone&&te(this.state.timeZone))return this.state.timeZone;const e=this.getTimeZoneSource();return e!==this&&te(e.state.timeZone)?e.state.timeZone:(0,s.getTimeZone)()}getUrlState(){const e=i.locationService.getSearchObject(),t={from:this.state.from,to:this.state.to,timezone:this.getTimeZone()};return e.time&&e["time.window"]&&(t.time=null,t["time.window"]=null),t}updateFromUrl(e){var t,n,r;const a={};let i=U(e.from),o=U(e.to);if(e.time&&e["time.window"]){const t=function(e,t){const n=isNaN(Date.parse(e))?parseInt(e,10):Date.parse(e);let r;r=t.match(/^\d+$/)&&parseInt(t,10)?parseInt(t,10):s.rangeUtil.intervalToMs(t);return{from:(0,s.toUtc)(n-r/2).toISOString(),to:(0,s.toUtc)(n+r/2).toISOString()}}(Array.isArray(e.time)?e.time[0]:e.time,Array.isArray(e["time.window"])?e["time.window"][0]:e["time.window"]);t.from&&J(t.from)&&(i=t.from),t.to&&J(t.to)&&(o=t.to)}if(i&&J(i)&&(a.from=i),o&&J(o)&&(a.to=o),"string"==typeof e.timezone&&(a.timeZone=""!==e.timezone?e.timezone:void 0),0!==Object.keys(a).length)return a.value=q(null!=(t=a.from)?t:this.state.from,null!=(n=a.to)?n:this.state.to,null!=(r=a.timeZone)?r:this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),this.setState(a)}}function te(e){if(void 0!==e)return(0,A.isEmpty)(e)?i.config.bootData.user.timezone:e===I.vp||(0,s.getZone)(e)?e:void j()}const ne=new W,re=new ee;const ae=new class extends Y{constructor(){super({variables:[]})}getByName(e){}isVariableLoadingOrWaitingToUpdate(e){return!1}};function se(e){var t;return null!=(t=$(e,e=>e.state.$timeRange))?t:re}class ie extends s.BusEventWithPayload{}function oe(e){return"object"==typeof e&&"formatter"in e}ie.type="scene-variable-changed-value";let le,ue={};function de(e){const t=ue[e];return t||(ue[e]=(0,A.property)(e))}class ce{constructor(e,t){this.state={name:e,value:t,type:"scopedvar"}}getValue(e){let{value:t}=this.state,n=t.value;return n=e?de(e)(t.value):t.value,"string"===n||"number"===n||"boolean"===n?n:String(n)}getValueText(){const{value:e}=this.state;return null!=e.text?String(e.text):String(e)}}var he=n(9814);const me=new s.Registry(()=>{const e=[{id:I.$m.Lucene,name:"Lucene",description:"Values are lucene escaped and multi-valued variables generate an OR expression",formatter:e=>{if("string"==typeof e)return pe(e);if(Array.isArray(e)){if(0===e.length)return"__empty__";return"("+(0,A.map)(e,e=>'"'+pe(e)+'"').join(" OR ")+")"}return pe(`${e}`)}},{id:I.$m.Raw,name:"raw",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.keep-value-as-is","Keep value as is"),formatter:e=>String(e)},{id:I.$m.Regex,name:"Regex",description:"Values are regex escaped and multi-valued variables generate a (|) expression",formatter:e=>{if("string"==typeof e)return(0,s.escapeRegex)(e);if(Array.isArray(e)){const t=e.map(e=>"string"==typeof e?(0,s.escapeRegex)(e):(0,s.escapeRegex)(String(e)));return 1===t.length?t[0]:"("+t.join("|")+")"}return(0,s.escapeRegex)(`${e}`)}},{id:I.$m.Pipe,name:"Pipe",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.values-are-separated-by-character","Values are separated by | character"),formatter:e=>"string"==typeof e?e:Array.isArray(e)?e.join("|"):`${e}`},{id:I.$m.Distributed,name:"Distributed",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.multiple-values-are-formatted-like-variablevalue","Multiple values are formatted like variable=value"),formatter:(e,t,n)=>"string"==typeof e?e:Array.isArray(e)?(e=(0,A.map)(e,(e,t)=>0!==t?n.state.name+"="+e:e),e.join(",")):`${e}`},{id:I.$m.CSV,name:"Csv",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.commaseparated-values","Comma-separated values"),formatter:e=>"string"==typeof e?e:(0,A.isArray)(e)?e.join(","):String(e)},{id:I.$m.HTML,name:"HTML",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.html-escaping-of-values","HTML escaping of values"),formatter:e=>"string"==typeof e?s.textUtil.escapeHtml(e):(0,A.isArray)(e)?s.textUtil.escapeHtml(e.join(", ")):s.textUtil.escapeHtml(String(e))},{id:I.$m.JSON,name:"JSON",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.json-stringify-value","JSON stringify value"),formatter:e=>"string"==typeof e?e:JSON.stringify(e)},{id:I.$m.PercentEncode,name:"Percent encode",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.useful-for-url-escaping-values","Useful for URL escaping values"),formatter:e=>(0,A.isArray)(e)?fe("{"+e.join(",")+"}"):fe(e)},{id:I.$m.SingleQuote,name:"Single quote",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.single-quoted-values","Single quoted values"),formatter:e=>{const t=new RegExp("'","g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`'${(0,A.replace)(e,t,"\\'")}'`).join(",");let n="string"==typeof e?e:String(e);return`'${(0,A.replace)(n,t,"\\'")}'`}},{id:I.$m.DoubleQuote,name:"Double quote",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.double-quoted-values","Double quoted values"),formatter:e=>{const t=new RegExp('"',"g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`"${(0,A.replace)(e,t,'\\"')}"`).join(",");let n="string"==typeof e?e:String(e);return`"${(0,A.replace)(n,t,'\\"')}"`}},{id:I.$m.SQLString,name:"SQL string",description:"SQL string quoting and commas for use in IN statements and other scenarios",formatter:Me},{id:"join",name:"Join",description:"Join values with a comma",formatter:(e,t)=>{var n;if((0,A.isArray)(e)){const r=null!=(n=t[0])?n:",";return e.join(r)}return String(e)}},{id:I.$m.Date,name:"Date",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.format-date-in-different-ways","Format date in different ways"),formatter:(e,t)=>{var n;let r=NaN;if("number"==typeof e?r=e:"string"==typeof e&&(r=parseInt(e,10)),isNaN(r))return"NaN";const a=null!=(n=t[0])?n:"iso";switch(a){case"ms":return String(e);case"seconds":return`${Math.round(r/1e3)}`;case"iso":return(0,s.dateTime)(r).toISOString();default:return(t||[]).length>1?(0,s.dateTime)(r).format(t.join(":")):(0,s.dateTime)(r).format(a)}}},{id:I.$m.Glob,name:"Glob",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.format-multivalued-variables-using-syntax-example","Format multi-valued variables using glob syntax, example {value1,value2}"),formatter:e=>(0,A.isArray)(e)&&e.length>1?"{"+e.join(",")+"}":String(e)},{id:I.$m.Text,name:"Text",description:"Format variables in their text representation. Example in multi-variable scenario A + B + C.",formatter:(e,t,n)=>n.getValueText?n.getValueText():String(e)},{id:I.$m.QueryParam,name:"Query parameter",description:"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.",formatter:(e,t,n)=>{if(n.urlSync){const e=n.urlSync.getUrlState();return s.urlUtil.toUrlParams(e)}return Array.isArray(e)?e.map(e=>ye(n.state.name,e)).join("&"):ye(n.state.name,e)}},{id:"customqueryparam",name:"Custom query parameter",description:"Format variables as URL parameters with custom name and value prefix. Example in multi-variable scenario A + B + C => p-foo=x-A&p-foo=x-B&p-foo=x-C.",formatter:(e,t,n)=>{const r=fe(t[0]||n.state.name),a=fe(t[1]||"");return Array.isArray(e)?e.map(e=>ve(r,e,a)).join("&"):ve(r,e,a)}},{id:I.$m.UriEncode,name:"Percent encode as URI",description:(0,he.t)("grafana-scenes.variables.format-registry.formats.description.useful-escaping-values-taking-syntax-characters","Useful for URL escaping values, taking into URI syntax characters"),formatter:e=>(0,A.isArray)(e)?_e("{"+e.join(",")+"}"):_e(e)}];return e});function pe(e){return!1===isNaN(+e)?e:e.replace(/([\!\*\+\-\=<>\s\&\|\(\)\[\]\{\}\^\~\?\:\\/"])/g,"\\$1")}function fe(e){return"object"==typeof e&&(e=String(e)),ge(encodeURIComponent(e))}const _e=e=>ge(encodeURI(String(e))),ge=e=>e.replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase());function ye(e,t){return`var-${e}=${fe(t)}`}function ve(e,t,n=""){return`${e}=${n}${fe(t)}`}const be={"'":"''",'"':'\\"'};function Me(e){const t=new RegExp("'|\"","g");if((0,A.isArray)(e))return(0,A.map)(e,e=>`'${(0,A.replace)(e,t,e=>{var t;return null!=(t=be[e])?t:""})}'`).join(",");let n="string"==typeof e?e:String(e);return`'${(0,A.replace)(n,t,e=>{var t;return null!=(t=be[e])?t:""})}'`}const we="All",Le="$__all",Se="$__auto",ke=/\$(\w+)|\[\[(\w+?)(?::(\w+))?\]\]|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/g,De="__searchFilter",Te="__scopes";class xe{constructor(e){this._value=e}formatter(){return this._value}}class Ye{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=se(this._sceneObject);return"__from"===this.state.name?e.state.value.from.valueOf():e.state.value.to.valueOf()}getValueText(){const e=se(this._sceneObject);return"__from"===this.state.name?(0,s.dateTimeFormat)(e.state.value.from,{timeZone:e.getTimeZone()}):(0,s.dateTimeFormat)(e.state.value.to,{timeZone:e.getTimeZone()})}}class Ee{constructor(e,t,n){this.state={name:e,type:"time_macro",match:n},this._sceneObject=t}getValue(){var e;const t=oi(this._sceneObject);if(t){const n=null==(e=t.state.data)?void 0:e.request;return n?"__interval_ms"===this.state.name?n.intervalMs:n.interval:this.state.match}return this.state.match}}function Oe(e,t){e.setState(t)}function Ae(){return i.useLocationService?(0,i.useLocationService)():i.locationService}function Ce(e){let t=e;do{if("repeatSourceKey"in t.state&&t.state.repeatSourceKey)return!0;t=t.parent}while(t);return!1}class Re extends Y{constructor(){super(...arguments),this._urlSync=new Pe(this)}validateAndUpdate(){return this.getValueOptions({}).pipe((0,m.map)(e=>(this.updateValueGivenNewOptions(e),{})))}onCancel(){this.setStateHelper({loading:!1});const e=this.parent;null==e||e.cancel(this)}updateValueGivenNewOptions(e){const{value:t,text:n,options:r}=this.state,a=this.getStateUpdateGivenNewOptions(e,t,n);this.interceptStateUpdateAfterValidation(a),this.setStateHelper(a),(a.value!==t||a.text!==n||this.hasAllValue()&&!(0,A.isEqual)(e,r))&&this.publishEvent(new ie(this),!0)}getStateUpdateGivenNewOptions(e,t,n){const r={options:e,loading:!1,value:t,text:n};if(0===e.length)return this.state.defaultToAll||this.state.includeAll?(r.value=Le,r.text=we):this.state.isMulti?(r.value=[],r.text=[]):(r.value="",r.text=""),r;if(this.hasAllValue())return this.state.includeAll?r.text=we:(r.value=e[0].value,r.text=e[0].label,this.state.isMulti&&(r.value=[r.value],r.text=[r.text])),r;if(this.state.isMulti){const a=(Array.isArray(t)?t:[t]).filter(t=>e.find(e=>e.value===t)),s=a.map(t=>e.find(e=>e.value===t).label);if(0===a.length){const t=this.getDefaultMultiState(e);r.value=t.value,r.text=t.text}else(0,A.isEqual)(a,t)||(r.value=a),(0,A.isEqual)(s,n)||(r.text=s);return r}let a=function(e,t,n){let r;for(const a of n){if(a.value===e)return a;a.label===t&&(r=a)}return r}(t,n,e);if(a)r.text=a.label,r.value=a.value;else{const t=this.getDefaultSingleState(e);r.value=t.value,r.text=t.text}return r}interceptStateUpdateAfterValidation(e){const t=e.value===Le&&this.state.text===we;this.skipNextValidation&&e.value!==this.state.value&&e.text!==this.state.text&&!t&&(e.value=this.state.value,e.text=this.state.text),this.skipNextValidation=!1}getValue(e){let t=this.state.value;if(this.hasAllValue()){if(this.state.allValue)return new je(this.state.allValue,this);t=this.state.options.map(e=>e.value)}if(null!=e&&Array.isArray(t)){const n=parseInt(e,10);if(!isNaN(n)&&n>=0&&n0?{value:[e[0].value],text:[e[0].label]}:{value:[],text:[]}}getDefaultSingleState(e){return this.state.defaultToAll?{value:Le,text:we}:e.length>0?{value:e[0].value,text:e[0].label}:{value:"",text:""}}changeValueTo(e,t,n=!1){var r,a;if(e===this.state.value&&t===this.state.text)return;if(t||(t=Array.isArray(e)?e.map(e=>this.findLabelTextForValue(e)):this.findLabelTextForValue(e)),Array.isArray(e)){if(0===e.length){const n=this.getDefaultMultiState(this.state.options);e=n.value,t=n.text}e[e.length-1]===Le?(e=[Le],t=[we]):e[0]===Le&&e.length>1&&(e.shift(),Array.isArray(t)&&t.shift())}if((0,A.isEqual)(e,this.state.value)&&(0,A.isEqual)(t,this.state.text))return;const s=()=>this.setStateHelper({value:e,text:t,loading:!1});if(n){const e=N(this);null==e||e.startProfile(X),null==(a=(r=this._urlSync).performBrowserHistoryAction)||a.call(r,s)}else s();this.publishEvent(new ie(this),!0)}findLabelTextForValue(e){if(e===Le)return we;const t=this.state.options.find(t=>t.value===e);if(t)return t.label;const n=this.state.options.find(t=>t.label===e);return n?n.label:e}setStateHelper(e){Oe(this,e)}getOptionsForSelect(e=!0){let t=this.state.options;if(this.state.includeAll&&(t=[{value:Le,label:we},...t]),e&&!Array.isArray(this.state.value)){t.find(e=>e.value===this.state.value)||(t=[{value:this.state.value,label:String(this.state.text)},...t])}return t}refreshOptions(){this.getValueOptions({}).subscribe(e=>{this.updateValueGivenNewOptions(e)})}}class Pe{constructor(e){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){if(this._sceneObject.state.skipUrlSync)return{};let e=null,t=this._sceneObject.state.value;return e=Array.isArray(t)?t.map(String):this._sceneObject.state.isMulti?[String(t)]:String(t),{[this.getKey()]:e}}updateFromUrl(e){let t=e[this.getKey()];null!=t&&(this._sceneObject.state.includeAll&&(t=function(e){if((0,A.isArray)(e)&&e[0]===we)return[Le];if(e===we)return Le;return e}(t)),this._sceneObject.state.allValue&&this._sceneObject.state.allValue===t&&(t=Le),this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0),this._sceneObject.changeValueTo(t))}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}}class je{constructor(e,t){this._value=e,this._variable=t}formatter(e){return e===I.$m.Text?we:e===I.$m.PercentEncode?me.get(I.$m.PercentEncode).formatter(this._value,[],this._variable):e===I.$m.QueryParam?me.get(I.$m.QueryParam).formatter(we,[],this._variable):this._value}}function He(e,t={}){if(e.state.$variables)for(const n of e.state.$variables.state.variables)n.state.skipUrlSync||t[n.state.name]||(t[n.state.name]=n);return e.parent&&He(e.parent,t),t}const Ne=(0,s.getDisplayProcessor)();class Ie{constructor(e){this._urlQueryParams=e}formatter(e){if(!e)return this._urlQueryParams;const t=e.split(":");if("exclude"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams);for(const n of t[1].split(","))e.delete(n);return`?${e}`}if("include"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams),n=t[1].split(",");for(const t of e.keys())n.includes(t)||e.delete(t);return`?${e}`}return this._urlQueryParams}}const Fe=new Map([[s.DataLinkBuiltInVars.includeVars,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){const e=He(this._sceneObject),t=me.get(I.$m.QueryParam),n=[];for(const r of Object.keys(e)){const a=e[r];if(a instanceof Re&&a.hasAllValue()&&!a.state.allValue){n.push(t.formatter(Le,[],a));continue}const s=a.getValue();s&&(oe(s)?n.push(s.formatter(I.$m.QueryParam)):n.push(t.formatter(s,[],a)))}return new xe(n.join("&"))}getValueText(){return""}}],[s.DataLinkBuiltInVars.keepTime,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){var e;const t=null==(e=se(this._sceneObject).urlSync)?void 0:e.getUrlState();return"browser"===(null==t?void 0:t.timezone)&&(t.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone),new xe(s.urlUtil.toUrlParams(t))}getValueText(){return""}}],["__value",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__value"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r)return this._match;const{frame:a,rowIndex:i,field:o,calculatedValue:l}=r.value;if(l)switch(e){case"numeric":case"raw":return l.numeric;case"time":return"";default:return(0,s.formattedValueToString)(l)}if(null==i)return this._match;if("time"===e){const e=a.fields.find(e=>e.type===s.FieldType.time);return e?e.values.get(i):void 0}if(!o)return this._match;const u=o.values.get(i);if("raw"===e)return u;const d=(null!=(n=o.display)?n:Ne)(u);return"numeric"===e?d.numeric:(0,s.formattedValueToString)(d)}getValueText(){return""}}],["__data",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__data"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;const{frame:a,rowIndex:i}=r.value;if(void 0===i||void 0===e)return this._match;const o={name:a.name,refId:a.refId,fields:(0,s.getFieldDisplayValuesProxy)({frame:a,rowIndex:i})};return null!=(n=de(e)(o))?n:""}getValueText(){return""}}],["__series",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__series"}}getValue(e){var t;const n=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!n||!e)return this._match;if("name"!==e)return this._match;const{frame:r,frameIndex:a}=n.value;return(0,s.getFrameDisplayName)(r,a)}getValueText(){return""}}],["__field",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__field"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;if(void 0===e||""===e)return this._match;const{frame:a,field:i,data:o}=r.value,l=function(e,t,n){return new Proxy({},{get:(r,a)=>"name"===a?e.name:"displayName"===a?(0,s.getFieldDisplayName)(e,t,n):"labels"===a||"formattedLabels"===a?e.labels?{...e.labels,__values:Object.values(e.labels).sort().join(", "),toString:()=>(0,s.formatLabels)(e.labels,"",!0)}:"":void 0})}(i,a,o);return null!=(n=de(e)(l))?n:""}getValueText(){return""}}],["__url",class{constructor(e,t){this.state={name:e,type:"url_macro"}}getValue(e){var t;const n=i.locationService.getLocation(),r=null!=(t=i.config.appSubUrl)?t:"";switch(null!=e?e:""){case"params":return new Ie(n.search);case"path":return r+n.pathname;default:return r+n.pathname+n.search}}getValueText(){return""}}],["__from",Ye],["__to",Ye],["__timezone",class{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=se(this._sceneObject).getTimeZone();return"browser"===e?Intl.DateTimeFormat().resolvedOptions().timeZone:e}getValueText(){return this.getValue()}}],["__user",class{constructor(e,t){this.state={name:e,type:"user_macro"}}getValue(e){const t=i.config.bootData.user;switch(e){case"login":return t.login;case"email":return t.email;default:return String(t.id)}}getValueText(){return""}}],["__org",class{constructor(e,t){this.state={name:e,type:"org_macro"}}getValue(e){const t=i.config.bootData.user;return"name"===e?t.orgName:String(t.orgId)}getValueText(){return""}}],["__interval",Ee],["__interval_ms",Ee]]);function We(e,t,n,r,a){return t&&"string"==typeof t?(ke.lastIndex=0,t.replace(ke,(t,s,i,o,l,u,d)=>{const c=s||i||l,h=o||d||r,m=function(e,t,n,r){if(n&&n.hasOwnProperty(e)){const t=n[e];if(t)return function(e,t){return le?(le.state.name=e,le.state.value=t):le=new ce(e,t),le}(e,t)}const a=P(e,r);if(a)return a;const s=Fe.get(e);if(s)return new s(e,r,t,n);return null}(c,t,n,e);if(!m)return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:t,found:!1}),t;const p=function(e,t,n,r){if(null==n)return"";if(oe(n))return We(e,n.formatter(r));Array.isArray(n)||"object"!=typeof n||(n=`${n}`);if("function"==typeof r)return r(n,{name:t.state.name,type:t.state.type,multi:t.state.isMulti,includeAll:t.state.includeAll});let a=[];r?(a=r.split(":"),a.length>1?(r=a[0],a=a.slice(1)):a=[]):r=I.$m.Glob;let s=me.getIfExists(r);s||(console.error(`Variable format ${r} not found. Using glob format as fallback.`),s=me.get(I.$m.Glob));return s.formatter(n,a,t)}(e,m,m.getValue(u),h);return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:p,found:p!==t}),p})):null!=t?t:""}function Ve(e){return void 0!==e.useState}function ze(e){return"enrichDataRequest"in e}function $e(e){return"isDataLayer"in e}function Be(e){return t=>{const n=hi.getQueryController(e.origin);return n?new m.Observable(r=>{e.cancel||(e.cancel=()=>r.complete()),n.queryStarted(e);let a=!1;const s=t.subscribe({next:t=>{a||t.state===F.Loading||(a=!0,n.queryCompleted(e)),r.next(t)},error:e=>r.error(e),complete:()=>{r.complete()}});return()=>{s.unsubscribe(),a||n.queryCompleted(e)}}):t}}function Ue(e){return new m.Observable(t=>{t.next({state:F.Loading});(0,m.from)(e).pipe((0,m.map)(()=>({state:F.Done})),(0,m.catchError)(()=>(t.next({state:F.Error}),[]))).subscribe({next:e=>t.next(e),complete:()=>t.complete()})})}async function qe(e,t){var n;if(null==e?void 0:e.uid){const t=R.get(e.uid);if(t)return t}if(e&&e.query)return e;const r=(0,i.getDataSourceSrv)().get(e,t);if(t.__sceneObject&&t.__sceneObject.value.valueOf()){const a=hi.getQueryController(t.__sceneObject.value.valueOf());a&&a.state.enableProfiling&&Ue(r).pipe(Be({type:`getDataSource/${null!=(n=null==e?void 0:e.type)?n:"unknown"}`,origin:t.__sceneObject.value.valueOf()})).subscribe(()=>{})}return await r}class Ge{constructor(){this._values=new Map}recordCurrentDependencyValuesForSceneObject(e){if(this.clearValues(),e.variableDependency)for(const t of e.variableDependency.getNames()){const n=hi.lookupVariable(t,e);n&&this._values.set(n.state.name,n.getValue())}}cloneAndRecordCurrentValuesForSceneObject(e){const t=new Ge;return t.recordCurrentDependencyValuesForSceneObject(e),t}clearValues(){this._values.clear()}hasValues(){return!!this._values}recordCurrentValue(e){this._values.set(e.state.name,e.getValue())}hasRecordedValue(e){return this._values.has(e.state.name)}hasValueChanged(e){if(this._values.has(e.state.name)){if(!Ss(this._values.get(e.state.name),e.getValue()))return!0}return!1}hasDependenciesChanged(e){if(!this._values)return!1;if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){const n=hi.lookupVariable(t,e);if(!n)continue;const r=n.state.name;if(n&&this._values.has(r)){if(!Ss(this._values.get(r),n.getValue()))return!0}}return!1}}function Je(e){return"object"==typeof e&&"getExtraQueries"in e}const Ke=(e,t)=>(0,m.of)(t),Qe=0;function Ze(e){const t=e.getRoot();return ze(t)?t.enrichDataRequest(e):null}let Xe,et=new Set;const tt=new Set;var nt=n(2007),rt=n(7186),at=n(6089);const st=(e,t)=>e>t?1:ee.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),lt="eexxaacctt",ut=/\p{P}/gu,dt=["en",{numeric:!0,sensitivity:"base"}],ct=(e,t,n)=>e.replace("A-Z",t).replace("a-z",n),ht={unicode:!1,alpha:null,interSplit:"[^A-Za-z\\d']+",intraSplit:"[a-z][A-Z]",interBound:"[^A-Za-z\\d]",intraBound:"[A-Za-z]\\d|\\d[A-Za-z]|[a-z][A-Z]",interLft:0,interRgt:0,interChars:".",interIns:it,intraChars:"[a-z\\d']",intraIns:null,intraContr:"'[a-z]{1,2}\\b",intraMode:0,intraSlice:[1,it],intraSub:null,intraTrn:null,intraDel:null,intraFilt:(e,t,n)=>!0,toUpper:e=>e.toLocaleUpperCase(),toLower:e=>e.toLocaleLowerCase(),compare:null,sort:(e,t,n,r=st)=>{let{idx:a,chars:s,terms:i,interLft2:o,interLft1:l,start:u,intraIns:d,interIns:c,cases:h}=e;return a.map((e,t)=>t).sort((e,n)=>s[n]-s[e]||d[e]-d[n]||i[n]+o[n]+.5*l[n]-(i[e]+o[e]+.5*l[e])||c[e]-c[n]||u[e]-u[n]||h[n]-h[e]||r(t[a[e]],t[a[n]]))}},mt=(e,t)=>0==t?"":1==t?e+"??":t==it?e+"*?":e+`{0,${t}}?`,pt="(?:\\b|_)";function ft(e){e=Object.assign({},ht,e);let{unicode:t,interLft:n,interRgt:r,intraMode:a,intraSlice:s,intraIns:i,intraSub:o,intraTrn:l,intraDel:u,intraContr:d,intraSplit:c,interSplit:h,intraBound:m,interBound:p,intraChars:f,toUpper:_,toLower:g,compare:y}=e;i??=a,o??=a,l??=a,u??=a,y??="undefined"==typeof Intl?st:new Intl.Collator(...dt).compare;let v=e.letters??e.alpha;if(null!=v){let e=_(v),t=g(v);h=ct(h,e,t),c=ct(c,e,t),p=ct(p,e,t),m=ct(m,e,t),f=ct(f,e,t),d=ct(d,e,t)}let b=t?"u":"";const M='".+?"',w=new RegExp(M,"gi"+b),L=new RegExp(`(?:\\s+|^)-(?:${f}+|${M})`,"gi"+b);let{intraRules:S}=e;null==S&&(S=e=>{let t=ht.intraSlice,n=0,r=0,a=0,d=0;if(/[^\d]/.test(e)){let c=e.length;c<=4?c>=3&&(a=Math.min(l,1),4==c&&(n=Math.min(i,1))):(t=s,n=i,r=o,a=l,d=u)}return{intraSlice:t,intraIns:n,intraSub:r,intraTrn:a,intraDel:d}});let k=!!c,D=new RegExp(c,"g"+b),T=new RegExp(h,"g"+b),x=new RegExp("^"+h+"|"+h+"$","g"+b),Y=new RegExp(d,"gi"+b);const E=(e,t=!1)=>{let n=[];e=(e=e.replace(w,e=>(n.push(e),lt))).replace(x,""),t||(e=g(e)),k&&(e=e.replace(D,e=>e[0]+" "+e[1]));let r=0;return e.split(T).filter(e=>""!=e).map(e=>e===lt?n[r++]:e)},O=/[^\d]+|\d+/g,A=(t,s=0,o=!1)=>{let l=E(t);if(0==l.length)return[];let u,d=Array(l.length).fill("");if(l=l.map((e,t)=>e.replace(Y,e=>(d[t]=e,""))),1==a)u=l.map((e,t)=>{if('"'===e[0])return ot(e.slice(1,-1));let n="";for(let r of e.matchAll(O)){let e=r[0],{intraSlice:a,intraIns:s,intraSub:i,intraTrn:o,intraDel:l}=S(e);if(s+i+o+l==0)n+=e+d[t];else{let[r,u]=a,c=e.slice(0,r),h=e.slice(u),m=e.slice(r,u);1==s&&1==c.length&&c!=m[0]&&(c+="(?!"+c+")");let p=m.length,_=[e];if(i)for(let e=0;e0&&(e=")("+e+")("),u=l.map((t,n)=>'"'===t[0]?ot(t.slice(1,-1)):t.split("").map((e,t,n)=>(1==i&&0==t&&n.length>1&&e!=n[t+1]&&(e+="(?!"+e+")"),e)).join(e)+d[n])}let c=2==n?pt:"",h=2==r?pt:"",m=h+mt(e.interChars,e.interIns)+c;return s>0?o?u=c+"("+u.join(")"+h+"|"+c+"(")+")"+h:(u="("+u.join(")("+m+")(")+")",u="(.??"+c+")"+u+"("+h+".*)"):(u=u.join(m),u=c+u+h),[new RegExp(u,"i"+b),l,d]},C=(e,t,n)=>{let[r]=A(t);if(null==r)return null;let a=[];if(null!=n)for(let t=0;t{let[i,o,l]=A(s,1),u=E(s,!0),[d]=A(s,2),c=o.length,h=Array(c),m=Array(c);for(let e=0;e=_){let e=g(l[a+1]).indexOf(i);e>-1&&(E.push(p,v,e,_),p+=N(l,a,e,_),s=i,v=_,O=!0,0==t&&(u=p))}if(y||O){let e=p-1,d=p+v,c=!1,h=!1;if(-1==e||P.test(o[e]))O&&M++,c=!0;else{if(2==n){f=!0;break}if(R&&j.test(o[e]+o[e+1]))O&&w++,c=!0;else if(1==n){let e=l[a+1],n=p+v;if(e.length>=_){let r,d=0,h=!1,m=new RegExp(i,"ig"+b);for(;r=m.exec(e);){d=r.index;let e=n+d,t=e-1;if(-1==t||P.test(o[t])){M++,h=!0;break}if(j.test(o[t]+o[e])){w++,h=!0;break}}h&&(c=!0,E.push(p,v,d,_),p+=N(l,a,d,_),s=i,v=_,O=!0,0==t&&(u=p))}if(!c){f=!0;break}}}if(d==o.length||P.test(o[d]))O&&L++,h=!0;else{if(2==r){f=!0;break}if(R&&j.test(o[d-1]+o[d]))O&&S++,h=!0;else if(1==r){f=!0;break}}O&&(k+=_,c&&h&&D++)}if(v>_&&(Y+=v-_),t>0&&(x+=l[a-1].length),!e.intraFilt(i,s,p)){f=!0;break}t0?0:1/0,i=r-4;for(let t=2;t0&&(l.push(c,h),c=h=n)}h>c&&l.push(c,h),v++}}if(v{let a=e[t]+e[t+1].slice(0,n);return e[t-1]+=a,e[t]=e[t+1].slice(n,n+r),e[t+1]=e[t+1].slice(n+r),a.length};return{search:(...t)=>{let n=((t,n,r,a=1e3,s)=>{r=r?!0===r?5:r:0;let i=null,o=null,l=[];n=n.replace(L,e=>{let t=e.trim().slice(1);return t='"'===t[0]?ot(t.slice(1,-1)):t.replace(ut,""),""!=t&&l.push(t),""});let u,d=E(n);if(l.length>0){if(u=new RegExp(l.join("|"),"i"+b),0==d.length){let e=[];for(let n=0;n0){let e=E(n);if(e.length>1){let n=e.slice().sort((e,t)=>t.length-e.length);for(let e=0;er)return[s,null,null];i=gt(e).map(e=>e.join(" ")),o=[];let a=new Set;for(let e=0;e!a.has(e)),r=C(t,i[e],n);for(let e=0;e0?s:C(t,n)]);let c=null,h=null;if(l.length>0&&(o=o.map(e=>e.filter(e=>!u.test(t[e])))),o.reduce((e,t)=>e+t.length,0)<=a){c={},h=[];for(let n=0;n0)for(let e=0;e{let e={A:"ÁÀÃÂÄĄ",a:"áàãâäą",E:"ÉÈÊËĖ",e:"éèêëę",I:"ÍÌÎÏĮ",i:"íìîïį",O:"ÓÒÔÕÖ",o:"óòôõö",U:"ÚÙÛÜŪŲ",u:"úùûüūų",C:"ÇČĆ",c:"çčć",L:"Ł",l:"ł",N:"ÑŃ",n:"ñń",S:"ŠŚ",s:"šś",Z:"ŻŹ",z:"żź"},t=new Map,n="";for(let r in e)e[r].split("").forEach(e=>{n+=e,t.set(e,r)});let r=new RegExp(`[${n}]`,"g"),a=e=>t.get(e);return e=>{if("string"==typeof e)return e.replace(r,a);let t=Array(e.length);for(let n=0;nt?`${e}`:e,vt=(e,t)=>e+t;ft.latinize=_t,ft.permute=e=>gt([...Array(e.length).keys()]).sort((e,t)=>{for(let n=0;nt.map(t=>e[t])),ft.highlight=function(e,t,n=yt,r="",a=vt){r=a(r,n(e.substring(0,t[0]),!1))??r;for(let s=0;s25||wt.split(n).length>5)for(let a=0;ae[s.idx[t]]):a.map(t=>e[t]))}return r}function St(e,t=!1){let n=e;t&&(n=[{value:Le,label:we},...n]);const r=n.map(e=>e.label);return e=>Lt(n,r,e)}const kt=()=>!0,Dt=e=>"$__all"!==e.value,Tt=(e,t)=>e.length===t.filter(Dt).length?nt.ToggleAllState.allSelected:0===e.length||1===e.length&&e[0]&&"$__all"===e[0].value?nt.ToggleAllState.noneSelected:nt.ToggleAllState.indeterminate;function xt({model:e,state:t}){const{value:n,text:r,key:a,options:s,includeAll:i,isReadOnly:o,allowCustomValue:l=!0}=t,[u,c]=(0,d.useState)(""),[m,p]=(0,d.useState)(!1),f=function(e,t){return{value:e,label:null!=t?t:String(e)}}(n,String(r)),_=hi.getQueryController(e),g=(0,d.useMemo)(()=>St(s,i),[s,i])(u);return h().createElement(nt.Select,{id:a,isValidNewOption:e=>e.trim().length>0,placeholder:(0,he.t)("grafana-scenes.variables.variable-value-select.placeholder-select-value","Select value"),width:"auto",disabled:o,value:f,inputValue:u,allowCustomValue:l,virtualized:!0,filterOption:kt,tabSelectsValue:!1,onInputChange:(t,{action:n})=>"input-change"===n?(c(t),e.onSearchChange&&e.onSearchChange(t),t):t,onOpenMenu:()=>{m&&c(String(r))},onCloseMenu:()=>{c("")},options:g,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${n}`),onChange:t=>{e.changeValueTo(t.value,t.label,!0),null==_||_.startProfile(X),m!==t.__isNew__&&p(t.__isNew__)}})}function Yt({model:e,state:t}){const{value:n,options:r,key:a,maxVisibleValues:s,noValueOnClear:i,includeAll:o,isReadOnly:l,allowCustomValue:u=!0}=t,c=(0,d.useMemo)(()=>(0,A.isArray)(n)?n:[n],[n]),[m,p]=(0,d.useState)(c),[f,_]=(0,d.useState)(""),g=(0,d.useMemo)(()=>St(r,o),[r,o]);(0,d.useEffect)(()=>{p(c)},[c]);const y=r.length>0?"Select value":"",v=g(f);return h().createElement(nt.MultiSelect,{id:a,placeholder:y,width:"auto",inputValue:f,disabled:l,value:m,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,allowCustomValue:u,toggleAllOptions:{enabled:!0,optionsFilter:Dt,determineToggleAllState:Tt},options:v,closeMenuOnSelect:!1,components:{Option:Et},isClearable:!0,hideSelectedOptions:!1,onInputChange:(t,{action:n})=>"input-change"===n?(_(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(_(""),""):f,onBlur:()=>{e.changeValueTo(m,void 0,!0)},filterOption:kt,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${m}`),onChange:(t,n)=>{"clear"===n.action&&i&&e.changeValueTo([],void 0,!0),p(t.map(e=>e.value))}})}const Et=({children:e,data:t,innerProps:n,innerRef:r,isFocused:a,isSelected:s,indeterminate:i,renderOptionLabel:o})=>{var l;const{onMouseMove:u,onMouseOver:d,...c}=n,m=(0,nt.useTheme2)(),p=(0,nt.getSelectStyles)(m),f=(0,nt.useStyles2)(Ot);return h().createElement("div",{ref:r,className:(0,at.cx)(p.option,a&&p.optionFocused),...c,"data-testid":"data-testid Select option",title:t.title},h().createElement("div",{className:f.checkbox},h().createElement(nt.Checkbox,{indeterminate:i,value:s})),h().createElement("div",{className:p.optionBody,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(null!=(l=t.label)?l:String(t.value))},h().createElement("span",null,e)))};Et.displayName="SelectMenuOptions";const Ot=e=>({checkbox:(0,at.css)({marginRight:e.spacing(2)})});function At({model:e}){const t=e.useState();return t.isMulti?h().createElement(Yt,{model:e,state:t}):h().createElement(xt,{model:e,state:t})}class Ct{constructor(e){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1}getRestorableKey(){return`restorable-var-${this._sceneObject.state.name}`}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey(),this.getRestorableKey()]}getUrlState(){return this._sceneObject.state.skipUrlSync?{}:{[this.getKey()]:Rt(this._sceneObject.state.value,this._sceneObject.state.text),[this.getRestorableKey()]:this._sceneObject.state.defaultValue?this._sceneObject.state.restorable?"true":"false":null}}updateFromUrl(e){let t=e[this.getKey()],n=e[this.getRestorableKey()];if(null!=t){this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0);const{values:e,texts:a}=(r=t,(r=Array.isArray(r)?r:[r]).reduce((e,t)=>{const[n,r]=(null!=t?t:"").split(",");return e.values.push(Rs(n)),e.texts.push(Rs(null!=r?r:n)),e},{values:[],texts:[]}));if(this._sceneObject.state.defaultValue&&("false"===n||void 0===n))return;if("false"===n)return void this._sceneObject.changeValueTo([],[],!1);this._sceneObject.changeValueTo(e,a)}var r}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}}function Rt(e,t){return e=Array.isArray(e)?e:[e],t=Array.isArray(t)?t:[t],e.map((e,n)=>{if(null==e)return"";e=String(e);let r=t[n];return r=null==r?e:String(r),Ps(e,r)})}function Pt(e){const t=e.getRoot();return"enrichFiltersRequest"in t?t.enrichFiltersRequest(e):null}var jt,Ht=e=>{throw TypeError(e)},Nt=(e,t,n)=>t.has(e)||Ht("Cannot "+n);class It{constructor(e){((e,t,n)=>{t.has(e)?Ht("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n)})(this,jt),this.text="__sceneObject",this.valueOf=()=>{return Nt(e=this,t=jt,"read from private field"),n?n.call(e):t.get(e);var e,t,n},((e,t,n)=>{Nt(e,t,"write to private field"),t.set(e,n)})(this,jt,e)}toString(){}get value(){return this}}function Ft(e){return function(e){const t=e.match(/^(\d+)\.(\d+)\.(\d+)/);if(!t)return!1;const n=parseInt(t[1],10),r=parseInt(t[2],10),a=parseInt(t[3],10);return 11===n?0===r&&a>=4||1===r&&a>=2||r>1:10===n?4===r&&a>=8||r>=5:n>11}(i.config.buildInfo.version)?new It(e):{value:e,text:"__sceneObject"}}function Wt(e){const{model:t}=e,n=(0,nt.useTheme2)(),r=Vt(n),a=(0,nt.getInputStyles)({theme:n,invalid:!1}),s=(0,A.isArray)(t.state.value)?t.state.value:t.state.value?[t.state.value]:[];let i=[];return s&&s.length&&i.push(h().createElement(nt.IconButton,{"aria-label":(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.aria-label-clear","clear"),key:"clear",name:"times",size:"md",className:r.clearIcon,onClick:e=>{t.changeValueTo([],void 0,!0),t.checkIfRestorable([])&&t.setState({restorable:!0})}})),t.state.restorable&&i.push(h().createElement(nt.IconButton,{onClick:t=>{e.model.restoreDefaultValues()},onKeyDownCapture:t=>{"Enter"===t.key&&e.model.restoreDefaultValues()},key:"restore",name:"history",size:"md",className:r.clearIcon,tooltip:(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip-restore-groupby-set-by-this-dashboard","Restore groupby set by this dashboard.")})),t.state.restorable||i.push(h().createElement(nt.Tooltip,{key:"tooltip",content:(0,he.t)("grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip","Applied by default in this dashboard. If edited, it carries over to other dashboards."),placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md"}))),h().createElement("div",{onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},className:(0,at.cx)(a.suffix,(0,at.css)({position:"relative"}))},i)}jt=new WeakMap;const Vt=e=>({clearIcon:(0,at.css)({color:e.colors.action.disabledText,cursor:"pointer","&:hover:before":{backgroundColor:"transparent"},"&:hover":{color:e.colors.text.primary}})});class zt extends Re{constructor(e){super({isMulti:!0,name:"",value:[],text:[],options:[],datasource:null,baseFilters:[],applyMode:"auto",layout:"horizontal",type:"groupby",...e,noValueOnClear:!0}),this.isLazy=!0,this._urlSync=new Ct(this),this._activationHandler=()=>(this.state.defaultValue&&this.checkIfRestorable(this.state.value)&&this.setState({restorable:!0}),()=>{this.state.defaultValue&&this.restoreDefaultValues()}),this._getKeys=async e=>{var t,n,r;const a=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,null));if(a&&a.replace)return a.values;if(this.state.defaultOptions)return this.state.defaultOptions.concat(js(null!=(r=null==a?void 0:a.values)?r:[]));if(!e.getTagKeys)return[];const s=Es(this),i=this.state.baseFilters||[],o=hi.getTimeRange(this).state.value,l=await e.getTagKeys({filters:i,queries:s,timeRange:o,scopes:hi.getScopes(this),...Pt(this)});Hs(l)&&this.setState({error:l.error.message});let u=js(l);a&&(u=u.concat(js(a.values)));const d=this.state.tagKeyRegexFilter;return d&&(u=u.filter(e=>e.text.match(d))),u},this.state.defaultValue&&this.changeValueTo(this.state.defaultValue.value,this.state.defaultValue.text,!1),"auto"===this.state.applyMode&&this.addActivationHandler(()=>(tt.add(this),()=>tt.delete(this))),this.addActivationHandler(this._activationHandler)}validateAndUpdate(){return this.getValueOptions({}).pipe((0,m.map)(e=>(this._updateValueGivenNewOptions(e),{})))}_updateValueGivenNewOptions(e){const{value:t,text:n}=this.state,r={options:e,loading:!1,value:null!=t?t:[],text:null!=n?n:[]};this.setState(r)}getValueOptions(e){return this.state.defaultOptions?(0,m.of)(this.state.defaultOptions.map(e=>({label:e.text,value:String(e.value),group:e.group}))):(this.setState({loading:!0,error:null}),(0,m.from)(qe(this.state.datasource,{__sceneObject:Ft(this)})).pipe((0,m.mergeMap)(e=>(0,m.from)(this._getKeys(e)).pipe((0,m.tap)(e=>{Hs(e)&&this.setState({error:e.error.message})}),(0,m.map)(e=>js(e)),(0,m.take)(1),(0,m.mergeMap)(e=>{const t=e.map(e=>({label:e.text,value:e.value?String(e.value):e.text,group:e.group}));return(0,m.of)(t)})))))}checkIfRestorable(e){var t,n,r,a;const s=(0,A.isArray)(null==(t=this.state.defaultValue)?void 0:t.value)?null==(n=this.state.defaultValue)?void 0:n.value:(null==(r=this.state.defaultValue)?void 0:r.value)?[null==(a=this.state.defaultValue)?void 0:a.value]:[],i=(0,A.isArray)(e)?e:[e];return i.length!==s.length||!(0,A.isEqual)(i,s)}restoreDefaultValues(){this.setState({restorable:!1}),this.state.defaultValue&&this.changeValueTo(this.state.defaultValue.value,this.state.defaultValue.text,!0)}getDefaultMultiState(e){return{value:[],text:[]}}}zt.Component=function({model:e}){const{value:t,text:n,key:r,isMulti:a=!0,maxVisibleValues:s,noValueOnClear:i,options:o,includeAll:l,allowCustomValue:u=!0,defaultValue:c}=e.useState(),p=(0,d.useMemo)(()=>{const e=(0,A.isArray)(t)?t:[t],r=(0,A.isArray)(n)?n:[n];return e.map((e,t)=>{var n;return{value:e,label:String(null!=(n=r[t])?n:e)}})},[t,n]),[f,_]=(0,d.useState)(!1),[g,y]=(0,d.useState)(!1),[v,b]=(0,d.useState)(""),[M,w]=(0,d.useState)(p),L=(0,d.useMemo)(()=>St(o,l),[o,l]),S=void 0!==c;(0,d.useEffect)(()=>{w(p)},[p]);const k=(t,{action:n})=>"input-change"===n?(b(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(b(""),""):v,D=(0,d.useMemo)(()=>Ns(L(v).map(Bt)),[L,v]);return a?h().createElement(nt.MultiSelect,{"aria-label":(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector","Group by selector"),"data-testid":`GroupBySelect-${r}`,id:r,placeholder:(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label","Group by label"),width:"auto",allowCustomValue:u,inputValue:v,value:M,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,options:D,filterOption:$t,closeMenuOnSelect:!1,isOpen:g,isClearable:!0,hideSelectedOptions:!1,isLoading:f,components:{Option:Et,...S?{IndicatorsContainer:()=>h().createElement(Wt,{model:e})}:{}},onInputChange:k,onBlur:()=>{e.changeValueTo(M.map(e=>e.value),M.map(e=>e.label),!0);const t=e.checkIfRestorable(M.map(e=>e.value));t!==e.state.restorable&&e.setState({restorable:t})},onChange:(t,n)=>{"clear"===n.action&&i&&e.changeValueTo([],void 0,!0),w(t)},onOpenMenu:async()=>{_(!0),await(0,m.lastValueFrom)(e.validateAndUpdate()),_(!1),y(!0)},onCloseMenu:()=>{y(!1)}}):h().createElement(nt.Select,{"aria-label":(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector","Group by selector"),"data-testid":`GroupBySelect-${r}`,id:r,placeholder:(0,he.t)("grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label","Group by label"),width:"auto",inputValue:v,value:M&&M.length>0?M:null,allowCustomValue:u,noMultiValueWrap:!0,maxVisibleValues:null!=s?s:5,tabSelectsValue:!1,virtualized:!0,options:D,filterOption:$t,closeMenuOnSelect:!0,isOpen:g,isClearable:!0,hideSelectedOptions:!1,noValueOnClear:!0,isLoading:f,onInputChange:k,onChange:(t,n)=>{if("clear"===n.action)return w([]),void(i&&e.changeValueTo([]));(null==t?void 0:t.value)&&(w([t]),e.changeValueTo([t.value],t.label?[t.label]:void 0))},onOpenMenu:async()=>{_(!0),await(0,m.lastValueFrom)(e.validateAndUpdate()),_(!1),y(!0)},onCloseMenu:()=>{y(!1)}})};const $t=()=>!0;function Bt(e){const{label:t,value:n,group:r}=e,a={label:t,value:n};return r&&(a.group=r),a}function Ut(e){return h().createElement(nt.Tooltip,{content:(0,he.t)("grafana-scenes.utils.loading-indicator.content-cancel-query","Cancel query")},h().createElement(nt.Icon,{className:"spin-clockwise",name:"sync",size:"xs",role:"button",onMouseDown:t=>{e.onCancel(t)}}))}function qt(e){const t=(0,nt.useStyles2)(Gt),n=(0,nt.useTheme2)(),r="vertical"===e.layout,a=Boolean(e.isLoading)?h().createElement("div",{style:{marginLeft:n.spacing(1),marginTop:"-1px"},"aria-label":rt.Tp.components.LoadingIndicator.icon},h().createElement(Ut,{onCancel:t=>{var n;t.preventDefault(),t.stopPropagation(),null==(n=e.onCancel)||n.call(e)}})):null;let s=null;e.error&&(s=h().createElement(nt.Tooltip,{content:e.error,placement:"bottom"},h().createElement(nt.Icon,{className:t.errorIcon,name:"exclamation-triangle"})));let i=null;e.description&&(i=h().createElement(nt.Tooltip,{content:e.description,placement:r?"top":"bottom"},h().createElement(nt.Icon,{className:t.normalIcon,name:"info-circle"})));const o="string"==typeof e.label?rt.Tp.pages.Dashboard.SubMenu.submenuItemLabels(e.label):"";let l;return l=r?h().createElement("label",{className:(0,at.cx)(t.verticalLabel,e.className),"data-testid":o,htmlFor:e.htmlFor},e.prefix,e.label,i,s,e.icon&&h().createElement(nt.Icon,{name:e.icon,className:t.normalIcon}),a,e.onRemove&&h().createElement(nt.IconButton,{variant:"secondary",size:"xs",name:"times",onClick:e.onRemove,tooltip:(0,he.t)("grafana-scenes.utils.controls-label.tooltip-remove","Remove")}),e.suffix):h().createElement("label",{className:(0,at.cx)(t.horizontalLabel,e.className),"data-testid":o,htmlFor:e.htmlFor},e.prefix,s,e.icon&&h().createElement(nt.Icon,{name:e.icon,className:t.normalIcon}),e.label,i,a,e.suffix),l}const Gt=e=>({horizontalLabel:(0,at.css)({background:e.isDark?e.colors.background.primary:e.colors.background.secondary,display:"flex",alignItems:"center",padding:e.spacing(0,1),fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,height:e.spacing(e.components.height.md),lineHeight:e.spacing(e.components.height.md),borderRadius:`${e.shape.radius.default} 0 0 ${e.shape.radius.default}`,border:`1px solid ${e.components.input.borderColor}`,position:"relative",right:-1,whiteSpace:"nowrap",gap:e.spacing(.5)}),verticalLabel:(0,at.css)({display:"flex",alignItems:"center",fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,lineHeight:e.typography.bodySmall.lineHeight,whiteSpace:"nowrap",marginBottom:e.spacing(.5),gap:e.spacing(1)}),errorIcon:(0,at.css)({color:e.colors.error.text}),normalIcon:(0,at.css)({color:e.colors.text.secondary})});function Jt(e){const t=e.map(e=>{var t;return null!=(t=e.label)?t:String(e.value)});return n=>Lt(e,t,n)}function Kt(e,t){return""!==e?{value:e,label:t||e}:null}const Qt=()=>!0;function Zt({filter:e,model:t}){var n,r,a,s,i;const o=(0,nt.useStyles2)(Xt),[l,u]=(0,d.useState)([]),[c,m]=(0,d.useState)([]),[p,f]=(0,d.useState)(!1),[_,g]=(0,d.useState)(!1),[y,v]=(0,d.useState)(!1),[b,M]=(0,d.useState)(!1),[w,L]=(0,d.useState)(!1),[S,k]=(0,d.useState)(""),[D,T]=(0,d.useState)(!1),[x,Y]=(0,d.useState)(e.values?e.values.map((t,n)=>{var r;return Kt(t,null==(r=e.valueLabels)?void 0:r[n])}):[]),E=gs(e.operator),O=Kt(e.key,e.keyLabel),A=Kt(e.value,null==(n=e.valueLabels)?void 0:n[0]),C=(0,d.useMemo)(()=>Jt(c),[c]),R=t.state.onAddCustomValue,P=(0,d.useMemo)(()=>Ns(C(S)),[C,S]),j={isMulti:!0,value:x,components:{Option:Et},hideSelectedOptions:!1,closeMenuOnSelect:!1,openMenuOnFocus:!1,onChange:e=>{Y(e),e.some(e=>e.__isNew__)&&k("")},onBlur:()=>{var n,r;t._updateFilter(e,{value:null!=(r=null==(n=x[0])?void 0:n.value)?r:"",values:x.map(e=>e.value),valueLabels:x.map(e=>e.label)})}},H=h().createElement(nt.Select,{virtualized:!0,allowCustomValue:null==(r=t.state.allowCustomValue)||r,isValidNewOption:e=>e.trim().length>0,allowCreateWhileLoading:!0,formatCreateLabel:e=>`Use custom value: ${e}`,disabled:t.state.readOnly,className:(0,at.cx)(o.value,b?o.widthWhenOpen:void 0),width:"auto",value:A,filterOption:Qt,placeholder:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.value-select.placeholder-select-value","Select value"),options:P,inputValue:S,onInputChange:(e,{action:t})=>("input-change"===t&&k(e),e),onChange:n=>{R&&n.__isNew__?t._updateFilter(e,R(n,e)):t._updateFilter(e,{value:n.value,valueLabels:n.label?[n.label]:[n.value]}),D!==n.__isNew__&&T(n.__isNew__)},isOpen:b&&!_,isLoading:_,openMenuOnFocus:!0,onOpenMenu:async()=>{var n;g(!0),M(!0);const r=await t._getValuesFor(e);g(!1),m(r),D&&k(null!=(n=null==A?void 0:A.label)?n:"")},onCloseMenu:()=>{M(!1),k("")},...E&&j}),N=h().createElement(nt.Select,{key:""+(_?"loading":"loaded"),disabled:t.state.readOnly,className:(0,at.cx)(o.key,y?o.widthWhenOpen:void 0),width:"auto",allowCustomValue:null==(a=t.state.allowCustomValue)||a,value:O,placeholder:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.key-select.placeholder-select-label","Select label"),options:Ns(l),onChange:n=>{t._updateFilter(e,{key:n.value,keyLabel:n.label,value:"",valueLabels:[""],values:void 0}),Y([])},autoFocus:""===e.key,isOpen:y&&!p,isLoading:p,onOpenMenu:async()=>{v(!0),f(!0);const n=await t._getKeys(e.key);f(!1),u(n)},onCloseMenu:()=>{v(!1)},onBlur:()=>{""===e.key&&t._removeFilter(e)},openMenuOnFocus:!0}),I=h().createElement(nt.Select,{className:(0,at.cx)(o.operator,{[o.widthWhenOpen]:w}),value:e.operator,disabled:t.state.readOnly,options:t._getOperators(),onChange:n=>{var r,a;const s=e.operator,i=n.value,o={operator:i};gs(s)&&!gs(i)?(o.value="",o.valueLabels=[""],o.values=void 0,Y([])):!gs(s)&&gs(i)&&e.value&&(o.values=[e.value],Y([{value:e.value,label:null!=(a=null==(r=e.valueLabels)?void 0:r[0])?a:e.value}])),t._updateFilter(e,o)},onOpenMenu:()=>{L(!0)},onCloseMenu:()=>{L(!1)}});if("vertical"===t.state.layout){if(e.key){const n=h().createElement(qt,{layout:"vertical",label:null!=(s=e.key)?s:"",onRemove:()=>t._removeFilter(e)});return h().createElement(nt.Field,{label:n,"data-testid":`AdHocFilter-${e.key}`,className:o.field},h().createElement("div",{className:o.wrapper},I,H))}return h().createElement(nt.Field,{label:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.label-select-label","Select label"),"data-testid":`AdHocFilter-${e.key}`,className:o.field},N)}return h().createElement("div",{className:o.wrapper,"data-testid":`AdHocFilter-${e.key}`},N,I,H,h().createElement(nt.Button,{variant:"secondary","aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.aria-label-remove-filter","Remove filter"),title:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-renderer.title-remove-filter","Remove filter"),className:o.removeButton,icon:"times","data-testid":`AdHocFilter-remove-${null!=(i=e.key)?i:""}`,onClick:()=>t._removeFilter(e)}))}const Xt=e=>({field:(0,at.css)({marginBottom:0}),wrapper:(0,at.css)({display:"flex","> *":{"&:not(:first-child)":{marginLeft:-1},"&:first-child":{borderTopRightRadius:0,borderBottomRightRadius:0},"&:last-child":{borderTopLeftRadius:0,borderBottomLeftRadius:0},"&:not(:first-child):not(:last-child)":{borderRadius:0},position:"relative",zIndex:0,"&:hover":{zIndex:1},"&:focus-within":{zIndex:2}}}),widthWhenOpen:(0,at.css)({minWidth:e.spacing(16)}),value:(0,at.css)({flexBasis:"content",flexShrink:1,minWidth:"90px"}),key:(0,at.css)({flexBasis:"content",minWidth:"90px",flexShrink:1}),operator:(0,at.css)({flexShrink:0,flexBasis:"content"}),removeButton:(0,at.css)({paddingLeft:e.spacing(1.5),paddingRight:e.spacing(1.5),borderLeft:"none",width:e.spacing(3),marginRight:e.spacing(1),boxSizing:"border-box",position:"relative",left:"1px"})});function en({model:e,addFilterButtonText:t}){const{_wip:n}=e.useState();return n?h().createElement(Zt,{filter:n,model:e}):h().createElement(nt.Button,{variant:"secondary",icon:"plus",title:(0,he.t)("grafana-scenes.variables.ad-hoc-filter-builder.title-add-filter","Add filter"),"aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-filter-builder.aria-label-add-filter","Add filter"),"data-testid":"AdHocFilter-add",onClick:()=>e._addWip()},t)}class tn{constructor(e){this._variable=e}getKey(){return`var-${this._variable.state.name}`}getKeys(){return[this.getKey()]}getUrlState(){const e=this._variable.state.filters,t=this._variable.state.originFilters;let n=[];return 0===e.length&&0===(null==t?void 0:t.length)?{[this.getKey()]:[""]}:(e.length&&n.push(...e.filter(fs).filter(e=>!e.hidden).map(e=>nn(e).map(Cs).join("|"))),(null==t?void 0:t.length)&&n.push(...null==t?void 0:t.filter(fs).filter(e=>!e.hidden&&e.origin&&e.restorable).map(e=>nn(e).map(Cs).join("|").concat(`#${e.origin}#restorable`))),{[this.getKey()]:n.length?n:[""]})}updateFromUrl(e){const t=e[this.getKey()];if(null==t)return;const n=function(e){if(Array.isArray(e)){return e.map(rn).filter(an)}const t=rn(e);return null===t?[]:[t]}(t),r=function(e,t){const n=[...e];for(let r=0;re.key===t[r].key);a>-1?(t[r].origin||"dashboard"!==e[a].origin||(t[r].origin="dashboard",t[r].restorable=!0),ps(t[r])&&(t[r].matchAllFilter=!0),n[a]=t[r]):"dashboard"===t[r].origin?(delete t[r].origin,delete t[r].restorable):-1===a&&"scope"===t[r].origin&&t[r].restorable&&n.push(t[r])}return n}([...this._variable.state.originFilters||[]],n);this._variable.setState({filters:n.filter(e=>!e.origin),originFilters:r})}}function nn(e){var t;const n=[Ps(e.key,e.keyLabel),e.operator];return gs(e.operator)?e.values.forEach((t,r)=>{var a;n.push(Ps(t,null==(a=e.valueLabels)?void 0:a[r]))}):n.push(Ps(e.value,null==(t=e.valueLabels)?void 0:t[0])),n}function rn(e){if("string"!=typeof e||0===e.length)return null;const[t,n,r]=e.split("#"),[a,s,i,o,...l]=t.split("|").reduce((e,t)=>{const[n,r]=t.split(",");return e.push(n,null!=r?r:n),e},[]).map(Rs);return{key:a,keyLabel:s,operator:i,value:l[0],values:gs(i)?l.filter((e,t)=>t%2==0):void 0,valueLabels:l.filter((e,t)=>t%2==1),condition:"",...(u=n,("scope"===u||"dashboard"===u)&&{origin:n}),...!!r&&{restorable:!0}};var u}function an(e){return null!==e&&"string"==typeof e.key&&"string"==typeof e.value}var sn=n(977);function on(e){let t=e.activeElement;for(;null!=(null==(n=t)||null==(n=n.shadowRoot)?void 0:n.activeElement);){var n;t=t.shadowRoot.activeElement}return t}function ln(e,t){if(!e||!t)return!1;const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&(0,sn.Ng)(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function un(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function dn(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+"/"+n}).join(" "):navigator.userAgent}function cn(e){return!(0!==e.mozInputSource||!e.isTrusted)||(pn()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function hn(e){return!dn().includes("jsdom/")&&(!pn()&&0===e.width&&0===e.height||pn()&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&"mouse"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&"touch"===e.pointerType)}function mn(){return/apple/i.test(navigator.vendor)}function pn(){const e=/android/i;return e.test(un())||e.test(dn())}function fn(e){return(null==e?void 0:e.ownerDocument)||document}function _n(e,t){if(null==t)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}function gn(e){return"composedPath"in e?e.composedPath()[0]:e.target}function yn(e){e.preventDefault(),e.stopPropagation()}function vn(e){return!!e&&("combobox"===e.getAttribute("role")&&function(e){return(0,sn.sb)(e)&&e.matches("input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])")}(e))}var bn=n(8015),Mn=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],wn=Mn.join(","),Ln="undefined"==typeof Element,Sn=Ln?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,kn=!Ln&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},Dn=function e(t,n){var r;void 0===n&&(n=!0);var a=null==t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,"inert");return""===a||"true"===a||n&&t&&e(t.parentNode)},Tn=function(e,t,n){if(Dn(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(wn));return t&&Sn.call(e,wn)&&r.unshift(e),r=r.filter(n)},xn=function e(t,n,r){for(var a=[],s=Array.from(t);s.length;){var i=s.shift();if(!Dn(i,!1))if("SLOT"===i.tagName){var o=i.assignedElements(),l=e(o.length?o:i.children,!0,r);r.flatten?a.push.apply(a,l):a.push({scopeParent:i,candidates:l})}else{Sn.call(i,wn)&&r.filter(i)&&(n||!t.includes(i))&&a.push(i);var u=i.shadowRoot||"function"==typeof r.getShadowRoot&&r.getShadowRoot(i),d=!Dn(u,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(u&&d){var c=e(!0===u?i.children:u.children,!0,r);r.flatten?a.push.apply(a,c):a.push({scopeParent:i,candidates:c})}else s.unshift.apply(s,i.children)}}return a},Yn=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},En=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n}(e))&&!Yn(e)?0:e.tabIndex},On=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},An=function(e){return"INPUT"===e.tagName},Cn=function(e){return function(e){return An(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||kn(e),r=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var a=function(e,t){for(var n=0;nsummary:first-of-type")?e.parentElement:e;if(Sn.call(a,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return Rn(e)}else{if("function"==typeof r){for(var s=e;e;){var i=e.parentElement,o=kn(e);if(i&&!i.shadowRoot&&!0===r(i))return Rn(e);e=e.assignedSlot?e.assignedSlot:i||o===e.ownerDocument?i:o.host}e=s}if(function(e){var t,n,r,a,s=e&&kn(e),i=null===(t=s)||void 0===t?void 0:t.host,o=!1;if(s&&s!==e)for(o=!!(null!==(n=i)&&void 0!==n&&null!==(r=n.ownerDocument)&&void 0!==r&&r.contains(i)||null!=e&&null!==(a=e.ownerDocument)&&void 0!==a&&a.contains(e));!o&&i;){var l,u,d;o=!(null===(u=i=null===(l=s=kn(i))||void 0===l?void 0:l.host)||void 0===u||null===(d=u.ownerDocument)||void 0===d||!d.contains(i))}return o}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},jn=function(e,t){return!(t.disabled||Dn(t)||function(e){return An(e)&&"hidden"===e.type}(t)||Pn(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some(function(e){return"SUMMARY"===e.tagName})}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n=0)},In=function e(t){var n=[],r=[];return t.forEach(function(t,a){var s=!!t.scopeParent,i=s?t.scopeParent:t,o=function(e,t){var n=En(e);return n<0&&t&&!Yn(e)?0:n}(i,s),l=s?e(t.candidates):i;0===o?s?n.push.apply(n,l):n.push(i):r.push({documentOrder:a,tabIndex:o,item:t,isScope:s,content:l})}),r.sort(On).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(n)},Fn=function(e,t){var n;return n=(t=t||{}).getShadowRoot?xn([e],t.includeContainer,{filter:Hn.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Nn}):Tn(e,t.includeContainer,Hn.bind(null,t)),In(n)},Wn=n(8398),Vn=n(8083),zn="undefined"!=typeof document?d.useLayoutEffect:function(){};function $n(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!==r--;)if(!$n(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;0!==r--;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;0!==r--;){const n=a[r];if(("_owner"!==n||!e.$$typeof)&&!$n(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function Bn(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Un(e,t){const n=Bn(e);return Math.round(t*n)/n}function qn(e){const t=d.useRef(e);return zn(()=>{t.current=e}),t}const Gn=(e,t)=>({...(0,Vn.UU)(e),options:[e,t]}),Jn=(e,t)=>({...(0,Vn.Ej)(e),options:[e,t]});const Kn={...c},Qn=Kn.useInsertionEffect||(e=>e());function Zn(e){const t=d.useRef(()=>{0});return Qn(()=>{t.current=e}),d.useCallback(function(){for(var e=arguments.length,n=new Array(e),r=0;r=e.current.length}function sr(e,t){return or(e,{disabledIndices:t})}function ir(e,t){return or(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function or(e,t){let{startingIndex:n=-1,decrement:r=!1,disabledIndices:a,amount:s=1}=void 0===t?{}:t;const i=e.current;let o=n;do{o+=r?-s:s}while(o>=0&&o<=i.length-1&&hr(i,o,a));return o}function lr(e,t){let{event:n,orientation:r,loop:a,rtl:s,cols:i,disabledIndices:o,minIndex:l,maxIndex:u,prevIndex:d,stopEvent:c=!1}=t,h=d;if(n.key===Xn){if(c&&yn(n),-1===d)h=u;else if(h=or(e,{startingIndex:h,amount:i,decrement:!0,disabledIndices:o}),a&&(d-ie?n:n-i}ar(e,h)&&(h=d)}if(n.key===er&&(c&&yn(n),-1===d?h=l:(h=or(e,{startingIndex:d,amount:i,disabledIndices:o}),a&&d+i>u&&(h=or(e,{startingIndex:d%i-i,amount:i,disabledIndices:o}))),ar(e,h)&&(h=d)),"both"===r){const t=(0,bn.RI)(d/i);n.key===(s?tr:nr)&&(c&&yn(n),d%i!==i-1?(h=or(e,{startingIndex:d,disabledIndices:o}),a&&rr(h,i,t)&&(h=or(e,{startingIndex:d-d%i-1,disabledIndices:o}))):a&&(h=or(e,{startingIndex:d-d%i-1,disabledIndices:o})),rr(h,i,t)&&(h=d)),n.key===(s?nr:tr)&&(c&&yn(n),d%i!==0?(h=or(e,{startingIndex:d,decrement:!0,disabledIndices:o}),a&&rr(h,i,t)&&(h=or(e,{startingIndex:d+(i-d%i),decrement:!0,disabledIndices:o}))):a&&(h=or(e,{startingIndex:d+(i-d%i),decrement:!0,disabledIndices:o})),rr(h,i,t)&&(h=d));const r=(0,bn.RI)(u/i)===t;ar(e,h)&&(h=a&&r?n.key===(s?nr:tr)?u:or(e,{startingIndex:d-d%i-1,disabledIndices:o}):d)}return h}function ur(e,t,n){const r=[];let a=0;return e.forEach((e,s)=>{let{width:i,height:o}=e,l=!1;for(n&&(a=0);!l;){const e=[];for(let n=0;nnull==r[e])?(e.forEach(e=>{r[e]=s}),l=!0):a++}}),[...r]}function dr(e,t,n,r,a){if(-1===e)return-1;const s=n.indexOf(e),i=t[e];switch(a){case"tl":return s;case"tr":return i?s+i.width-1:s;case"bl":return i?s+(i.height-1)*r:s;case"br":return n.lastIndexOf(e)}}function cr(e,t){return t.flatMap((t,n)=>e.includes(t)?[n]:[])}function hr(e,t,n){if(n)return n.includes(t);const r=e[t];return null==r||r.hasAttribute("disabled")||"true"===r.getAttribute("aria-disabled")}var mr="undefined"!=typeof document?d.useLayoutEffect:d.useEffect;const pr=[tr,nr],fr=[Xn,er];function _r(){return _r=Object.assign?Object.assign.bind():function(e){for(var t=1;t"floating-ui-"+Math.random().toString(36).slice(2,6)+yr++;const br=Kn.useId||function(){const[e,t]=d.useState(()=>gr?vr():void 0);return mr(()=>{null==e&&t(vr())},[]),d.useEffect(()=>{gr=!0},[]),e};function Mr(){const e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach(e=>e(n))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var r;e.set(t,(null==(r=e.get(t))?void 0:r.filter(e=>e!==n))||[])}}}const wr=d.createContext(null),Lr=d.createContext(null),Sr=()=>{var e;return(null==(e=d.useContext(wr))?void 0:e.id)||null},kr=()=>d.useContext(Lr);function Dr(e){return"data-floating-ui-"+e}function Tr(e){const t=(0,d.useRef)(e);return mr(()=>{t.current=e}),t}let xr=0;function Yr(e,t){void 0===t&&(t={});const{preventScroll:n=!1,cancelPrevious:r=!0,sync:a=!1}=t;r&&cancelAnimationFrame(xr);const s=()=>null==e?void 0:e.focus({preventScroll:n});a?s():xr=requestAnimationFrame(s)}function Er(e,t){let n=e.filter(e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)}),r=n;for(;r.length;)r=e.filter(e=>{var t;return null==(t=r)?void 0:t.some(t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)})}),n=n.concat(r);return n}let Or=new WeakMap,Ar=new WeakSet,Cr={},Rr=0;const Pr=e=>e&&(e.host||Pr(e.parentNode));function jr(e,t,n,r){const a="data-floating-ui-inert",s=r?"inert":n?"aria-hidden":null,i=(o=t,e.map(e=>{if(o.contains(e))return e;const t=Pr(e);return o.contains(t)?t:null}).filter(e=>null!=e));var o;const l=new Set,u=new Set(i),d=[];Cr[a]||(Cr[a]=new WeakMap);const c=Cr[a];return i.forEach(function e(t){if(!t||l.has(t))return;l.add(t),t.parentNode&&e(t.parentNode)}),function e(t){if(!t||u.has(t))return;[].forEach.call(t.children,t=>{if("script"!==(0,sn.mq)(t))if(l.has(t))e(t);else{const e=s?t.getAttribute(s):null,n=null!==e&&"false"!==e,r=(Or.get(t)||0)+1,i=(c.get(t)||0)+1;Or.set(t,r),c.set(t,i),d.push(t),1===r&&n&&Ar.add(t),1===i&&t.setAttribute(a,""),!n&&s&&t.setAttribute(s,"true")}})}(t),l.clear(),Rr++,()=>{d.forEach(e=>{const t=(Or.get(e)||0)-1,n=(c.get(e)||0)-1;Or.set(e,t),c.set(e,n),t||(!Ar.has(e)&&s&&e.removeAttribute(s),Ar.delete(e)),n||e.removeAttribute(a)}),Rr--,Rr||(Or=new WeakMap,Or=new WeakMap,Ar=new WeakSet,Cr={})}}function Hr(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=fn(e[0]).body;return jr(e.concat(Array.from(r.querySelectorAll("[aria-live]"))),r,t,n)}const Nr=()=>({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Ir(e,t){const n=Fn(e,Nr());"prev"===t&&n.reverse();const r=n.indexOf(on(fn(e)));return n.slice(r+1)[0]}function Fr(){return Ir(document.body,"next")}function Wr(){return Ir(document.body,"prev")}function Vr(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!ln(n,r)}function zr(e){Fn(e,Nr()).forEach(e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")})}function $r(e){e.querySelectorAll("[data-tabindex]").forEach(e=>{const t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute("tabindex",t):e.removeAttribute("tabindex")})}const Br={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0};function Ur(e){"Tab"===e.key&&(e.target,clearTimeout(undefined))}const qr=d.forwardRef(function(e,t){const[n,r]=d.useState();mr(()=>(mn()&&r("button"),document.addEventListener("keydown",Ur),()=>{document.removeEventListener("keydown",Ur)}),[]);const a={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Dr("focus-guard")]:"",style:Br};return d.createElement("span",_r({},e,a))}),Gr=d.createContext(null),Jr=Dr("portal");function Kr(e){const{children:t,id:n,root:r,preserveTabOrder:a=!0}=e,s=function(e){void 0===e&&(e={});const{id:t,root:n}=e,r=br(),a=Qr(),[s,i]=d.useState(null),o=d.useRef(null);return mr(()=>()=>{null==s||s.remove(),queueMicrotask(()=>{o.current=null})},[s]),mr(()=>{if(!r)return;if(o.current)return;const e=t?document.getElementById(t):null;if(!e)return;const n=document.createElement("div");n.id=r,n.setAttribute(Jr,""),e.appendChild(n),o.current=n,i(n)},[t,r]),mr(()=>{if(null===n)return;if(!r)return;if(o.current)return;let e=n||(null==a?void 0:a.portalNode);e&&!(0,sn.vq)(e)&&(e=e.current),e=e||document.body;let s=null;t&&(s=document.createElement("div"),s.id=t,e.appendChild(s));const l=document.createElement("div");l.id=r,l.setAttribute(Jr,""),e=s||e,e.appendChild(l),o.current=l,i(l)},[t,n,r,a]),s}({id:n,root:r}),[i,o]=d.useState(null),l=d.useRef(null),u=d.useRef(null),c=d.useRef(null),h=d.useRef(null),m=null==i?void 0:i.modal,p=null==i?void 0:i.open,f=!!i&&!i.modal&&i.open&&a&&!(!r&&!s);return d.useEffect(()=>{if(s&&a&&!m)return s.addEventListener("focusin",e,!0),s.addEventListener("focusout",e,!0),()=>{s.removeEventListener("focusin",e,!0),s.removeEventListener("focusout",e,!0)};function e(e){if(s&&Vr(e)){("focusin"===e.type?$r:zr)(s)}}},[s,a,m]),d.useEffect(()=>{s&&(p||$r(s))},[p,s]),d.createElement(Gr.Provider,{value:d.useMemo(()=>({preserveTabOrder:a,beforeOutsideRef:l,afterOutsideRef:u,beforeInsideRef:c,afterInsideRef:h,portalNode:s,setFocusManagerState:o}),[a,s])},f&&s&&d.createElement(qr,{"data-type":"outside",ref:l,onFocus:e=>{if(Vr(e,s)){var t;null==(t=c.current)||t.focus()}else{const e=Wr()||(null==i?void 0:i.refs.domReference.current);null==e||e.focus()}}}),f&&s&&d.createElement("span",{"aria-owns":s.id,style:Br}),s&&Wn.createPortal(t,s),f&&s&&d.createElement(qr,{"data-type":"outside",ref:u,onFocus:e=>{if(Vr(e,s)){var t;null==(t=h.current)||t.focus()}else{const t=Fr()||(null==i?void 0:i.refs.domReference.current);null==t||t.focus(),(null==i?void 0:i.closeOnFocusOut)&&(null==i||i.onOpenChange(!1,e.nativeEvent,"focus-out"))}}}))}const Qr=()=>d.useContext(Gr),Zr="data-floating-ui-focusable";function Xr(e){return e?e.hasAttribute(Zr)?e:e.querySelector("["+Zr+"]")||e:null}let ea=[];function ta(e){ea=ea.filter(e=>e.isConnected);let t=e;if(t&&"body"!==(0,sn.mq)(t)){if(!function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==Sn.call(e,wn)&&Hn(t,e)}(t,Nr())){const e=Fn(t,Nr())[0];e&&(t=e)}ea.push(t),ea.length>20&&(ea=ea.slice(-20))}}function na(){return ea.slice().reverse().find(e=>e.isConnected)}const ra=d.forwardRef(function(e,t){return d.createElement("button",_r({},e,{type:"button",ref:t,tabIndex:-1,style:Br}))});function aa(e){const{context:t,children:n,disabled:r=!1,order:a=["content"],guards:s=!0,initialFocus:i=0,returnFocus:o=!0,restoreFocus:l=!1,modal:u=!0,visuallyHiddenDismiss:c=!1,closeOnFocusOut:h=!0}=e,{open:m,refs:p,nodeId:f,onOpenChange:_,events:g,dataRef:y,floatingId:v,elements:{domReference:b,floating:M}}=t,w="number"==typeof i&&i<0,L=vn(b)&&w,S="undefined"==typeof HTMLElement||!("inert"in HTMLElement.prototype)||s,k=Tr(a),D=Tr(i),T=Tr(o),x=kr(),Y=Qr(),E=d.useRef(null),O=d.useRef(null),A=d.useRef(!1),C=d.useRef(!1),R=d.useRef(-1),P=null!=Y,j=Xr(M),H=Zn(function(e){return void 0===e&&(e=j),e?Fn(e,Nr()):[]}),N=Zn(e=>{const t=H(e);return k.current.map(e=>b&&"reference"===e?b:j&&"floating"===e?j:t).filter(Boolean).flat()});function I(e){return!r&&c&&u?d.createElement(ra,{ref:"start"===e?E:O,onClick:e=>_(!1,e.nativeEvent)},"string"==typeof c?c:"Dismiss"):null}d.useEffect(()=>{if(r)return;if(!u)return;function e(e){if("Tab"===e.key){ln(j,on(fn(j)))&&0===H().length&&!L&&yn(e);const t=N(),n=gn(e);"reference"===k.current[0]&&n===b&&(yn(e),e.shiftKey?Yr(t[t.length-1]):Yr(t[1])),"floating"===k.current[1]&&n===j&&e.shiftKey&&(yn(e),Yr(t[0]))}}const t=fn(j);return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}},[r,b,j,u,k,L,H,N]),d.useEffect(()=>{if(!r&&M)return M.addEventListener("focusin",e),()=>{M.removeEventListener("focusin",e)};function e(e){const t=gn(e),n=H().indexOf(t);-1!==n&&(R.current=n)}},[r,M,H]),d.useEffect(()=>{if(!r&&h)return M&&(0,sn.sb)(b)?(b.addEventListener("focusout",t),b.addEventListener("pointerdown",e),M.addEventListener("focusout",t),()=>{b.removeEventListener("focusout",t),b.removeEventListener("pointerdown",e),M.removeEventListener("focusout",t)}):void 0;function e(){C.current=!0,setTimeout(()=>{C.current=!1})}function t(e){const t=e.relatedTarget;queueMicrotask(()=>{const n=!(ln(b,t)||ln(M,t)||ln(t,M)||ln(null==Y?void 0:Y.portalNode,t)||null!=t&&t.hasAttribute(Dr("focus-guard"))||x&&(Er(x.nodesRef.current,f).find(e=>{var n,r;return ln(null==(n=e.context)?void 0:n.elements.floating,t)||ln(null==(r=e.context)?void 0:r.elements.domReference,t)})||function(e,t){var n;let r=[],a=null==(n=e.find(e=>e.id===t))?void 0:n.parentId;for(;a;){const t=e.find(e=>e.id===a);a=null==t?void 0:t.parentId,t&&(r=r.concat(t))}return r}(x.nodesRef.current,f).find(e=>{var n,r;return(null==(n=e.context)?void 0:n.elements.floating)===t||(null==(r=e.context)?void 0:r.elements.domReference)===t})));if(l&&n&&on(fn(j))===fn(j).body){(0,sn.sb)(j)&&j.focus();const e=R.current,t=H(),n=t[e]||t[t.length-1]||j;(0,sn.sb)(n)&&n.focus()}!L&&u||!t||!n||C.current||t===na()||(A.current=!0,_(!1,e,"focus-out"))})}},[r,b,M,j,u,f,x,Y,_,h,l,H,L]),d.useEffect(()=>{var e;if(r)return;const t=Array.from((null==Y||null==(e=Y.portalNode)?void 0:e.querySelectorAll("["+Dr("portal")+"]"))||[]);if(M){const e=[M,...t,E.current,O.current,k.current.includes("reference")||L?b:null].filter(e=>null!=e),n=u||L?Hr(e,S,!S):Hr(e);return()=>{n()}}},[r,b,M,u,k,Y,L,S]),mr(()=>{if(r||!(0,sn.sb)(j))return;const e=on(fn(j));queueMicrotask(()=>{const t=N(j),n=D.current,r=("number"==typeof n?t[n]:n.current)||j,a=ln(j,e);w||a||!m||Yr(r,{preventScroll:r===j})})},[r,m,j,w,N,D]),mr(()=>{if(r||!j)return;let e=!1;const t=fn(j),n=on(t);let a=y.current.openEvent;function s(t){let{open:n,reason:r,event:s,nested:i}=t;n&&(a=s),"escape-key"===r&&p.domReference.current&&ta(p.domReference.current),"hover"===r&&"mouseleave"===s.type&&(A.current=!0),"outside-press"===r&&(i?(A.current=!1,e=!0):A.current=!(cn(s)||hn(s)))}ta(n),g.on("openchange",s);const i=t.createElement("span");return i.setAttribute("tabindex","-1"),i.setAttribute("aria-hidden","true"),Object.assign(i.style,Br),P&&b&&b.insertAdjacentElement("afterend",i),()=>{g.off("openchange",s);const n=on(t),r=ln(M,n)||x&&Er(x.nodesRef.current,f).some(e=>{var t;return ln(null==(t=e.context)?void 0:t.elements.floating,n)});(r||a&&["click","mousedown"].includes(a.type))&&p.domReference.current&&ta(p.domReference.current);const o="boolean"==typeof T.current?na()||i:T.current.current||i;queueMicrotask(()=>{T.current&&!A.current&&(0,sn.sb)(o)&&(o===n||n===t.body||r)&&o.focus({preventScroll:e}),i.remove()})}},[r,M,j,T,y,p,g,x,f,P,b]),d.useEffect(()=>{queueMicrotask(()=>{A.current=!1})},[r]),mr(()=>{if(!r&&Y)return Y.setFocusManagerState({modal:u,closeOnFocusOut:h,open:m,onOpenChange:_,refs:p}),()=>{Y.setFocusManagerState(null)}},[r,Y,u,m,_,p,h]),mr(()=>{if(r)return;if(!j)return;if("function"!=typeof MutationObserver)return;if(w)return;const e=()=>{const e=j.getAttribute("tabindex"),t=H(),n=on(fn(M)),r=t.indexOf(n);-1!==r&&(R.current=r),k.current.includes("floating")||n!==p.domReference.current&&0===t.length?"0"!==e&&j.setAttribute("tabindex","0"):"-1"!==e&&j.setAttribute("tabindex","-1")};e();const t=new MutationObserver(e);return t.observe(j,{childList:!0,subtree:!0,attributes:!0}),()=>{t.disconnect()}},[r,M,j,p,k,H,w]);const F=!r&&S&&(!u||!L)&&(P||u);return d.createElement(d.Fragment,null,F&&d.createElement(qr,{"data-type":"inside",ref:null==Y?void 0:Y.beforeInsideRef,onFocus:e=>{if(u){const e=N();Yr("reference"===a[0]?e[0]:e[e.length-1])}else if(null!=Y&&Y.preserveTabOrder&&Y.portalNode)if(A.current=!1,Vr(e,Y.portalNode)){const e=Fr()||b;null==e||e.focus()}else{var t;null==(t=Y.beforeOutsideRef.current)||t.focus()}}}),!L&&I("start"),n,I("end"),F&&d.createElement(qr,{"data-type":"inside",ref:null==Y?void 0:Y.afterInsideRef,onFocus:e=>{if(u)Yr(N()[0]);else if(null!=Y&&Y.preserveTabOrder&&Y.portalNode)if(h&&(A.current=!0),Vr(e,Y.portalNode)){const e=Wr()||b;null==e||e.focus()}else{var t;null==(t=Y.afterOutsideRef.current)||t.focus()}}}))}const sa={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},ia={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},oa=e=>{var t,n;return{escapeKey:"boolean"==typeof e?e:null!=(t=null==e?void 0:e.escapeKey)&&t,outsidePress:"boolean"==typeof e?e:null==(n=null==e?void 0:e.outsidePress)||n}};function la(e){void 0===e&&(e={});const{nodeId:t}=e,n=function(e){const{open:t=!1,onOpenChange:n,elements:r}=e,a=br(),s=d.useRef({}),[i]=d.useState(()=>Mr()),o=null!=Sr(),[l,u]=d.useState(r.reference),c=Zn((e,t,r)=>{s.current.openEvent=e?t:void 0,i.emit("openchange",{open:e,event:t,reason:r,nested:o}),null==n||n(e,t,r)}),h=d.useMemo(()=>({setPositionReference:u}),[]),m=d.useMemo(()=>({reference:l||r.reference||null,floating:r.floating||null,domReference:r.reference}),[l,r.reference,r.floating]);return d.useMemo(()=>({dataRef:s,open:t,onOpenChange:c,elements:m,events:i,floatingId:a,refs:h}),[t,c,m,i,a,h])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,a=r.elements,[s,i]=d.useState(null),[o,l]=d.useState(null),u=(null==a?void 0:a.domReference)||s,c=d.useRef(null),h=kr();mr(()=>{u&&(c.current=u)},[u]);const m=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:i}={},transform:o=!0,whileElementsMounted:l,open:u}=e,[c,h]=d.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=d.useState(r);$n(m,r)||p(r);const[f,_]=d.useState(null),[g,y]=d.useState(null),v=d.useCallback(e=>{e!==L.current&&(L.current=e,_(e))},[]),b=d.useCallback(e=>{e!==S.current&&(S.current=e,y(e))},[]),M=s||f,w=i||g,L=d.useRef(null),S=d.useRef(null),k=d.useRef(c),D=null!=l,T=qn(l),x=qn(a),Y=qn(u),E=d.useCallback(()=>{if(!L.current||!S.current)return;const e={placement:t,strategy:n,middleware:m};x.current&&(e.platform=x.current),(0,Vn.rD)(L.current,S.current,e).then(e=>{const t={...e,isPositioned:!1!==Y.current};O.current&&!$n(k.current,t)&&(k.current=t,Wn.flushSync(()=>{h(t)}))})},[m,t,n,x,Y]);zn(()=>{!1===u&&k.current.isPositioned&&(k.current.isPositioned=!1,h(e=>({...e,isPositioned:!1})))},[u]);const O=d.useRef(!1);zn(()=>(O.current=!0,()=>{O.current=!1}),[]),zn(()=>{if(M&&(L.current=M),w&&(S.current=w),M&&w){if(T.current)return T.current(M,w,E);E()}},[M,w,E,T,D]);const A=d.useMemo(()=>({reference:L,floating:S,setReference:v,setFloating:b}),[v,b]),C=d.useMemo(()=>({reference:M,floating:w}),[M,w]),R=d.useMemo(()=>{const e={position:n,left:0,top:0};if(!C.floating)return e;const t=Un(C.floating,c.x),r=Un(C.floating,c.y);return o?{...e,transform:"translate("+t+"px, "+r+"px)",...Bn(C.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,o,C.floating,c.x,c.y]);return d.useMemo(()=>({...c,update:E,refs:A,elements:C,floatingStyles:R}),[c,E,A,C,R])}({...e,elements:{...a,...o&&{reference:o}}}),p=d.useCallback(e=>{const t=(0,sn.vq)(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;l(t),m.refs.setReference(t)},[m.refs]),f=d.useCallback(e=>{((0,sn.vq)(e)||null===e)&&(c.current=e,i(e)),((0,sn.vq)(m.refs.reference.current)||null===m.refs.reference.current||null!==e&&!(0,sn.vq)(e))&&m.refs.setReference(e)},[m.refs]),_=d.useMemo(()=>({...m.refs,setReference:f,setPositionReference:p,domReference:c}),[m.refs,f,p]),g=d.useMemo(()=>({...m.elements,domReference:u}),[m.elements,u]),y=d.useMemo(()=>({...m,...r,refs:_,elements:g,nodeId:t}),[m,_,g,t,r]);return mr(()=>{r.dataRef.current.floatingContext=y;const e=null==h?void 0:h.nodesRef.current.find(e=>e.id===t);e&&(e.context=y)}),d.useMemo(()=>({...m,context:y,refs:_,elements:g}),[m,_,g,y])}const ua="active",da="selected";function ca(e,t,n){const r=new Map,a="item"===n;let s=e;if(a&&e){const{[ua]:t,[da]:n,...r}=e;s=r}return{..."floating"===n&&{tabIndex:-1,[Zr]:""},...s,...t.map(t=>{const r=t?t[n]:null;return"function"==typeof r?e?r(e):null:r}).concat(e).reduce((e,t)=>t?(Object.entries(t).forEach(t=>{let[n,s]=t;var i;a&&[ua,da].includes(n)||(0===n.indexOf("on")?(r.has(n)||r.set(n,[]),"function"==typeof s&&(null==(i=r.get(n))||i.push(s),e[n]=function(){for(var e,t=arguments.length,a=new Array(t),s=0;se(...a)).find(e=>void 0!==e)})):e[n]=s)}),e):e,{})}}let ha=!1;function ma(e,t,n){switch(e){case"vertical":return t;case"horizontal":return n;default:return t||n}}function pa(e,t){return ma(t,e===Xn||e===er,e===tr||e===nr)}function fa(e,t,n){return ma(t,e===er,n?e===tr:e===nr)||"Enter"===e||" "===e||""===e}function _a(e,t,n){return ma(t,n?e===nr:e===tr,e===Xn)}function ga(e,t){const{open:n,onOpenChange:r,elements:a}=e,{listRef:s,activeIndex:i,onNavigate:o=()=>{},enabled:l=!0,selectedIndex:u=null,allowEscape:c=!1,loop:h=!1,nested:m=!1,rtl:p=!1,virtual:f=!1,focusItemOnOpen:_="auto",focusItemOnHover:g=!0,openOnArrowKeyDown:y=!0,disabledIndices:v,orientation:b="vertical",cols:M=1,scrollItemIntoView:w=!0,virtualItemRef:L,itemSizes:S,dense:k=!1}=t;const D=Tr(Xr(a.floating)),T=Sr(),x=kr(),Y=Zn(o),E=vn(a.domReference),O=d.useRef(_),A=d.useRef(null!=u?u:-1),C=d.useRef(null),R=d.useRef(!0),P=d.useRef(Y),j=d.useRef(!!a.floating),H=d.useRef(n),N=d.useRef(!1),I=d.useRef(!1),F=Tr(v),W=Tr(n),V=Tr(w),z=Tr(u),[$,B]=d.useState(),[U,q]=d.useState(),G=Zn(function(e,t,n){function r(e){f?(B(e.id),null==x||x.events.emit("virtualfocus",e),L&&(L.current=e)):Yr(e,{preventScroll:!0,sync:!(!un().toLowerCase().startsWith("mac")||navigator.maxTouchPoints||!mn())&&(ha||N.current)})}void 0===n&&(n=!1);const a=e.current[t.current];a&&r(a),requestAnimationFrame(()=>{const s=e.current[t.current]||a;if(!s)return;a||r(s);const i=V.current;i&&K&&(n||!R.current)&&(null==s.scrollIntoView||s.scrollIntoView("boolean"==typeof i?{block:"nearest",inline:"nearest"}:i))})});mr(()=>{document.createElement("div").focus({get preventScroll(){return ha=!0,!1}})},[]),mr(()=>{l&&(n&&a.floating?O.current&&null!=u&&(I.current=!0,A.current=u,Y(u)):j.current&&(A.current=-1,P.current(null)))},[l,n,a.floating,u,Y]),mr(()=>{if(l&&n&&a.floating)if(null==i){if(N.current=!1,null!=z.current)return;if(j.current&&(A.current=-1,G(s,A)),(!H.current||!j.current)&&O.current&&(null!=C.current||!0===O.current&&null==C.current)){let e=0;const t=()=>{if(null==s.current[0]){if(e<2){(e?requestAnimationFrame:queueMicrotask)(t)}e++}else A.current=null==C.current||fa(C.current,b,p)||m?sr(s,F.current):ir(s,F.current),C.current=null,Y(A.current)};t()}}else ar(s,i)||(A.current=i,G(s,A,I.current),I.current=!1)},[l,n,a.floating,i,z,m,s,b,p,Y,G,F]),mr(()=>{var e;if(!l||a.floating||!x||f||!j.current)return;const t=x.nodesRef.current,n=null==(e=t.find(e=>e.id===T))||null==(e=e.context)?void 0:e.elements.floating,r=on(fn(a.floating)),s=t.some(e=>e.context&&ln(e.context.elements.floating,r));n&&!s&&R.current&&n.focus({preventScroll:!0})},[l,a.floating,x,T,f]),mr(()=>{if(l&&x&&f&&!T)return x.events.on("virtualfocus",e),()=>{x.events.off("virtualfocus",e)};function e(e){q(e.id),L&&(L.current=e)}},[l,x,f,T,L]),mr(()=>{P.current=Y,j.current=!!a.floating}),mr(()=>{n||(C.current=null)},[n]),mr(()=>{H.current=n},[n]);const J=null!=i,K=d.useMemo(()=>{function e(e){if(!n)return;const t=s.current.indexOf(e);-1!==t&&Y(t)}const t={onFocus(t){let{currentTarget:n}=t;e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},...g&&{onMouseMove(t){let{currentTarget:n}=t;e(n)},onPointerLeave(e){let{pointerType:t}=e;R.current&&"touch"!==t&&(A.current=-1,G(s,A),Y(null),f||Yr(D.current,{preventScroll:!0}))}}};return t},[n,D,G,g,s,Y,f]),Q=Zn(e=>{if(R.current=!1,N.current=!0,229===e.which)return;if(!W.current&&e.currentTarget===D.current)return;if(m&&_a(e.key,b,p))return yn(e),r(!1,e.nativeEvent,"list-navigation"),void((0,sn.sb)(a.domReference)&&(f?null==x||x.events.emit("virtualfocus",a.domReference):a.domReference.focus()));const t=A.current,i=sr(s,v),o=ir(s,v);if(E||("Home"===e.key&&(yn(e),A.current=i,Y(A.current)),"End"===e.key&&(yn(e),A.current=o,Y(A.current))),M>1){const t=S||Array.from({length:s.current.length},()=>({width:1,height:1})),n=ur(t,M,k),r=n.findIndex(e=>null!=e&&!hr(s.current,e,v)),a=n.reduce((e,t,n)=>null==t||hr(s.current,t,v)?e:n,-1),l=n[lr({current:n.map(e=>null!=e?s.current[e]:null)},{event:e,orientation:b,loop:h,rtl:p,cols:M,disabledIndices:cr([...v||s.current.map((e,t)=>hr(s.current,t)?t:void 0),void 0],n),minIndex:r,maxIndex:a,prevIndex:dr(A.current>o?i:A.current,t,n,M,e.key===er?"bl":e.key===(p?tr:nr)?"tr":"tl"),stopEvent:!0})];if(null!=l&&(A.current=l,Y(A.current)),"both"===b)return}if(pa(e.key,b)){if(yn(e),n&&!f&&on(e.currentTarget.ownerDocument)===e.currentTarget)return A.current=fa(e.key,b,p)?i:o,void Y(A.current);fa(e.key,b,p)?A.current=h?t>=o?c&&t!==s.current.length?-1:i:or(s,{startingIndex:t,disabledIndices:v}):Math.min(o,or(s,{startingIndex:t,disabledIndices:v})):A.current=h?t<=i?c&&-1!==t?s.current.length:o:or(s,{startingIndex:t,decrement:!0,disabledIndices:v}):Math.max(i,or(s,{startingIndex:t,decrement:!0,disabledIndices:v})),ar(s,A.current)?Y(null):Y(A.current)}}),Z=d.useMemo(()=>f&&n&&J&&{"aria-activedescendant":U||$},[f,n,J,U,$]),X=d.useMemo(()=>({"aria-orientation":"both"===b?void 0:b,...!vn(a.domReference)&&Z,onKeyDown:Q,onPointerMove(){R.current=!0}}),[Z,Q,a.domReference,b]),ee=d.useMemo(()=>{function e(e){"auto"===_&&cn(e.nativeEvent)&&(O.current=!0)}return{...Z,onKeyDown(e){R.current=!1;const t=e.key.startsWith("Arrow"),a=["Home","End"].includes(e.key),i=t||a,o=function(e,t,n){return ma(t,n?e===tr:e===nr,e===er)}(e.key,b,p),l=_a(e.key,b,p),d=pa(e.key,b),c=(m?o:d)||"Enter"===e.key||""===e.key.trim();if(f&&n){const t=null==x?void 0:x.nodesRef.current.find(e=>null==e.parentId),n=x&&t?function(e,t){let n,r=-1;return function t(a,s){s>r&&(n=a,r=s),Er(e,a).forEach(e=>{t(e.id,s+1)})}(t,0),e.find(e=>e.id===n)}(x.nodesRef.current,t.id):null;if(i&&n&&L){const t=new KeyboardEvent("keydown",{key:e.key,bubbles:!0});if(o||l){var h,_;const r=(null==(h=n.context)?void 0:h.elements.domReference)===e.currentTarget,a=l&&!r?null==(_=n.context)?void 0:_.elements.domReference:o?s.current.find(e=>(null==e?void 0:e.id)===$):null;a&&(yn(e),a.dispatchEvent(t),q(void 0))}var g;if((d||a)&&n.context)if(n.context.open&&n.parentId&&e.currentTarget!==n.context.elements.domReference)return yn(e),void(null==(g=n.context.elements.domReference)||g.dispatchEvent(t))}return Q(e)}(n||y||!t)&&(c&&(C.current=m&&d?null:e.key),m?o&&(yn(e),n?(A.current=sr(s,F.current),Y(A.current)):r(!0,e.nativeEvent,"list-navigation")):d&&(null!=u&&(A.current=u),yn(e),!n&&y?r(!0,e.nativeEvent,"list-navigation"):Q(e),n&&Y(A.current)))},onFocus(){n&&!f&&Y(null)},onPointerDown:function(e){O.current=_,"auto"===_&&hn(e.nativeEvent)&&(O.current=!0)},onMouseDown:e,onClick:e}},[$,Z,Q,F,_,s,m,Y,r,n,y,b,p,u,x,f,L]);return d.useMemo(()=>l?{reference:ee,floating:X,item:K}:{},[l,ee,X,K])}const ya=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function va(e,t,n){let r,a=n.initialDeps??[];function s(){var s,i,o,l;let u;n.key&&(null==(s=n.debug)?void 0:s.call(n))&&(u=Date.now());const d=e(),c=d.length!==a.length||d.some((e,t)=>a[t]!==e);if(!c)return r;let h;if(a=d,n.key&&(null==(i=n.debug)?void 0:i.call(n))&&(h=Date.now()),r=t(...d),n.key&&(null==(o=n.debug)?void 0:o.call(n))){Math.round(100*(Date.now()-u)),Math.round(100*(Date.now()-h))}return null==(l=null==n?void 0:n.onChange)||l.call(n,r),r}return s.updateDeps=e=>{a=e},s}function ba(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}const Ma=(e,t,n)=>{let r;return function(...a){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,a),n)}},wa=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},La=e=>e,Sa=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},ka=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const a=e=>{const{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(a(wa(n)),!r.ResizeObserver)return()=>{};const s=new r.ResizeObserver(t=>{const r=()=>{const e=t[0];if(null==e?void 0:e.borderBoxSize){const t=e.borderBoxSize[0];if(t)return void a({width:t.inlineSize,height:t.blockSize})}a(wa(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return s.observe(n,{box:"border-box"}),()=>{s.unobserve(n)}},Da={passive:!0},Ta="undefined"==typeof window||"onscrollend"in window,xa=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let a=0;const s=e.options.useScrollendEvent&&Ta?()=>{}:Ma(r,()=>{t(a,!1)},e.options.isScrollingResetDelay),i=r=>()=>{const{horizontal:i,isRtl:o}=e.options;a=i?n.scrollLeft*(o?-1:1):n.scrollTop,s(),t(a,r)},o=i(!0),l=i(!1);l(),n.addEventListener("scroll",o,Da);const u=e.options.useScrollendEvent&&Ta;return u&&n.addEventListener("scrollend",l,Da),()=>{n.removeEventListener("scroll",o),u&&n.removeEventListener("scrollend",l)}},Ya=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e){return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},Ea=(e,{adjustments:t=0,behavior:n},r)=>{var a,s;const i=e+t;null==(s=null==(a=r.scrollElement)?void 0:a.scrollTo)||s.call(a,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class Oa{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{const t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{void 0===n&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:La,rangeExtractor:Sa,onChange:()=>{},measureElement:Ya,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=va(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const n=new Map,r=new Map;for(let a=t-1;a>=0;a--){const t=e[a];if(n.has(t.lane))continue;const s=r.get(t.lane);if(null==s||t.end>s.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=va(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,n,r,a)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a}),{key:!1}),this.getMeasurements=va(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a},s)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));const i=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const o=this.measurementsCache.slice(0,i);for(let a=i;athis.options.debug}),this.calculateRange=va(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const a=e.length-1,s=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:a};let i=Aa(0,a,s,n),o=i;if(1===r)for(;o1){const s=Array(r).fill(0);for(;oe=0&&l.some(e=>e>=n);){const t=e[i];l[t.lane]=t.start,i--}i=Math.max(0,i-i%r),o=Math.min(a,o+(r-1-o%r))}return{startIndex:i,endIndex:o}}({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=va(()=>{let e=null,t=null;const n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,a)=>null===r||null===a?[]:e({startIndex:r,endIndex:a,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const a=r.key,s=this.elementsCache.get(a);s!==e&&(s&&this.observer.unobserve(s),this.observer.observe(e),this.elementsCache.set(a,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const n=this.measurementsCache[e];if(!n)return;const r=t-(this.itemSizeCache.get(n.key)??n.size);0!==r&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this):n.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=va(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const n=[];for(let r=0,a=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(0!==t.length)return ba(t[Aa(0,t.length-1,e=>ba(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,n=0)=>{const r=this.getSize(),a=this.getScrollOffset();"auto"===t&&(t=e>=a+r?"end":"start"),"center"===t?e+=(n-r)/2:"end"===t&&(e-=r);const s=this.getTotalSize()+this.options.scrollMargin-r;return Math.max(Math.min(s,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.measurementsCache[e];if(!n)return;const r=this.getSize(),a=this.getScrollOffset();if("auto"===t)if(n.end>=a+r-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=a+this.options.scrollPaddingStart))return[a,t];t="start"}const s="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(s,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let r=0;const a=t=>{if(!this.targetWindow)return;const r=this.getOffsetForIndex(e,t);if(!r)return void console.warn("Failed to get offset for index:",e);const[a,i]=r;this._scrollToOffset(a,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{const t=this.getScrollOffset(),n=this.getOffsetForIndex(e,i);var r,a;n?(r=n[0],a=t,Math.abs(r-a)<1.01||s(i)):console.warn("Failed to get offset for index:",e)})},s=t=>{this.targetWindow&&(r++,r<10?this.targetWindow.requestAnimationFrame(()=>a(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};a(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let n;if(0===t.length)n=this.options.paddingStart;else if(1===this.options.lanes)n=(null==(e=t[t.length-1])?void 0:e.end)??0;else{const e=Array(this.options.lanes).fill(null);let r=t.length-1;for(;r>=0&&e.some(e=>null===e);){const n=t[r];null===e[n.lane]&&(e[n.lane]=n.end),r--}n=Math.max(...e.filter(e=>null!==e))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}const Aa=(e,t,n,r)=>{for(;e<=t;){const a=(e+t)/2|0,s=n(a);if(sr))return a;t=a-1}}return e>0?e-1:0};const Ca="undefined"!=typeof document?d.useLayoutEffect:d.useEffect;function Ra(e){const t=d.useReducer(()=>({}),{})[1],n={...e,onChange:(n,r)=>{var a;r?(0,Wn.flushSync)(t):t(),null==(a=e.onChange)||a.call(e,n,r)}},[r]=d.useState(()=>new Oa(n));return r.setOptions(n),Ca(()=>r._didMount(),[]),Ca(()=>r._willUpdate()),r}const Pa=(0,d.forwardRef)(function({children:e,active:t,addGroupBottomBorder:n,isMultiValueEdit:r,checked:a,...s},i){const o=(0,nt.useStyles2)(ja),l=(0,d.useId)();return h().createElement("div",{ref:i,role:"option",id:l,"aria-selected":t,className:(0,at.cx)(o.option,t&&o.optionFocused,n&&o.groupBottomBorder),...s},h().createElement("div",{className:o.optionBody,"data-testid":`data-testid ad hoc filter option value ${e}`},h().createElement("span",null,r?h().createElement(nt.Checkbox,{tabIndex:-1,checked:a,className:o.checkbox}):null,e)))}),ja=e=>({option:(0,at.css)({label:"grafana-select-option",top:0,left:0,width:"100%",position:"absolute",padding:e.spacing(1),display:"flex",alignItems:"center",flexDirection:"row",flexShrink:0,whiteSpace:"nowrap",cursor:"pointer","&:hover":{background:e.colors.action.hover,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}}),optionFocused:(0,at.css)({label:"grafana-select-option-focused",background:e.colors.action.focus,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}),optionBody:(0,at.css)({label:"grafana-select-option-body",display:"flex",fontWeight:e.typography.fontWeightMedium,flexDirection:"column",flexGrow:1}),groupBottomBorder:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),checkbox:(0,at.css)({paddingRight:e.spacing(.5)}),multiValueApplyWrapper:(0,at.css)({position:"fixed",top:0,left:0,display:"flex",backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.dropdown,gap:e.spacing(1.5),padding:`${e.spacing(1.5)} ${e.spacing(1)}`})}),Ha=()=>h().createElement(Pa,{onClick:e=>e.stopPropagation()},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.loading-options-placeholder.loading-options"},"Loading options...")),Na=()=>h().createElement(Pa,{onClick:e=>e.stopPropagation()},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.no-options-placeholder.no-options-found"},"No options found")),Ia=({handleFetchOptions:e})=>h().createElement(Pa,{onClick:e},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.options-error-placeholder.error-occurred-fetching-labels-click-retry"},"An error has occurred fetching labels. Click to retry")),Fa=({onApply:e,floatingElement:t,maxOptionWidth:n,menuHeight:r})=>{const a=(0,nt.useStyles2)(ja),s=null==t?void 0:t.getBoundingClientRect();return h().createElement("div",{className:a.multiValueApplyWrapper,style:{width:`${n}px`,transform:`translate(${null==s?void 0:s.left}px,${s?s.top+r:0}px)`}},h().createElement(nt.Button,{onClick:e,size:"sm",tabIndex:-1},h().createElement(he.x6,{i18nKey:"grafana-scenes.variables.multi-value-apply-button.apply"},"Apply")))},Wa={key:"operator",operator:"value",value:"key"},Va=(e,t,n,r,a)=>za(Wa[e],t,"value"===e?n:void 0,r,a),za=(e,t,n,r,a)=>{t(e),null==n||n(void 0,a),setTimeout(()=>null==r?void 0:r.focus())},$a=({filterInputType:e,item:t,filter:n,setFilterMultiValues:r,onAddCustomValue:a})=>{var s,i,o,l,u;if("key"===e)return{key:t.value,keyLabel:t.label?t.label:t.value,meta:null==t?void 0:t.meta};if("value"===e)return t.isCustom&&a?a(t,n):{value:t.value,valueLabels:[t.label?t.label:t.value]};if("operator"===e){if(gs(n.operator)&&!gs(t.value))return r([]),{operator:t.value,valueLabels:[(null==(s=n.valueLabels)?void 0:s[0])||(null==(i=n.values)?void 0:i[0])||n.value],values:void 0};if(gs(t.value)&&!gs(n.operator)){const e=[(null==(o=n.valueLabels)?void 0:o[0])||(null==(l=n.values)?void 0:l[0])||n.value],a=[n.value];return a[0]&&r([{value:a[0],label:null!=(u=null==e?void 0:e[0])?u:a[0]}]),{operator:t.value,valueLabels:e,values:a}}}return{[e]:t.value}},Ba="Filter by label values",Ua=(e,t,n,r)=>{var a;return"key"===t?Ba:"value"===t?n?"Edit values":(null==(a=e.valueLabels)?void 0:a[0])||"":e[t]&&!r?`${e[t]}`:Ba},qa=({populateInputOnEdit:e,item:t,filterInputType:n,setInputValue:r,filter:a})=>{var s,i,o;e&&!gs(t.value||"")&&"value"===Wa[n]?r(null!=(o=null!=(i=null==(s=null==a?void 0:a.valueLabels)?void 0:s[0])?i:null==a?void 0:a.value)?o:""):r("")},Ga=({open:e,onOpenChange:t,activeIndex:n,setActiveIndex:r,outsidePressIdsToIgnore:a,listRef:s,disabledIndicesRef:i})=>{const{refs:o,floatingStyles:l,context:u}=la({whileElementsMounted:Vn.ll,open:e,onOpenChange:t,placement:"bottom-start",middleware:[(c=10,{...(0,Vn.cY)(c),options:[c,h]}),Gn({padding:10}),Jn({apply({availableHeight:e,availableWidth:t,elements:n}){n.floating.style.maxHeight=`${Math.min(300,e)}px`,n.floating.style.maxWidth=`${t}px`},padding:10})],strategy:"fixed"});var c,h;const m=function(e,t){var n;void 0===t&&(t={});const{open:r,floatingId:a}=e,{enabled:s=!0,role:i="dialog"}=t,o=null!=(n=ya.get(i))?n:i,l=br(),u=null!=Sr(),c=d.useMemo(()=>"tooltip"===o||"label"===i?{["aria-"+("label"===i?"labelledby":"describedby")]:r?a:void 0}:{"aria-expanded":r?"true":"false","aria-haspopup":"alertdialog"===o?"dialog":o,"aria-controls":r?a:void 0,..."listbox"===o&&{role:"combobox"},..."menu"===o&&{id:l},..."menu"===o&&u&&{role:"menuitem"},..."select"===i&&{"aria-autocomplete":"none"},..."combobox"===i&&{"aria-autocomplete":"list"}},[o,a,u,r,l,i]),h=d.useMemo(()=>{const e={id:a,...o&&{role:o}};return"tooltip"===o||"label"===i?e:{...e,..."menu"===o&&{"aria-labelledby":l}}},[o,a,l,i]),m=d.useCallback(e=>{let{active:t,selected:n}=e;const r={role:"option",...t&&{id:a+"-option"}};switch(i){case"select":return{...r,"aria-selected":t&&n};case"combobox":return{...r,...t&&{"aria-selected":!0}}}return{}},[a,i]);return d.useMemo(()=>s?{reference:c,floating:h,item:m}:{},[s,c,h,m])}(u,{role:"listbox"}),p=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,elements:a,dataRef:s}=e,{enabled:i=!0,escapeKey:o=!0,outsidePress:l=!0,outsidePressEvent:u="pointerdown",referencePress:c=!1,referencePressEvent:h="pointerdown",ancestorScroll:m=!1,bubbles:p,capture:f}=t,_=kr(),g=Zn("function"==typeof l?l:()=>!1),y="function"==typeof l?g:l,v=d.useRef(!1),b=d.useRef(!1),{escapeKey:M,outsidePress:w}=oa(p),{escapeKey:L,outsidePress:S}=oa(f),k=d.useRef(!1),D=Zn(e=>{var t;if(!n||!i||!o||"Escape"!==e.key)return;if(k.current)return;const a=null==(t=s.current.floatingContext)?void 0:t.nodeId,l=_?Er(_.nodesRef.current,a):[];if(!M&&(e.stopPropagation(),l.length>0)){let e=!0;if(l.forEach(t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__escapeKeyBubbles||(e=!1)}),!e)return}r(!1,function(e){return"nativeEvent"in e}(e)?e.nativeEvent:e,"escape-key")}),T=Zn(e=>{var t;const n=()=>{var t;D(e),null==(t=gn(e))||t.removeEventListener("keydown",n)};null==(t=gn(e))||t.addEventListener("keydown",n)}),x=Zn(e=>{var t;const n=v.current;v.current=!1;const i=b.current;if(b.current=!1,"click"===u&&i)return;if(n)return;if("function"==typeof y&&!y(e))return;const o=gn(e),l="["+Dr("inert")+"]",d=fn(a.floating).querySelectorAll(l);let c=(0,sn.vq)(o)?o:null;for(;c&&!(0,sn.eu)(c);){const e=(0,sn.$4)(c);if((0,sn.eu)(e)||!(0,sn.vq)(e))break;c=e}if(d.length&&(0,sn.vq)(o)&&!o.matches("html,body")&&!ln(o,a.floating)&&Array.from(d).every(e=>!ln(c,e)))return;if((0,sn.sb)(o)&&O){const t=o.clientWidth>0&&o.scrollWidth>o.clientWidth,n=o.clientHeight>0&&o.scrollHeight>o.clientHeight;let r=n&&e.offsetX>o.clientWidth;if(n&&"rtl"===(0,sn.L9)(o).direction&&(r=e.offsetX<=o.offsetWidth-o.clientWidth),r||t&&e.offsetY>o.clientHeight)return}const h=null==(t=s.current.floatingContext)?void 0:t.nodeId,m=_&&Er(_.nodesRef.current,h).some(t=>{var n;return _n(e,null==(n=t.context)?void 0:n.elements.floating)});if(_n(e,a.floating)||_n(e,a.domReference)||m)return;const p=_?Er(_.nodesRef.current,h):[];if(p.length>0){let e=!0;if(p.forEach(t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)}),!e)return}r(!1,e,"outside-press")}),Y=Zn(e=>{var t;const n=()=>{var t;x(e),null==(t=gn(e))||t.removeEventListener(u,n)};null==(t=gn(e))||t.addEventListener(u,n)});d.useEffect(()=>{if(!n||!i)return;s.current.__escapeKeyBubbles=M,s.current.__outsidePressBubbles=w;let e=-1;function t(e){r(!1,e,"ancestor-scroll")}function l(){window.clearTimeout(e),k.current=!0}function d(){e=window.setTimeout(()=>{k.current=!1},(0,sn.Tc)()?5:0)}const c=fn(a.floating);o&&(c.addEventListener("keydown",L?T:D,L),c.addEventListener("compositionstart",l),c.addEventListener("compositionend",d)),y&&c.addEventListener(u,S?Y:x,S);let h=[];return m&&((0,sn.vq)(a.domReference)&&(h=(0,sn.v9)(a.domReference)),(0,sn.vq)(a.floating)&&(h=h.concat((0,sn.v9)(a.floating))),!(0,sn.vq)(a.reference)&&a.reference&&a.reference.contextElement&&(h=h.concat((0,sn.v9)(a.reference.contextElement)))),h=h.filter(e=>{var t;return e!==(null==(t=c.defaultView)?void 0:t.visualViewport)}),h.forEach(e=>{e.addEventListener("scroll",t,{passive:!0})}),()=>{o&&(c.removeEventListener("keydown",L?T:D,L),c.removeEventListener("compositionstart",l),c.removeEventListener("compositionend",d)),y&&c.removeEventListener(u,S?Y:x,S),h.forEach(e=>{e.removeEventListener("scroll",t)}),window.clearTimeout(e)}},[s,a,o,y,u,n,r,m,i,M,w,D,L,T,x,S,Y]),d.useEffect(()=>{v.current=!1},[y,u]);const E=d.useMemo(()=>({onKeyDown:D,[sa[h]]:e=>{c&&r(!1,e.nativeEvent,"reference-press")}}),[D,r,c,h]),O=d.useMemo(()=>({onKeyDown:D,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[ia[u]]:()=>{v.current=!0}}),[D,u]);return d.useMemo(()=>i?{reference:E,floating:O}:{},[i,E,O])}(u,{outsidePress:e=>{var t;if(e.currentTarget instanceof Element){const n=e.currentTarget;let r=n.id;if("path"===n.nodeName&&(r=(null==(t=n.parentElement)?void 0:t.id)||""),a.includes(r))return!1}return!0}}),f=ga(u,{listRef:s,activeIndex:n,onNavigate:r,virtual:!0,loop:!0,disabledIndices:i.current}),{getReferenceProps:_,getFloatingProps:g,getItemProps:y}=function(e){void 0===e&&(e=[]);const t=e.map(e=>null==e?void 0:e.reference),n=e.map(e=>null==e?void 0:e.floating),r=e.map(e=>null==e?void 0:e.item),a=d.useCallback(t=>ca(t,e,"reference"),t),s=d.useCallback(t=>ca(t,e,"floating"),n),i=d.useCallback(t=>ca(t,e,"item"),r);return d.useMemo(()=>({getReferenceProps:a,getFloatingProps:s,getItemProps:i}),[a,s,i])}([m,p,f]);return{refs:o,floatingStyles:l,context:u,getReferenceProps:_,getFloatingProps:g,getItemProps:y}},Ja=({item:e,handleRemoveMultiValue:t,index:n,handleEditMultiValuePill:r})=>{var a,s;const i=(0,nt.useStyles2)(Ka),o=(0,d.useCallback)(t=>{t.stopPropagation(),t.preventDefault(),r(e)},[r,e]),l=(0,d.useCallback)(e=>{"Enter"===e.key&&o(e)},[o]),u=(0,d.useCallback)(n=>{n.stopPropagation(),n.preventDefault(),t(e)},[t,e]),c=(0,d.useCallback)(e=>{"Enter"===e.key&&u(e)},[u]);return h().createElement("div",{className:(0,at.cx)(i.basePill,i.valuePill),onClick:o,onKeyDown:l,tabIndex:0,id:`${e.value}-${n}`},null!=(a=e.label)?a:e.value,h().createElement(nt.Button,{onClick:u,onKeyDownCapture:c,fill:"text",size:"sm",variant:"secondary",className:i.removeButton,tooltip:(0,he.t)("grafana-scenes.components.adhoc-filters-combobox.remove-filter-value","Remove filter value - {{itemLabel}}",{itemLabel:null!=(s=e.label)?s:e.value})},h().createElement(nt.Icon,{name:"times",size:"md",id:`${e.value}-${n}-close-icon`})))},Ka=e=>({basePill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,cursor:"pointer"}),valuePill:(0,at.css)({background:e.colors.action.selected,padding:e.spacing(.125,0,.125,1)}),removeButton:(0,at.css)({marginInline:e.spacing(.5),height:"100%",padding:0,cursor:"pointer","&:hover":{color:e.colors.text.primary}})}),Qa=(0,d.forwardRef)(function({filter:e,model:t,isAlwaysWip:n,handleChangeViewMode:r,focusOnWipInputRef:a,populateInputOnEdit:s},i){var o,l,u,c;const[m,p]=(0,d.useState)(!1),[f,_]=(0,d.useState)([]),[g,y]=(0,d.useState)(!1),[v,b]=(0,d.useState)(!1),[M,w]=(0,d.useState)(""),[L,S]=(0,d.useState)(null),[k,D]=(0,d.useState)(n?"key":"value"),[T,x]=(0,d.useState)(!n&&"value"===k),Y=(0,nt.useStyles2)(Za),[E,O]=(0,d.useState)([]),[A,C]=(0,d.useState)({}),R=null==(o=t.state.allowCustomValue)||o,P=(0,d.useRef)(null),j=gs((null==e?void 0:e.operator)||""),H=j&&"value"===k,I=(0,d.useId)(),F=(0,d.useRef)([]),W=(0,d.useRef)([]),V=(0,d.useRef)(n?"key":"value"),z=(0,d.useMemo)(()=>Jt(f),[f]),$=(0,d.useMemo)(()=>!n&&t.state.filters.at(-1)===e,[e,n,t.state.filters]),B=(0,d.useCallback)(()=>{n&&(t._addWip(),D("key"),w(""))},[t,n]),U=(0,d.useCallback)((e,t,n,r)=>{if(!n.length&&t.origin&&e.updateToMatchAll(t),n.length){const r=[],a=[];n.forEach(e=>{var t;r.push(null!=(t=e.label)?t:e.value),a.push(e.value)});let s=!0;if(Array.isArray(t.values)&&t.values.length===a.length&&(s=!t.values.every((e,t)=>e===a[t])),s){const t=N(e);null==t||t.startProfile(Z)}e._updateFilter(t,{valueLabels:r,values:a,value:a[0]}),O([])}r||setTimeout(()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()})},[]),q=(0,d.useCallback)(e=>{O(t=>t.some(t=>t.value===e.value)?t.filter(t=>t.value!==e.value):[...t,e])},[]),G=(0,d.useCallback)((n,a,s)=>{p(n),s&&["outside-press","escape-key"].includes(s)&&(H?U(t,e,E):e&&e.origin&&""===M&&t.updateToMatchAll(e),B(),null==r||r())},[e,E,r,U,B,M,H,t]),J=(0,d.useMemo)(()=>[I,...E.reduce((e,t,n)=>[...e,`${t.value}-${n}`,`${t.value}-${n}-close-icon`],[])],[I,E]),{refs:K,floatingStyles:X,context:ee,getReferenceProps:te,getFloatingProps:ne,getItemProps:re}=Ga({open:m,onOpenChange:G,activeIndex:L,setActiveIndex:S,outsidePressIdsToIgnore:J,listRef:F,disabledIndicesRef:W});(0,d.useImperativeHandle)(i,()=>()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()},[K.domReference]);const ae=(0,d.useCallback)(e=>{O(t=>t.filter(t=>t.value!==e.value)),setTimeout(()=>{var e;return null==(e=K.domReference.current)?void 0:e.focus()})},[K.domReference]),se=(e=>e.flatMap(e=>e.options?[e,...e.options]:[e]))(Ns(z(T?"":M)));R&&"operator"!==k&&M&&se.push({value:M.trim(),label:M.trim(),isCustom:!0});const ie=t.state.onAddCustomValue,oe=((e,t,n)=>{var r,a,s,i;let o=182;const l=[],u=[];for(let t=0;to&&(o=c)}return t.current=[...l],n.current=[...u],o})(se,F,W),le=(0,d.useCallback)(async n=>{var r;b(!1),y(!0),_([]);let a=[];try{if("key"===n?a=await t._getKeys(null):"operator"===n?a=t._getOperators():"value"===n&&(a=await t._getValuesFor(e)),V.current!==n)return;_(a),(null==(r=a[0])?void 0:r.group)?S(1):S(0)}catch(e){b(!0)}y(!1)},[e,t]),ue=function(e){return Ra({observeElementRect:ka,observeElementOffset:xa,scrollToFn:Ea,...e})}({count:se.length,getScrollElement:()=>K.floating.current,estimateSize:e=>se[e].description?60:38,overscan:5}),de=(0,d.useCallback)((r,s)=>{if("Backspace"===r.key&&!M){if("value"===k){if(s&&E.length)return void O(e=>{const t=[...e];return t.splice(-1,1),t});if(null==e?void 0:e.origin)return;return void D("operator")}if(null==a||a(),fs(e)){const e=N(t);null==e||e.startProfile(Q)}t._handleComboboxBackspace(e),n&&B()}},[M,k,t,e,n,E.length,B,a]),ce=(0,d.useCallback)((n,a)=>{var s;"Tab"!==n.key||n.shiftKey||(a&&(n.preventDefault(),U(t,e,E),null==(s=K.domReference.current)||s.focus()),null==r||r(),B())},[e,E,r,U,B,t,K.domReference]),me=(0,d.useCallback)((n,a)=>{"Tab"===n.key&&n.shiftKey&&(a&&(n.preventDefault(),U(t,e,E,!0)),null==r||r(),B())},[e,E,r,U,B,t]),pe=(0,d.useCallback)((n,i)=>{if("Enter"===n.key&&null!=L){if(!se[L])return;const n=se[L];if(i)q(n),w("");else{const i=$a({filterInputType:k,item:n,filter:e,setFilterMultiValues:O,onAddCustomValue:ie});if("value"===k&&i.value!==(null==e?void 0:e.value)){const e=N(t);null==e||e.startProfile(Z)}t._updateFilter(e,i),qa({populateInputOnEdit:s,item:n,filterInputType:k,setInputValue:w,filter:e}),Va(k,D,r,K.domReference.current,!$&&void 0),S(null),$&&(null==a||a())}}},[L,se,q,t,e,k,s,r,K.domReference,$,a,ie]),fe=(0,d.useCallback)(e=>{var t;const n=e.label||e.value;O(t=>t.filter(t=>t.value!==e.value)),x(!0),w(n),null==(t=K.domReference.current)||t.focus(),setTimeout(()=>{var e;null==(e=K.domReference.current)||e.select()})},[K.domReference]);(0,d.useEffect)(()=>{m&&le(k)},[m,k]),(0,d.useEffect)(()=>{var t,r,a,i;if(!n){if(j&&(null==(t=null==e?void 0:e.values)?void 0:t.length)){const t=e.values.reduce((t,n,r)=>{var a;return[...t,{label:(null==(a=e.valueLabels)?void 0:a[r])||n,value:n}]},[]);O(t)}!j&&s&&(w(null!=(a=null==(r=null==e?void 0:e.valueLabels)?void 0:r[0])?a:(null==e?void 0:e.value)||""),setTimeout(()=>{var e;null==(e=K.domReference.current)||e.select()})),null==(i=K.domReference.current)||i.focus()}},[]),(0,d.useEffect)(()=>{H&&E&&setTimeout(()=>C({}))},[E,H]),(0,d.useLayoutEffect)(()=>{V.current&&(V.current=k)},[k]),(0,d.useLayoutEffect)(()=>{var e,t;null!==L&&ue.range&&(L>(null==(e=ue.range)?void 0:e.endIndex)||L<(null==(t=ue.range)?void 0:t.startIndex))&&ue.scrollToIndex(L)},[L,ue]);const _e=null!=(l=null==e?void 0:e.keyLabel)?l:null==e?void 0:e.key;return h().createElement("div",{className:Y.comboboxWrapper},e?h().createElement("div",{className:Y.pillWrapper},(null==e?void 0:e.key)?h().createElement("div",{className:(0,at.cx)(Y.basePill,Y.keyPill)},_e):null,(null==e?void 0:e.key)&&(null==e?void 0:e.operator)&&"operator"!==k?h().createElement("div",{id:I,className:(0,at.cx)(Y.basePill,!e.origin&&Y.operatorPill,e.origin&&Y.keyPill,I),"aria-label":(0,he.t)("grafana-scenes.variables.ad-hoc-combobox.aria-label-edit-filter-operator","Edit filter operator"),tabIndex:e.origin?-1:0,onClick:t=>{e.origin?null==r||r():(t.stopPropagation(),w(""),za("operator",D,void 0,K.domReference.current))},onKeyDown:t=>{e.origin||(me(t,j),"Enter"===t.key&&(w(""),za("operator",D,void 0,K.domReference.current)))},...!e.origin&&{role:"button"}},e.operator):null,h().createElement("div",{ref:P}),H?E.map((e,t)=>h().createElement(Ja,{key:`${e.value}-${t}`,item:e,index:t,handleRemoveMultiValue:ae,handleEditMultiValuePill:fe})):null):null,h().createElement("input",{...te({ref:K.setReference,onChange:function(e){const t=e.target.value;w(t),S(0),T&&x(!1)},value:M,placeholder:Ua(e,k,H,n),"aria-autocomplete":"list",onKeyDown(e){m?("operator"===k&&me(e),de(e,H),ce(e,H),pe(e,H)):p(!0)}}),className:(0,at.cx)(Y.inputStyle,{[Y.loadingInputPadding]:!g}),onClick:e=>{e.stopPropagation(),p(!0)},onFocus:()=>{p(!0)}}),g?h().createElement(nt.Spinner,{className:Y.loadingIndicator,inline:!0}):null,h().createElement(Kr,null,m&&h().createElement(aa,{context:ee,initialFocus:-1,visuallyHiddenDismiss:!0,modal:!1},h().createElement(h().Fragment,null,h().createElement("div",{style:{...X,width:`${v?366:oe}px`,transform:H?`translate(${(null==(u=P.current)?void 0:u.getBoundingClientRect().left)||0}px, ${((null==(c=K.domReference.current)?void 0:c.getBoundingClientRect().bottom)||0)+10}px )`:X.transform},ref:K.setFloating,className:Y.dropdownWrapper,tabIndex:-1},h().createElement("div",{style:{height:`${ue.getTotalSize()||38}px`},...ne(),tabIndex:-1},g?h().createElement(Ha,null):v?h().createElement(Ia,{handleFetchOptions:()=>le(k)}):se.length||R&&"operator"!==k&&M?ue.getVirtualItems().map(n=>{var a;const i=se[n.index],o=n.index;if(i.options)return h().createElement("div",{key:`${i.label}+${o}`,className:(0,at.cx)(Y.optionGroupLabel,Y.groupTopBorder),style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`}},h().createElement(nt.Text,{weight:"bold",variant:"bodySmall",color:"secondary"},i.label));const l=se[n.index+1],u=l&&!l.group&&!l.options&&i.group,d=null!=(a=i.label)?a:i.value;return h().createElement(Pa,{...re({key:`${i.value}-${o}`,ref(e){F.current[o]=e},onClick(n){var a;if("value"!==k&&n.stopPropagation(),H)n.preventDefault(),n.stopPropagation(),q(i),w(""),null==(a=K.domReference.current)||a.focus();else{const n=$a({filterInputType:k,item:i,filter:e,setFilterMultiValues:O,onAddCustomValue:ie});if("value"===k&&n.value!==(null==e?void 0:e.value)){const e=N(t);null==e||e.startProfile(Z)}t._updateFilter(e,n),qa({populateInputOnEdit:s,item:i,filterInputType:k,setInputValue:w,filter:e}),Va(k,D,r,K.domReference.current,!1)}}}),active:L===o,addGroupBottomBorder:u,style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`},"aria-setsize":se.length,"aria-posinset":n.index+1,isMultiValueEdit:H,checked:E.some(e=>e.value===i.value)},h().createElement("span",null,i.isCustom?(0,he.t)("grafana-scenes.components.adhoc-filters-combobox.use-custom-value","Use custom value: {{itemLabel}}",{itemLabel:d}):d),i.description?h().createElement("div",{className:Y.descriptionText},i.description):null)}):h().createElement(Na,null))),H&&!g&&!v&&se.length?h().createElement(Fa,{onApply:()=>{U(t,e,E)},floatingElement:K.floating.current,maxOptionWidth:oe,menuHeight:Math.min(ue.getTotalSize(),300)}):null))))}),Za=e=>({comboboxWrapper:(0,at.css)({display:"flex",flexWrap:"wrap"}),pillWrapper:(0,at.css)({display:"flex",alignItems:"center",flexWrap:"wrap"}),basePill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,cursor:"pointer"}),keyPill:(0,at.css)({fontWeight:e.typography.fontWeightBold,cursor:"default"}),operatorPill:(0,at.css)({"&:hover":{background:e.colors.action.hover}}),dropdownWrapper:(0,at.css)({backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.portal}),inputStyle:(0,at.css)({paddingBlock:0,"&:focus":{outline:"none"}}),loadingIndicator:(0,at.css)({color:e.colors.text.secondary,marginLeft:e.spacing(.5)}),loadingInputPadding:(0,at.css)({paddingRight:e.spacing(2.5)}),optionGroupLabel:(0,at.css)({padding:e.spacing(1),position:"absolute",top:0,left:0,width:"100%"}),groupTopBorder:(0,at.css)({"&:not(:first-child)":{borderTop:`1px solid ${e.colors.border.weak}`}}),descriptionText:(0,at.css)({...e.typography.bodySmall,color:e.colors.text.secondary,paddingTop:e.spacing(.5)})});function Xa({filter:e,model:t,readOnly:n,focusOnWipInputRef:r}){var a,s,i,o;const l=(0,nt.useStyles2)(es),[u,c]=(0,d.useState)(!0),[m,p]=(0,d.useState)(!1),f=(0,d.useRef)(null),[_,g]=(0,d.useState)(!1),y=null!=(a=e.keyLabel)?a:e.key,v=(null==(s=e.valueLabels)?void 0:s.join(", "))||(null==(i=e.values)?void 0:i.join(", "))||e.value,b=(0,d.useCallback)((e,t)=>{null==e||e.stopPropagation(),n||(p(null!=t?t:!u),c(!u))},[n,u]);(0,d.useEffect)(()=>{var e;m&&(null==(e=f.current)||e.focus(),p(!1))},[m]),(0,d.useEffect)(()=>{e.forceEdit&&u&&(c(!1),t._updateFilter(e,{forceEdit:void 0}))},[e,t,u]),(0,d.useEffect)(()=>{u&&g(e=>!e&&e)},[u]);const M=e=>"dashboard"===e?{info:"Applied by default in this dashboard. If edited, it carries over to other dashboards.",restore:"Restore the value set by this dashboard."}:"scope"===e?{info:"Applied automatically from your selected scope.",restore:"Restore the value set by your selected scope."}:{info:`This is a ${e} injected filter.`,restore:"Restore filter to its original value."},w=!e.restorable&&!e.readOnly&&!e.nonApplicable;if(u){const a=`${y} ${e.operator} ${v}`,s=h().createElement("span",{className:(0,at.cx)(l.pillText,e.nonApplicable&&l.strikethrough)},a);return h().createElement("div",{className:(0,at.cx)(l.combinedFilterPill,n&&l.readOnlyCombinedFilter,(ps(e)||e.nonApplicable)&&l.disabledPill,e.readOnly&&l.filterReadOnly),onClick:e=>{e.stopPropagation(),g(!0),b()},onKeyDown:e=>{"Enter"===e.key&&(g(!0),b())},role:n?void 0:"button","aria-label":(0,he.t)("grafana-scenes.components.adhoc-filter-pill.edit-filter-with-key","Edit filter with key {{keyLabel}}",{keyLabel:y}),tabIndex:0,ref:f},a.length<20?s:h().createElement(nt.Tooltip,{content:h().createElement("div",{className:l.tooltipText},a),placement:"top"},s),n||e.matchAllFilter||e.origin&&"dashboard"!==e.origin?null:h().createElement(nt.IconButton,{onClick:n=>{n.stopPropagation(),e.origin&&"dashboard"===e.origin?t.updateToMatchAll(e):t._removeFilter(e),setTimeout(()=>null==r?void 0:r())},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),e.origin&&"dashboard"===e.origin?t.updateToMatchAll(e):t._removeFilter(e),setTimeout(()=>null==r?void 0:r()))},name:"times",size:"md",className:(0,at.cx)(l.pillIcon,e.nonApplicable&&l.disabledPillIcon),tooltip:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.remove-filter-with-key","Remove filter with key {{keyLabel}}",{keyLabel:y})}),e.origin&&e.readOnly&&h().createElement(nt.Tooltip,{content:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.managed-filter","{{origin}} managed filter",{origin:e.origin}),placement:"bottom"},h().createElement(nt.Icon,{name:"lock",size:"md",className:l.readOnlyPillIcon})),e.origin&&w&&h().createElement(nt.Tooltip,{content:M(e.origin).info,placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md",className:l.infoPillIcon})),e.origin&&e.restorable&&!e.readOnly&&h().createElement(nt.IconButton,{onClick:n=>{n.stopPropagation(),t.restoreOriginalFilter(e)},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),t.restoreOriginalFilter(e))},name:"history",size:"md",className:ps(e)?l.matchAllPillIcon:l.pillIcon,tooltip:M(e.origin).restore}),e.nonApplicable&&h().createElement(nt.Tooltip,{content:null!=(o=e.nonApplicableReason)?o:(0,he.t)("grafana-scenes.components.adhoc-filter-pill.non-applicable","Filter is not applicable"),placement:"bottom"},h().createElement(nt.Icon,{name:"info-circle",size:"md",className:l.infoPillIcon})))}return h().createElement(Qa,{filter:e,model:t,handleChangeViewMode:b,focusOnWipInputRef:r,populateInputOnEdit:_})}const es=e=>({combinedFilterPill:(0,at.css)({display:"flex",alignItems:"center",background:e.colors.action.selected,borderRadius:e.shape.radius.default,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,0,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75),...e.typography.bodySmall,fontWeight:e.typography.fontWeightBold,cursor:"pointer","&:hover":{background:e.colors.action.hover}}),readOnlyCombinedFilter:(0,at.css)({paddingRight:e.spacing(1),cursor:"text","&:hover":{background:e.colors.action.selected}}),filterReadOnly:(0,at.css)({background:e.colors.background.canvas,cursor:"text","&:hover":{background:e.colors.background.canvas}}),pillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer","&:hover":{color:e.colors.text.primary}}),pillText:(0,at.css)({maxWidth:"200px",width:"100%",textOverflow:"ellipsis",overflow:"hidden"}),tooltipText:(0,at.css)({textAlign:"center"}),infoPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer"}),readOnlyPillIcon:(0,at.css)({marginInline:e.spacing(.5)}),matchAllPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer",color:e.colors.text.disabled}),disabledPillIcon:(0,at.css)({marginInline:e.spacing(.5),cursor:"pointer",color:e.colors.text.disabled,"&:hover":{color:e.colors.text.disabled}}),disabledPill:(0,at.css)({background:e.colors.action.selected,color:e.colors.text.disabled,border:0,"&:hover":{background:e.colors.action.selected}}),strikethrough:(0,at.css)({textDecoration:"line-through"})}),ts=(0,d.forwardRef)(function({model:e},t){const{_wip:n}=e.useState();return(0,d.useLayoutEffect)(()=>{n||e._addWip()},[n]),h().createElement(Qa,{model:e,filter:n,isAlwaysWip:!0,ref:t})}),ns=(0,d.memo)(function({model:e}){const{originFilters:t,filters:n,readOnly:r}=e.useState(),a=(0,nt.useStyles2)(rs),s=(0,d.useRef)();return h().createElement("div",{className:(0,at.cx)(a.comboboxWrapper,{[a.comboboxFocusOutline]:!r}),onClick:()=>{var e;null==(e=s.current)||e.call(s)}},h().createElement(nt.Icon,{name:"filter",className:a.filterIcon,size:"lg"}),null==t?void 0:t.map((t,n)=>t.origin?h().createElement(Xa,{key:`${n}-${t.key}`,filter:t,model:e,focusOnWipInputRef:s.current}):null),n.filter(e=>!e.hidden).map((t,n)=>h().createElement(Xa,{key:`${n}-${t.key}`,filter:t,model:e,readOnly:r||t.readOnly,focusOnWipInputRef:s.current})),r?null:h().createElement(ts,{model:e,ref:s}))}),rs=e=>({comboboxWrapper:(0,at.css)({display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:e.spacing(1),rowGap:e.spacing(.5),minHeight:e.spacing(4),backgroundColor:e.components.input.background,border:`1px solid ${e.colors.border.strong}`,borderRadius:e.shape.radius.default,paddingInline:e.spacing(1),paddingBlock:e.spacing(.5),flexGrow:1}),comboboxFocusOutline:(0,at.css)({"&:focus-within":{outline:"2px dotted transparent",outlineOffset:"2px",boxShadow:`0 0 0 2px ${e.colors.background.canvas}, 0 0 0px 4px ${e.colors.primary.main}`,transitionTimingFunction:"cubic-bezier(0.19, 1, 0.22, 1)",transitionDuration:"0.2s",transitionProperty:"outline, outline-offset, box-shadow",zIndex:2}}),filterIcon:(0,at.css)({color:e.colors.text.secondary,alignSelf:"center"})}),as=Object.fromEntries(Object.entries(s.scopeFilterOperatorMap).map(([e,t])=>[t,e]));function ss(e){return new Set(["equals","not-equals","one-of","not-one-of"]).has(e)}function is(e){return new Set(["regex-match","regex-not-match"]).has(e)}function os(e,t,n){var r,a;if(!n)return;const i=e.get(n.key);i&&function(e,t){const n=s.scopeFilterOperatorMap[e];if(!ss(n)||!ss(t))return!1;return ls(n,t)}(i.operator,n.operator)?function(e,t){var n,r,a,s;const i=null!=(n=t.values)?n:[t.value];for(const t of i)(null==(r=e.values)?void 0:r.includes(t))||null==(a=e.values)||a.push(t);if(1===(null==(s=e.values)?void 0:s.length))return;"equals"===t.operator&&e.operator===as.equals?e.operator=as["one-of"]:"not-equals"===t.operator&&e.operator===as["not-equals"]&&(e.operator=as["not-one-of"])}(i,n):i&&function(e,t){const n=s.scopeFilterOperatorMap[e];if(!is(n)||!is(t))return!1;return ls(n,t)}(i.operator,n.operator)?(i.value+=`|${n.value}`,i.values=[i.value]):i?t.push({key:n.key,operator:as[n.operator],value:n.value,values:null!=(a=n.values)?a:[n.value],origin:"scope"}):e.set(n.key,{key:n.key,operator:as[n.operator],value:n.value,values:null!=(r=n.values)?r:[n.value],origin:"scope"})}function ls(e,t){return!(e.includes("not")&&!t.includes("not")||!e.includes("not")&&t.includes("not"))}const us=[{value:"=",description:"Equals"},{value:"!=",description:"Not equal"},{value:"=|",description:"One of. Use to filter on multiple values.",isMulti:!0},{value:"!=|",description:"Not one of. Use to exclude multiple values.",isMulti:!0},{value:"=~",description:"Matches regex",isRegex:!0},{value:"!~",description:"Does not match regex",isRegex:!0},{value:"<",description:"Less than"},{value:"<=",description:"Less than or equal to"},{value:">",description:"Greater than"},{value:">=",description:"Greater than or equal to"}];class ds extends Y{constructor(e){var t,n,r,a,s;super({type:"adhoc",name:null!=(t=e.name)?t:"Filters",filters:[],datasource:null,applyMode:"auto",filterExpression:null!=(a=e.filterExpression)?a:cs(e.expressionBuilder,[...null!=(n=e.originFilters)?n:[],...null!=(r=e.filters)?r:[]]),...e}),this._scopedVars={__sceneObject:Ft(this)},this._dataSourceSrv=(0,i.getDataSourceSrv)(),this._originalValues=new Map,this._prevScopes=[],this._variableDependency=new Fs(this,{dependsOnScopes:!0,onReferencedVariableValueChanged:()=>this._updateScopesFilters()}),this._urlSync=new tn(this),this._debouncedVerifyApplicability=(0,A.debounce)(this._verifyApplicability,100),this._activationHandler=()=>(this._debouncedVerifyApplicability(),()=>{var e;null==(e=this.state.originFilters)||e.forEach(e=>{e.restorable&&this.restoreOriginalFilter(e)})}),"auto"===this.state.applyMode&&function(e){if(e.addActivationHandler(()=>(et.add(e),()=>et.delete(e))),Xe)return;const t=(0,i.getTemplateSrv)();(null==t?void 0:t.getAdhocFilters)&&(Xe=t.getAdhocFilters,t.getAdhocFilters=function(e){var n;if(0===et.size)return Xe.call(t,e);const r=(0,i.getDataSourceSrv)().getInstanceSettings(e);if(!r)return[];for(const e of et.values())if((null==(n=e.state.datasource)?void 0:n.uid)===r.uid)return e.state.filters;return[]}.bind(t))}(this),null==(s=this.state.originFilters)||s.forEach(e=>{var t;this._originalValues.set(`${e.key}-${e.origin}`,{operator:e.operator,value:null!=(t=e.values)?t:[e.value]})}),this.addActivationHandler(this._activationHandler)}_updateScopesFilters(){var e,t;const n=hi.getScopes(this);if(!n||!n.length)return void this.setState({originFilters:null==(e=this.state.originFilters)?void 0:e.filter(e=>"scope"!==e.origin)});const r=function(e){const t=new Map,n=[],r=e.flatMap(e=>e.spec.filters);for(const e of r)os(t,n,e);return[...t.values(),...n]}(n);if(!r.length)return;let a=r;const s=[],i=[];if(a.forEach(e=>{var t;this._originalValues.set(`${e.key}-${e.origin}`,{value:null!=(t=e.values)?t:[e.value],operator:e.operator})}),null==(t=this.state.originFilters)||t.forEach(e=>{"scope"===e.origin?s.push(e):i.push(e)}),this._prevScopes.length)return this.setState({originFilters:[...a,...i]}),this._prevScopes=n,void this._debouncedVerifyApplicability();const o=s.filter(e=>e.restorable),l=o.map(e=>e.key),u=r.map(e=>e.key);a=[...o.filter(e=>u.includes(e.key)),...r.filter(e=>!l.includes(e.key))],this.setState({originFilters:[...a,...i]}),this._prevScopes=n,this._debouncedVerifyApplicability()}setState(e){var t,n;let r=!1;if((e.filters&&e.filters!==this.state.filters||e.originFilters&&e.originFilters!==this.state.originFilters)&&!e.filterExpression){const a=null!=(t=e.filters)?t:this.state.filters,s=null!=(n=e.originFilters)?n:this.state.originFilters;e.filterExpression=cs(this.state.expressionBuilder,[...null!=s?s:[],...a]),r=e.filterExpression!==this.state.filterExpression}super.setState(e),r&&this.publishEvent(new ie(this),!0)}updateFilters(e,t){var n;let r,a=!1;e&&e!==this.state.filters&&(r=cs(this.state.expressionBuilder,[...null!=(n=this.state.originFilters)?n:[],...e]),a=r!==this.state.filterExpression),super.setState({filters:e,filterExpression:r}),(a&&!0!==(null==t?void 0:t.skipPublish)||(null==t?void 0:t.forcePublish))&&this.publishEvent(new ie(this),!0)}restoreOriginalFilter(e){const t={matchAllFilter:!1,restorable:!1};if(e.restorable){const n=this._originalValues.get(`${e.key}-${e.origin}`);if(!n)return;t.value=null==n?void 0:n.value[0],t.values=null==n?void 0:n.value,t.valueLabels=null==n?void 0:n.value,t.operator=null==n?void 0:n.operator,t.nonApplicable=null==n?void 0:n.nonApplicable;const r=N(this);null==r||r.startProfile("filter_restored"),this._updateFilter(e,t)}}getValue(){return this.state.filterExpression}_updateFilter(e,t){var n;const{originFilters:r,filters:a,_wip:s}=this.state;if(e.origin){const a=this._originalValues.get(`${e.key}-${e.origin}`),s=t.values||(t.value?[t.value]:void 0);s&&!(0,A.isEqual)(s,null==a?void 0:a.value)||t.operator&&t.operator!==(null==a?void 0:a.operator)?t.restorable=!0:s&&(0,A.isEqual)(s,null==a?void 0:a.value)&&(t.restorable=!1);const i=null!=(n=null==r?void 0:r.map(n=>n===e?{...n,...t}:n))?n:[];return void this.setState({originFilters:i})}if(e===s)return void("value"in t&&""!==t.value?(this.setState({filters:[...a,{...s,...t}],_wip:void 0}),this._debouncedVerifyApplicability()):this.setState({_wip:{...e,...t}}));const i=this.state.filters.map(n=>n===e?{...n,...t}:n);this.setState({filters:i})}updateToMatchAll(e){this._updateFilter(e,{operator:"=~",value:".*",values:[".*"],valueLabels:["All"],matchAllFilter:!0,nonApplicable:!1,restorable:!0})}_removeFilter(e){if(e===this.state._wip)return void this.setState({_wip:void 0});const t=N(this);null==t||t.startProfile(Q),this.setState({filters:this.state.filters.filter(t=>t!==e)}),this._debouncedVerifyApplicability()}_removeLastFilter(){const e=this.state.filters.at(-1);e&&this._removeFilter(e)}_handleComboboxBackspace(e){var t;if(this.state.filters.length){let t=this.state.filters.length-1;e!==this.state._wip&&(t=-1),this.setState({filters:this.state.filters.reduce((n,r,a)=>a!==t||r.readOnly?r===e?n:[...n,r]:[...n,{...r,forceEdit:!0}],[])})}else if(null==(t=this.state.originFilters)?void 0:t.length){let t=this.state.originFilters.length-1;e!==this.state._wip&&(t=-1),this.setState({originFilters:this.state.originFilters.reduce((n,r,a)=>a!==t||r.readOnly?r===e?n:[...n,r]:[...n,{...r,forceEdit:!0}],[])})}}async _verifyApplicability(){var e,t,n;const r=[...this.state.filters,...null!=(e=this.state.originFilters)?e:[]],a=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!a||!a.getFiltersApplicability)return;if(!r)return;const s=hi.getTimeRange(this).state.value,i=this.state.useQueriesAsFilterForOptions?Es(this):void 0,o=await a.getFiltersApplicability({filters:r,queries:i,timeRange:s,scopes:hi.getScopes(this),...Pt(this)}),l=new Map;o.forEach(e=>{l.set(`${e.key}${e.origin?`-${e.origin}`:""}`,e)});const u={filters:[...this.state.filters],originFilters:[...null!=(t=this.state.originFilters)?t:[]]};u.filters.forEach(e=>{const t=l.get(e.key);t&&(e.nonApplicable=!t.applicable,e.nonApplicableReason=t.reason)}),null==(n=u.originFilters)||n.forEach(e=>{const t=l.get(`${e.key}-${e.origin}`);if(t){e.matchAllFilter||(e.nonApplicable=!t.applicable,e.nonApplicableReason=t.reason);const n=this._originalValues.get(`${e.key}-${e.origin}`);n&&(n.nonApplicable=!t.applicable,n.nonApplicableReason=null==t?void 0:t.reason)}}),this.setState(u)}async _getKeys(e){var t,n,r,a,s;const i=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,e));if(i&&i.replace)return js(i.values).map(ms);if(this.state.defaultKeys)return this.state.defaultKeys.map(ms);const o=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!o||!o.getTagKeys)return[];const l=null!=(a=null==(r=this.state.originFilters)?void 0:r.filter(e=>!e.nonApplicable))?a:[],u=this.state.filters.filter(t=>t.key!==e&&!t.nonApplicable).concat(null!=(s=this.state.baseFilters)?s:[]).concat(l),d=hi.getTimeRange(this).state.value,c=this.state.useQueriesAsFilterForOptions?Es(this):void 0,h=await o.getTagKeys({filters:u,queries:c,timeRange:d,scopes:hi.getScopes(this),...Pt(this)});Hs(h)&&this.setState({error:h.error.message});let m=js(h);i&&(m=m.concat(js(i.values)));const p=this.state.tagKeyRegexFilter;return p&&(m=m.filter(e=>e.text.match(p))),m.map(ms)}async _getValuesFor(e){var t,n,r,a;const s=await(null==(n=(t=this.state).getTagValuesProvider)?void 0:n.call(t,this,e));if(s&&s.replace)return js(s.values).map(ms);const i=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!i||!i.getTagValues)return[];const o=null!=(a=null==(r=this.state.originFilters)?void 0:r.filter(t=>t.key!==e.key))?a:[],l=this.state.filters.filter(t=>t.key!==e.key).concat(o),u=hi.getTimeRange(this).state.value,d=this.state.useQueriesAsFilterForOptions?Es(this):void 0;let c=hi.getScopes(this);"scope"===e.origin&&(c=null==c?void 0:c.map(t=>({...t,spec:{...t.spec,filters:t.spec.filters.filter(t=>t.key!==e.key)}})));const h=await i.getTagValues({key:e.key,filters:l,timeRange:u,queries:d,scopes:c,...Pt(this)});Hs(h)&&this.setState({error:h.error.message});let m=js(h);return s&&(m=m.concat(js(s.values))),m.map(ms)}_addWip(){this.setState({_wip:{key:"",value:"",operator:"=",condition:""}})}_getOperators(){const{supportsMultiValueOperators:e,allowCustomValue:t=!0}=this.state;return us.filter(({isMulti:n,isRegex:r})=>!(!e&&n)&&!(!t&&r)).map(({value:e,description:t})=>({label:e,value:e,description:t}))}}function cs(e,t){var n;return(null!=e?e:Ds)(null!=(n=null==t?void 0:t.filter(e=>_s(e)))?n:[])}ds.Component=function({model:e}){const{filters:t,readOnly:n,addFilterButtonText:r}=e.useState(),a=(0,nt.useStyles2)(hs);if("combobox"===e.state.layout)return h().createElement(ns,{model:e});return h().createElement("div",{className:a.wrapper},t.filter(e=>!e.hidden).map((t,n)=>h().createElement(h().Fragment,{key:n},h().createElement(Zt,{filter:t,model:e}))),!n&&h().createElement(en,{model:e,key:"'builder",addFilterButtonText:r}))};const hs=e=>({wrapper:(0,at.css)({display:"flex",flexWrap:"wrap",alignItems:"flex-end",columnGap:e.spacing(2),rowGap:e.spacing(1)})});function ms(e){const{text:t,value:n}=e,r={label:String(t),value:String(null!=n?n:t)};return"group"in e&&(r.group=e.group),"meta"in e&&(r.meta=e.meta),r}function ps(e){return"=~"===e.operator&&".*"===e.value}function fs(e){return""!==e.key&&""!==e.operator&&""!==e.value}function _s(e){return!e.nonApplicable}function gs(e){const t=us.find(t=>t.value===e);return!!t&&Boolean(t.isMulti)}class ys{constructor(){this._resultsMap=new Map,this._prevLayers=[]}getMergedStream(e){(function(e,t){if(e.length!==t.length)return!0;for(let n=0;ne.getResultsStream()),n=[];for(const t of e)n.push(t.activate());return(0,m.merge)(t).pipe((0,m.mergeAll)(),(0,m.filter)(e=>this._resultsMap.get(e.origin.state.key)!==e),(0,m.map)(e=>(this._resultsMap.set(e.origin.state.key,e),this._resultsMap.values())),(0,m.finalize)(()=>{n.forEach(e=>e())}))}}let vs=100;function bs(){return"SQR"+vs++}class Ms extends Y{constructor(e){super(e),this._dataLayersMerger=new ys,this._variableValueRecorder=new Ge,this._results=new m.ReplaySubject(1),this._scopedVars={__sceneObject:Ft(this)},this._variableDependency=new Fs(this,{statePaths:["queries","datasource","minInterval"],onVariableUpdateCompleted:this.onVariableUpdatesCompleted.bind(this),onAnyVariableChanged:this.onAnyVariableChanged.bind(this),dependsOnScopes:!0}),this.onDataReceived=e=>{const t=(0,s.preProcessPanelData)(e,this.state.data);this._resultAnnotations=e.annotations;const n=this._combineDataLayers(t);let r=this.state._hasFetchedData;r||t.state===F.Loading||(r=!0),this.setState({data:n,_hasFetchedData:r}),this._results.next({origin:this,data:n})},this.addActivationHandler(()=>this._onActivate())}getResultsStream(){return this._results}_onActivate(){if(this.isQueryModeAuto()){const e=hi.getTimeRange(this),t=this.getClosestExtraQueryProviders();for(const e of t)this._subs.add(e.subscribeToState((t,n)=>{e.shouldRerun(n,t,this.state.queries)&&this.runQueries()}));this.subscribeToTimeRangeChanges(e),this.shouldRunQueriesOnActivate()&&this.runQueries()}return this._dataLayersSub||this._handleDataLayers(),()=>this._onDeactivate()}_handleDataLayers(){const e=hi.getDataLayers(this);0!==e.length&&(this._dataLayersSub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayersReceived.bind(this)))}_onLayersReceived(e){var t,n,r,a,i;const o=hi.getTimeRange(this),{dataLayerFilter:l}=this.state;let u,d=[],c=[];for(const r of e)for(let e of r.data.series)(null==(t=e.meta)?void 0:t.dataTopic)===s.DataTopic.Annotations&&(d=d.concat(e)),(null==(n=e.meta)?void 0:n.dataTopic)===s.DataTopic.AlertStates&&(c=c.concat(e));if((null==l?void 0:l.panelId)&&(d.length>0&&(d=function(e,t){var n;if(!Array.isArray(e)||0===e.length)return e;const r=Array.from({length:e.length},()=>new Set);let a=0;for(const s of e){for(let e=0;e"panelId"===e.name),l=s.fields.find(e=>"source"===e.name);if(l){o&&"dashboard"===l.values[e].type&&(i=[t.panelId,Qe].includes(o.values[e]));const r=l.values[e].filter;if(r){const e=[...null!=(n=r.ids)?n:[],Qe].includes(t.panelId);r.exclude?e&&(i=!1):e||(i=!1)}}i&&r[a].add(e)}a++}const s=[];a=0;for(const t of e){const e=r[a].size,n=[];for(const e of t.fields){const s=[];for(let n=0;n0))for(const e of c){const t=new s.DataFrameView(e);for(const e of t)if(e.panelId===l.panelId){u=e;break}}if(Ls(d)&&Ls(this._layerAnnotations)&&(0,A.isEqual)(u,null==(r=this.state.data)?void 0:r.alertState))return;this._layerAnnotations=d;const h=this.state.data?this.state.data:{...V,timeRange:o.state.value};this.setState({data:{...h,annotations:[...null!=(a=this._resultAnnotations)?a:[],...d],alertState:null!=u?u:null==(i=this.state.data)?void 0:i.alertState}})}onVariableUpdatesCompleted(){this.isQueryModeAuto()&&this.runQueries()}onAnyVariableChanged(e){this._adhocFiltersVar!==e&&this._groupByVar!==e&&this.isQueryModeAuto()&&(e instanceof ds&&this._isRelevantAutoVariable(e)&&this.runQueries(),e instanceof zt&&this._isRelevantAutoVariable(e)&&this.runQueries())}_isRelevantAutoVariable(e){var t,n;const r=null!=(t=this.state.datasource)?t:ws(this.state.queries);return"auto"===e.state.applyMode&&(null==r?void 0:r.uid)===(null==(n=e.state.datasource)?void 0:n.uid)}shouldRunQueriesOnActivate(){return this._variableValueRecorder.hasDependenciesChanged(this)?(j(),!0):!this.state.data||!!this._isDataTimeRangeStale(this.state.data)}_isDataTimeRangeStale(e){const t=hi.getTimeRange(this).state.value,n=e.timeRange;return(t.from.unix()!==n.from.unix()||t.to.unix()!==n.to.unix())&&(j(),!0)}_onDeactivate(){var e;this._querySub&&(this._querySub.unsubscribe(),this._querySub=void 0),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),null==(e=this._timeSub)||e.unsubscribe(),this._timeSub=void 0,this._timeSubRange=void 0,this._adhocFiltersVar=void 0,this._groupByVar=void 0}setContainerWidth(e){!this._containerWidth&&e>0?(this._containerWidth=e,this.state.maxDataPointsFromWidth&&!this.state.maxDataPoints&&setTimeout(()=>{this.isActive&&!this.state._hasFetchedData&&this.runQueries()},0)):e>0&&(this._containerWidth=e)}isDataReadyToDisplay(){return Boolean(this.state._hasFetchedData)}subscribeToTimeRangeChanges(e){this._timeSubRange!==e&&(this._timeSub&&this._timeSub.unsubscribe(),this._timeSubRange=e,this._timeSub=e.subscribeToState(()=>{this.runWithTimeRange(e)}))}runQueries(){const e=hi.getTimeRange(this);this.isQueryModeAuto()&&this.subscribeToTimeRangeChanges(e),this.runWithTimeRange(e)}getMaxDataPoints(){var e;return this.state.maxDataPoints?this.state.maxDataPoints:this.state.maxDataPointsFromWidth&&null!=(e=this._containerWidth)?e:500}cancelQuery(){var e;null==(e=this._querySub)||e.unsubscribe(),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),this.setState({data:{...this.state.data,state:F.Done}})}async runWithTimeRange(e){var t,n,r;if(!this.state.maxDataPoints&&this.state.maxDataPointsFromWidth&&!this._containerWidth)return;if(this._dataLayersSub||this._handleDataLayers(),null==(t=this._querySub)||t.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())return j(),void this.setState({data:{...null!=(n=this.state.data)?n:V,state:F.Loading}});this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this);const{queries:a}=this.state;if(null==a?void 0:a.length)try{const t=null!=(r=this.state.datasource)?r:ws(a),n=await qe(t,this._scopedVars);this.findAndSubscribeToAdHocFilters(n.uid);const s=(0,i.getRunRequest)(),{primary:o,secondaries:l,processors:u}=this.prepareRequests(e,n);j(0,0,this.state.key);let d=s(n,o);if(l.length>0){const e=l.map(e=>s(n,e)),t=(e=>t=>t.pipe((0,m.mergeMap)(([t,...n])=>{const r=n.flatMap(n=>{var r,a;return null!=(a=null==(r=e.get(n.request.requestId))?void 0:r(t,n))?a:(0,m.of)(n)});return(0,m.forkJoin)([(0,m.of)(t),...r])}),(0,m.map)(([e,...t])=>{var n;return{...e,series:[...e.series,...t.flatMap(e=>e.series)],annotations:[...null!=(n=e.annotations)?n:[],...t.flatMap(e=>{var t;return null!=(t=e.annotations)?t:[]})]}})))(u);d=(0,m.forkJoin)([d,...e]).pipe(t)}d=d.pipe(Be({type:"SceneQueryRunner/runQueries",request:o,origin:this,cancel:()=>this.cancelQuery()})),this._querySub=d.subscribe(this.onDataReceived)}catch(e){console.error("PanelQueryRunner Error",e),this.onDataReceived({...V,...this.state.data,state:F.Error,errors:[(0,i.toDataQueryError)(e)]})}else this._setNoDataState()}clone(e){var t;const n=super.clone(e);return this._resultAnnotations&&(n._resultAnnotations=this._resultAnnotations.map(e=>({...e}))),this._layerAnnotations&&(n._layerAnnotations=this._layerAnnotations.map(e=>({...e}))),n._variableValueRecorder=this._variableValueRecorder.cloneAndRecordCurrentValuesForSceneObject(this),n._containerWidth=this._containerWidth,n._results.next({origin:this,data:null!=(t=this.state.data)?t:V}),n}prepareRequests(e,t){var n,r;const{minInterval:a,queries:o}=this.state;let l={app:"scenes",requestId:bs(),timezone:e.getTimeZone(),range:e.state.value,interval:"1s",intervalMs:1e3,targets:(0,A.cloneDeep)(o),maxDataPoints:this.getMaxDataPoints(),scopedVars:this._scopedVars,startTime:Date.now(),liveStreaming:this.state.liveStreaming,rangeRaw:{from:e.state.from,to:e.state.to},cacheTimeout:this.state.cacheTimeout,queryCachingTTL:this.state.queryCachingTTL,scopes:hi.getScopes(this),...Ze(this)};this._adhocFiltersVar&&(l.filters=[...null!=(n=this._adhocFiltersVar.state.originFilters)?n:[],...this._adhocFiltersVar.state.filters].filter(e=>fs(e)&&_s(e))),this._groupByVar&&(l.groupByKeys=this._groupByVar.state.value),l.targets=l.targets.map(e=>{var n;return e.datasource&&(e.datasource.uid===t.uid||(null==(n=t.meta)?void 0:n.mixed)||!i.isExpressionReference||(0,i.isExpressionReference)(e.datasource))||(e.datasource=t.getRef()),e});const u=a?li(this,a):t.interval,d=s.rangeUtil.calculateInterval(e.state.value,l.maxDataPoints,u);l.scopedVars=Object.assign({},l.scopedVars,{__interval:{text:d.interval,value:d.interval},__interval_ms:{text:d.intervalMs.toString(),value:d.intervalMs}}),l.interval=d.interval,l.intervalMs=d.intervalMs;const c=e.state.value;let h=[],m=new Map;for(const e of null!=(r=this.getClosestExtraQueryProviders())?r:[])for(const{req:t,processor:n}of e.getExtraQueries(l)){const e=bs();h.push({...t,requestId:e}),m.set(e,null!=n?n:Ke)}return l.range=c,{primary:l,secondaries:h,processors:m}}_combineDataLayers(e){return this._layerAnnotations&&this._layerAnnotations.length>0&&(e.annotations=(e.annotations||[]).concat(this._layerAnnotations)),this.state.data&&this.state.data.alertState&&(e.alertState=this.state.data.alertState),e}_setNoDataState(){this.state.data!==V&&this.setState({data:V})}getClosestExtraQueryProviders(){const e=new Map;return this.parent?($(this.parent,t=>(Je(t)&&!e.has(t.constructor)&&e.set(t.constructor,t),t.forEachChild(t=>{Je(t)&&!e.has(t.constructor)&&e.set(t.constructor,t)}),null)),Array.from(e.values())):[]}findAndSubscribeToAdHocFilters(e){const t=function(e){var t;for(const n of et.values())if(li(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._adhocFiltersVar!==t&&(this._adhocFiltersVar=t,this._updateExplicitVariableDependencies());const n=function(e){var t;for(const n of tt.values())if(li(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._groupByVar!==n&&(this._groupByVar=n,this._updateExplicitVariableDependencies())}_updateExplicitVariableDependencies(){const e=[];this._adhocFiltersVar&&e.push(this._adhocFiltersVar.state.name),this._groupByVar&&e.push(this._groupByVar.state.name),this._variableDependency.setVariableNames(e)}isQueryModeAuto(){var e;return"auto"===(null!=(e=this.state.runQueriesMode)?e:"auto")}}function ws(e){var t,n;return null!=(n=null==(t=e.find(e=>null!==e.datasource))?void 0:t.datasource)?n:void 0}function Ls(e){if(!e)return!0;for(let t=0;t0)return!1;return!0}function Ss(e,t){return e===t||(0,A.isEqual)(e,t)}function ks(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}})())}catch(e){console.error(e)}return""}function Ds(e){return e.map(e=>function(e){var t,n;let r="",a=e.operator;"=|"===a?(a="=~",r=null==(t=e.values)?void 0:t.map(xs).join("|")):"!=|"===a?(a="!~",r=null==(n=e.values)?void 0:n.map(xs).join("|")):r="=~"===a||"!~"===a?xs(e.value):Ts(e.value);return`${e.key}${a}"${r}"`}(e)).join(",")}function Ts(e){return e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/"/g,'\\"')}function xs(e){return Ts(e.replace(Ys,"\\$&"))}const Ys=/[*+?()|\\.\[\]{}^$]/g;function Es(e){var t;const n=hi.findAllObjects(e.getRoot(),e=>e instanceof Ms),r=hi.interpolate(e,null==(t=e.state.datasource)?void 0:t.uid),a=function(e){const t={};for(const n of e)n.state.key&&(n.state.key in t||(t[n.state.key]=[]),t[n.state.key].push(n));return Object.values(t).flatMap(e=>{const t=e.filter(e=>e.isActive);return 0===t.length&&1===e.length?e:t})}(n).filter(t=>{var n;return hi.interpolate(e,null==(n=t.state.datasource)?void 0:n.uid)===r});if(0===a.length)return[];const s=[];return a.forEach(t=>{s.push(...t.state.queries.filter(t=>{if(!t.datasource||!t.datasource.uid)return!0;return hi.interpolate(e,t.datasource.uid)===r}))}),s}function Os(e){return null==e?"":/\|/g[Symbol.replace](e,"__gfp__")}function As(e){return null==e?"":/,/g[Symbol.replace](e,"__gfc__")}function Cs(e){return function(e){return null==e?"":/#/g[Symbol.replace](e,"__gfh__")}(Os(e))}function Rs(e){return null==e?"":(e=/__gfp__/g[Symbol.replace](e,"|"),e=/__gfc__/g[Symbol.replace](e,","),e=/__gfh__/g[Symbol.replace](e,"#"))}function Ps(e,t){return t&&e!==t?[e,t].map(As).join(","):As(e)}function js(e){return Array.isArray(e)?e:e.data}function Hs(e){return!Array.isArray(e)&&Boolean(e.error)}function Ns(e){const t=[],n=new Map;for(const r of e){const e=r.group;if(e){let a=n.get(e);a||(a=[],n.set(e,a),t.push({label:e,options:a})),a.push(r)}else t.push(r)}return t}class Is extends Y{constructor(e){super({type:"constant",value:"",name:"",...e,skipUrlSync:!0}),this._variableDependency=new Fs(this,{statePaths:["value"]}),this._prevValue=""}validateAndUpdate(){const e=this.getValue();return this._prevValue!==e&&(this._prevValue=e,this.publishEvent(new ie(this),!0)),(0,m.of)({})}getValue(){return"string"==typeof this.state.value?hi.interpolate(this,this.state.value):this.state.value}}class Fs{constructor(e,t){this._sceneObject=e,this._options=t,this._dependencies=new Set,this._isWaitingForVariables=!1,this.scanCount=0,this._statePaths=t.statePaths,this._options.handleTimeMacros&&this.handleTimeMacros()}hasDependencyOn(e){return this.getNames().has(e)}variableUpdateCompleted(e,t){var n,r,a,i;const o=this.getNames(),l=(o.has(e.state.name)||o.has(s.DataLinkBuiltInVars.includeVars))&&t;j(0,0,e.state.name,this._isWaitingForVariables),null==(r=(n=this._options).onAnyVariableChanged)||r.call(n,e),this._options.onVariableUpdateCompleted&&(this._isWaitingForVariables||l)&&this._options.onVariableUpdateCompleted(),l&&(null==(i=(a=this._options).onReferencedVariableValueChanged)||i.call(a,e),this._options.onReferencedVariableValueChanged||this._options.onVariableUpdateCompleted||this._sceneObject.forceRender())}hasDependencyInLoadingState(){return this._isWaitingForVariables=hi.hasVariableDependencyInLoadingState(this._sceneObject),this._isWaitingForVariables}getNames(){const e=this._state,t=this._state=this._sceneObject.state;return(!e||t!==e&&(!this._statePaths||this._statePaths.some(n=>"*"===n||t[n]!==e[n])))&&this.scanStateForDependencies(t),this._dependencies}setVariableNames(e){this._options.variableNames=e,this.scanStateForDependencies(this._state)}setPaths(e){this._statePaths=e}scanStateForDependencies(e){if(this._dependencies.clear(),this.scanCount++,this._options.variableNames)for(const e of this._options.variableNames)this._dependencies.add(e);if(this._options.dependsOnScopes&&this._dependencies.add(Te),this._statePaths)for(const t of this._statePaths){if("*"===t){this.extractVariablesFrom(e);break}{const n=e[t];n&&this.extractVariablesFrom(n)}}}extractVariablesFrom(e){ke.lastIndex=0;const t=("string"!=typeof e?ks(e):e).matchAll(ke);if(t)for(const e of t){const[,t,n,,r]=e,a=t||n||r;this._dependencies.add(a)}}handleTimeMacros(){this._sceneObject.addActivationHandler(()=>{const e=hi.getTimeRange(this._sceneObject).subscribeToState((e,t)=>{const n=this.getNames(),r=n.has("__from"),a=n.has("__to"),s=n.has("__timezone");if(e.value!==t.value)if(r){const t=new Is({name:"__from",value:e.from});this.variableUpdateCompleted(t,!0)}else if(a){const t=new Is({name:"__to",value:e.to});this.variableUpdateCompleted(t,!0)}if(e.timeZone!==t.timeZone&&s){const t=new Is({name:"__timezone",value:e.timeZone});this.variableUpdateCompleted(t,!0)}});return()=>e.unsubscribe()})}}const Ws=e=>Boolean(e.metricFindQuery)&&!Boolean(e.variables),Vs=e=>{if(!e.variables)return!1;if(e.variables.getType()!==s.VariableSupportType.Standard)return!1;const t=e.variables;return"toDataQuery"in t&&Boolean(t.toDataQuery)},zs=e=>{if(!e.variables)return!1;if(e.variables.getType()!==s.VariableSupportType.Custom)return!1;const t=e.variables;return"query"in t&&"editor"in t&&Boolean(t.query)&&Boolean(t.editor)},$s=e=>!!e.variables&&e.variables.getType()===s.VariableSupportType.Datasource;class Bs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(Vs(this.datasource))return this.datasource.variables.toDataQuery(function(e){var t;const n=null!=(t=e.state.query)?t:"";if("string"==typeof n)return{query:n,refId:`variable-${e.state.name}`};if(null==n.refId)return{...n,refId:`variable-${e.state.name}`};return e.state.query}(e));throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return Vs(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):Js()}}class Us{constructor(e){this.datasource=e}getTarget(e){if(Ws(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest({variable:e,searchFilter:t},n){return Ws(this.datasource)?(0,m.from)(this.datasource.metricFindQuery(e.state.query,{...n,variable:{name:e.state.name,type:e.state.type},searchFilter:t})).pipe((0,m.mergeMap)(e=>{if(!e||!e.length)return Js();const t=e;return(0,m.of)({series:t,state:s.LoadingState.Done,timeRange:n.range})})):Js()}}class qs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(zs(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return zs(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):Js()}}class Gs{constructor(e,t=(0,i.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){var t;if($s(this.datasource))return"string"==typeof e.state.query?e.state.query:{...e.state.query,refId:null!=(t=e.state.query.refId)?t:"variable-query"};throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return $s(this.datasource)?this._runRequest(this.datasource,t):Js()}}function Js(){return(0,m.of)({state:s.LoadingState.Done,series:[],timeRange:(0,s.getDefaultTimeRange)()})}let Ks=function(e){if(Vs(e))return new Bs(e,(0,i.getRunRequest)());if(Ws(e))return new Us(e);if(zs(e))return new qs(e);if($s(e))return new Gs(e);throw new Error(`Couldn't create a query runner for datasource ${e.type}`)};const Qs=(e,t)=>{const n=[];let r=null;t.lastIndex=0;do{r=t.exec(e),r&&n.push(r)}while(t.global&&r&&""!==r[0]&&void 0!==r[0]);return n},Zs=(e,t)=>{if(t===s.VariableSort.disabled)return e;switch(t){case s.VariableSort.alphabeticalAsc:e=(0,A.sortBy)(e,"label");break;case s.VariableSort.alphabeticalDesc:e=(0,A.sortBy)(e,"label").reverse();break;case s.VariableSort.numericalAsc:e=(0,A.sortBy)(e,Xs);break;case s.VariableSort.numericalDesc:e=(e=(0,A.sortBy)(e,Xs)).reverse();break;case s.VariableSort.alphabeticalCaseInsensitiveAsc:e=(0,A.sortBy)(e,e=>(0,A.toLower)(e.label));break;case s.VariableSort.alphabeticalCaseInsensitiveDesc:e=(e=(0,A.sortBy)(e,e=>(0,A.toLower)(e.label))).reverse();break;case s.VariableSort.naturalAsc||7:e=ti(e);break;case s.VariableSort.naturalDesc||8:e=(e=ti(e)).reverse()}return e};function Xs(e){if(!e.label)return-1;const t=e.label.match(/.*?(\d+).*/);return!t||t.length<2?-1:parseInt(t[1],10)}const ei=new Intl.Collator(void 0,{sensitivity:"accent",numeric:!0});function ti(e){return e.slice().sort((e,t)=>ei.compare(e.label,t.label))}function ni(){return e=>e.pipe((0,m.map)(e=>{const t=e.series;if(!t||!t.length)return[];if(function(e){if(!e)return!1;if(!e.length)return!0;const t=e[0];if((0,s.isDataFrame)(t))return!1;for(const e in t){if(!t.hasOwnProperty(e))continue;if(null!==t[e]&&"string"!=typeof t[e]&&"number"!=typeof t[e])continue;const n=e.toLowerCase();if("text"===n||"value"===n)return!0}return!1}(t))return t;if(0===t[0].fields.length)return[];const n=(0,s.getProcessedDataFrames)(t),r=[];let a=-1,i=-1,o=-1,l=-1;for(const e of n)for(let n=0;n{ks(this.state.query).indexOf(De)>-1&&this._updateOptionsBasedOnSearchFilter(e)},this._updateOptionsBasedOnSearchFilter=(0,A.debounce)(async e=>{const t=await(0,m.lastValueFrom)(this.getValueOptions({searchFilter:e}));this.setState({options:t,loading:!1})},400)}getValueOptions(e){return this.state.query?(this.setState({loading:!0,error:null}),(0,m.from)(qe(this.state.datasource,{__sceneObject:Ft(this)})).pipe((0,m.mergeMap)(t=>{const n=Ks(t),r=n.getTarget(this),a=this.getRequest(r,e.searchFilter);return n.runRequest({variable:this,searchFilter:e.searchFilter},a).pipe(Be({type:"QueryVariable/getValueOptions",request:a,origin:this}),(0,m.filter)(e=>e.state===s.LoadingState.Done||e.state===s.LoadingState.Error),(0,m.take)(1),(0,m.mergeMap)(e=>e.state===s.LoadingState.Error?(0,m.throwError)(()=>e.error):(0,m.of)(e)),ni(),(0,m.mergeMap)(e=>{let t="";this.state.regex&&(t=hi.interpolate(this,this.state.regex,void 0,"regex"));let n=function(e,t,n){var r,a,i,o,l,u,d,c,h,m;let p,f=[];e&&(p=(0,s.stringToJsRegex)(e));for(let e=0;ee.groups&&e.groups.value),n=e.find(e=>e.groups&&e.groups.text),r=e.find(e=>e.length>1),a=e.length>1&&r;if(t||n)_=null!=(d=null==(l=null==t?void 0:t.groups)?void 0:l.value)?d:null==(u=null==n?void 0:n.groups)?void 0:u.text,s=null!=(m=null==(c=null==n?void 0:n.groups)?void 0:c.text)?m:null==(h=null==t?void 0:t.groups)?void 0:h.value;else{if(a){for(let t=0;t!e.find(e=>e.value===t.value)),"after"===this.state.staticOptionsOrder?n.push(...e):"sorted"===this.state.staticOptionsOrder?n=Zs(n.concat(e),this.state.sort):n.unshift(...e)}return(0,m.of)(n)}),(0,m.catchError)(e=>e.cancelled?(0,m.of)([]):(0,m.throwError)(()=>e)))}))):(0,m.of)([])}getRequest(e,t){const n={__sceneObject:Ft(this)};t&&(n.__searchFilter={value:t,text:t});const r=hi.getTimeRange(this).state.value;return{app:s.CoreApp.Dashboard,requestId:b(),timezone:"",range:r,interval:"",intervalMs:0,targets:[e],scopedVars:n,startTime:Date.now()}}}ri.Component=({model:e})=>h().createElement(At,{model:e});var ai=n(2245);class si extends Y{constructor(e){super({skipUrlSync:!0,loading:!0,scopes:[],...e,type:"system",name:Te,hide:ai.zL.hideVariable}),this._renderBeforeActivation=!0,this.UNSAFE_renderAsHidden=!0}getValue(){var e;const t=null!=(e=this.state.scopes)?e:[];return new ii(t.map(e=>e.metadata.name))}getScopes(){return this.state.scopes}setContext(e){if(!e)return;this._context=e;const t=e.state;null!=this.state.enable&&e.setEnabled(this.state.enable);const n=e.stateObservable.subscribe(e=>{this.updateStateFromContext(e)});return()=>{n.unsubscribe(),null!=this.state.enable&&e.setEnabled(t.enabled)}}updateStateFromContext(e){const t=0!==e.value.length&&e.loading,n=this.state.scopes.map(e=>e.metadata.name),r=e.value.map(e=>e.metadata.name),a=!(0,A.isEqual)(n,r);if(t||!a&&0!==r.length)this.setState({loading:t});else{const n=N(this);null==n||n.startProfile("scopes_changed"),this.setState({scopes:e.value,loading:t}),this.publishEvent(new ie(this),!0)}}}si.Component=function({model:e}){const t=(0,d.useContext)(i.ScopesContext);return(0,d.useEffect)(()=>e.setContext(t),[t,e]),null};class ii{constructor(e){this._value=e}formatter(e){return e===I.$m.QueryParam?this._value.map(e=>`scope=${encodeURIComponent(e)}`).join("&"):this._value.join(", ")}}function oi(e){var t;return null!=(t=$(e,e=>e.state.$data))?t:ne}function li(e,t,n,r,a){return""===t||null==t?"":We(e,t,n,r,a)}function ui(e,t,n,r){if(t(e))return e;let a=null;return e.forEachChild(e=>{if(e===n)return;let r=ui(e,t);return r?(a=r,!1):void 0}),a||(r&&e.parent?ui(e.parent,t,e,!0):null)}function di(e,t){return ui(e,t,void 0,!0)}function ci(e,t){const n=[];return e.forEachChild(e=>{t(e)&&n.push(e),n.push(...ci(e,t))}),n}const hi={getVariables:function(e){var t;return null!=(t=$(e,e=>e.state.$variables))?t:ae},getData:oi,getTimeRange:se,getLayout:function(e){const t=$(e,e=>function(e){return"isDraggable"in e}(e)?e:void 0);return t||null},getDataLayers:function(e,t=!1){let n=e,r=[];for(;n;){const e=n.state.$data;if(e){if($e(e)?r=r.concat(e):e.state.$data&&$e(e.state.$data)&&(r=r.concat(e.state.$data)),t&&r.length>0)break;n=n.parent}else n=n.parent}return r},interpolate:li,lookupVariable:P,hasVariableDependencyInLoadingState:function(e){if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){if(e instanceof ri&&e.state.name===t){console.warn("Query variable is referencing itself");continue}const n=P(t,e);if(!n)continue;if(n.parent.isVariableLoadingOrWaitingToUpdate(n))return!0}return!1},findByKey:function(e,t){const n=di(e,e=>e.state.key===t);if(!n)throw new Error("Unable to find scene with key "+t);return n},findByKeyAndType:function(e,t,n){const r=di(e,e=>e.state.key===t);if(!r)throw new Error("Unable to find scene with key "+t);if(!(r instanceof n))throw new Error(`Found scene object with key ${t} does not match type ${n.name}`);return r},findObject:di,findAllObjects:ci,getAncestor:function(e,t){let n=e;for(;n;){if(n instanceof t)return n;n=n.parent}if(!n)throw new Error("Unable to find parent of type "+t.name);return n},getQueryController:N,findDescendents:function(e,t){function n(e){return e instanceof t}return ci(e,n).filter(n)},getScopes:function(e){const t=P(Te,e);if(t instanceof si)return t.state.scopes}},mi=["from","to","timezone"];class pi{constructor(e){this.index=new Map,this.options={namespace:(null==e?void 0:e.namespace)||"",excludeFromNamespace:(null==e?void 0:e.excludeFromNamespace)||mi}}getOptions(){return this.options}getNamespacedKey(e){return this.options.namespace&&!this.options.excludeFromNamespace.includes(e)?`${this.options.namespace}-${e}`:e}getUniqueKey(e,t){const n=this.getNamespacedKey(e),r=this.index.get(n);if(!r)return this.index.set(n,[t]),n;let a=r.findIndex(e=>e===t);return-1===a&&(!function(e){for(const t of e)if(fi(t)){const n=e.indexOf(t);e.splice(n,1)}}(r),r.push(t),a=r.length-1),a>0?`${n}-${a+1}`:n}clear(){this.index.clear()}}function fi(e){const t=e.getRoot();return!hi.findObject(t,t=>t===e)}function _i(e,t){const n=new pi(t),r={},a=e=>{if(e.urlSync){const t=e.urlSync.getUrlState();for(const[a,s]of Object.entries(t))if(null!=s){const t=n.getUniqueKey(a,e);r[t]=s}}e.forEachChild(a)};return a(e),r}function gi(e,t,n,r){r||yi(e,t,n),e.forEachChild(e=>{yi(e,t,n)}),e.forEachChild(e=>gi(e,t,n,!0))}function yi(e,t,n){if(e.urlSync){const r={},a=e.urlSync.getUrlState();for(const s of e.urlSync.getKeys()){const i=n.getUniqueKey(s,e),o=t.getAll(i),l=a[s];vi(o,l)||(o.length>0?Array.isArray(l)?r[s]=o:r[s]=o[0]:r[s]=null)}Object.keys(r).length>0&&e.urlSync.updateFromUrl(r)}}function vi(e,t){return 0===e.length&&null==t||(Array.isArray(t)||1!==(null==e?void 0:e.length)?0===(null==t?void 0:t.length)&&null===e||(0,A.isEqual)(e,t):t===e[0])}class bi extends Y{constructor(e){super({type:"system",value:"",text:"",name:"",...e,skipUrlSync:!0})}getValue(){return this.state.value}getValueText(){return this.state.text.toString()}isAncestorLoading(){var e,t;const n=null==(t=null==(e=this.parent)?void 0:e.parent)?void 0:t.parent;if(!n)throw new Error("LocalValueVariable requires a parent SceneVariableSet that has an ancestor SceneVariableSet");const r=hi.getVariables(n),a=hi.lookupVariable(this.state.name,n);return!(!r||!a)&&r.isVariableLoadingOrWaitingToUpdate(a)}}function Mi(e){let t,n=`panel-${e.getLegacyPanelId()}`,r=e;for(;r;){const e=r.state.$variables;e&&e.state.variables.forEach(e=>{e.state.name!==t&&e instanceof bi&&(n=`${e.state.value}$${n}`,t=e.state.name)}),r=r.parent}return n}var wi=n(6145);class Li extends Y{constructor(e){super({...e,sync:e.sync||wi.yV.Off}),this.getEventsBus=e=>{if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return new Si(this.parent,e)}}getEventsScope(){if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return this.state.key}}class Si{constructor(e,t){this._source=e,this._eventsOrigin=t}publish(e){e.origin=this,this._eventsOrigin.publishEvent(e,!0)}getStream(e){return new m.Observable(t=>{const n=this._source.subscribeToEvent(e,e=>{t.next(e)});return()=>n.unsubscribe()})}subscribe(e,t){return this.getStream(e).pipe().subscribe(t)}removeAllListeners(){}newScopedBus(e,t){throw new Error("For internal use only")}}var ki=function(){};var Di="undefined"!=typeof window;const Ti=Di?d.useLayoutEffect:d.useEffect;var xi={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const Yi=Di&&void 0!==window.ResizeObserver?function(){var e=(0,d.useState)(null),t=e[0],n=e[1],r=(0,d.useState)(xi),a=r[0],s=r[1],i=(0,d.useMemo)(function(){return new window.ResizeObserver(function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,i=t.height,o=t.top,l=t.left,u=t.bottom,d=t.right;s({x:n,y:r,width:a,height:i,top:o,left:l,bottom:u,right:d})}})},[]);return Ti(function(){if(t)return i.observe(t),function(){i.disconnect()}},[t]),[n,a]}:function(){return[ki,xi]};function Ei({data:e,showAll:t,seriesLimit:n,onShowAllSeries:r}){const a=(0,nt.useStyles2)(Oi),s=null==e?void 0:e.series.length;if(void 0===s||s({timeSeriesDisclaimer:(0,at.css)({label:"time-series-disclaimer",display:"flex",alignItems:"center",gap:e.spacing(1)}),warningMessage:(0,at.css)({display:"flex",alignItems:"center",gap:e.spacing(.5),color:e.colors.warning.main,fontSize:e.typography.bodySmall.fontSize})});function Ai(e,t){if(t)return t;let n=e.error?e.error.message:void 0;return e.errors&&(n=e.errors.map(e=>e.message).join(", ")),n}const Ci=(0,at.css)({position:"relative",width:"100%",height:"100%"}),Ri=(0,at.css)({position:"absolute",width:"100%",height:"100%"}),Pi=e=>({ok:(0,at.css)({color:e.colors.success.text}),pending:(0,at.css)({color:e.colors.warning.text}),alerting:(0,at.css)({color:e.colors.error.text})}),ji="hideSeriesFrom",Hi=(0,s.isSystemOverrideWithRef)(ji);function Ni(e,t=s.ByNamesMatcherMode.exclude,n){return n=null!=n?n:{id:"custom.hideFrom",value:{viz:!0,legend:!1,tooltip:!0}},{__systemRef:ji,matcher:{id:s.FieldMatcherID.byNames,options:{mode:t,names:e,prefix:t===s.ByNamesMatcherMode.exclude?"All except:":void 0,readOnly:!0}},properties:[{...n,value:{viz:!0,legend:!1,tooltip:!0}}]}}const Ii=(e,t,n=s.ByNamesMatcherMode.exclude)=>{const r=e.properties.find(e=>"custom.hideFrom"===e.id),a=Fi(e),i=a.findIndex(e=>e===t);return i<0?a.push(t):a.splice(i,1),Ni(a,n,r)},Fi=e=>{var t;const n=null==(t=e.matcher.options)?void 0:t.names;return Array.isArray(n)?[...n]:[]},Wi=(e,t)=>Fi(e).length===Vi(t).length,Vi=(e,t)=>{const n=new Set;for(const r of e)for(const a of r.fields){if(a.type!==s.FieldType.number)continue;const i=(0,s.getFieldDisplayName)(a,r,e);i!==t&&n.add(i)}return Array.from(n)},zi=(e,t)=>{var n;let r=[];for(const a of e){const e=a.properties.find(e=>"custom.hideFrom"===e.id);if(void 0!==e&&!0===(null==(n=e.value)?void 0:n.legend)){const e=s.fieldMatchers.get(a.matcher.id).get(a.matcher.options);for(const n of t)for(const a of n.fields){if(a.type!==s.FieldType.number)continue;const i=(0,s.getFieldDisplayName)(a,n,t);e(a,n,t)&&r.push(i)}}}return r},$i=(e,t)=>({matcher:{id:s.FieldMatcherID.byName,options:e},properties:[Bi(t)]}),Bi=e=>({id:"color",value:{mode:s.FieldColorModeId.Fixed,fixedColor:e}});class Ui extends Y{constructor(){super(...arguments),this.isDataLayer=!0,this._results=new m.ReplaySubject(1),this._dataLayersMerger=new ys}subscribeToAllLayers(e){e.length>0?this.querySub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayerUpdateReceived.bind(this)):(this._results.next({origin:this,data:V}),this.setStateHelper({data:V}))}_onLayerUpdateReceived(e){var t;let n=[];for(const r of e)(null==(t=r.data)?void 0:t.series)&&(n=n.concat(r.data.series));const r={...V,series:n};this._results.next({origin:this,data:r}),this.setStateHelper({data:r})}getResultsStream(){return this._results}cancelQuery(){var e;null==(e=this.querySub)||e.unsubscribe()}setStateHelper(e){Oe(this,e)}}class qi extends Ui{constructor(e){var t,n;super({name:null!=(t=e.name)?t:"Data layers",layers:null!=(n=e.layers)?n:[]}),this.addActivationHandler(()=>this._onActivate())}_onActivate(){return this._subs.add(this.subscribeToState((e,t)=>{var n;e.layers!==t.layers&&(null==(n=this.querySub)||n.unsubscribe(),this.subscribeToAllLayers(e.layers))})),this.subscribeToAllLayers(this.state.layers),()=>{var e;null==(e=this.querySub)||e.unsubscribe()}}}qi.Component=({model:e})=>{const{layers:t}=e.useState();return h().createElement(h().Fragment,null,t.map(e=>h().createElement(e.Component,{model:e,key:e.state.key})))};class Gi extends Y{constructor(e){super(e),this._results=new m.ReplaySubject(1),this._variableDependency=new Fs(this,{statePaths:["transformations"],onReferencedVariableValueChanged:()=>this.reprocessTransformations()}),this.addActivationHandler(()=>this.activationHandler())}activationHandler(){const e=this.getSourceData();return this._subs.add(e.subscribeToState(e=>this.transform(e.data))),e.state.data&&this.transform(e.state.data),()=>{this._transformSub&&this._transformSub.unsubscribe()}}getSourceData(){if(this.state.$data){if(this.state.$data instanceof qi)throw new Error("SceneDataLayerSet can not be used as data provider for SceneDataTransformer.");return this.state.$data}if(!this.parent||!this.parent.parent)throw new Error("SceneDataTransformer must either have $data set on it or have a parent.parent with $data");return hi.getData(this.parent.parent)}setContainerWidth(e){this.state.$data&&this.state.$data.setContainerWidth&&this.state.$data.setContainerWidth(e)}isDataReadyToDisplay(){const e=this.getSourceData();return!e.isDataReadyToDisplay||e.isDataReadyToDisplay()}reprocessTransformations(){this.transform(this.getSourceData().state.data,!0)}cancelQuery(){var e,t;null==(t=(e=this.getSourceData()).cancelQuery)||t.call(e)}getResultsStream(){return this._results}clone(e){const t=super.clone(e);return this._prevDataFromSource&&(t._prevDataFromSource=this._prevDataFromSource),t}haveAlreadyTransformedData(e){if(!this._prevDataFromSource)return!1;if(e===this._prevDataFromSource)return!0;const{series:t,annotations:n}=this._prevDataFromSource;return e.series===t&&e.annotations===n&&(this.state.data&&e.state!==this.state.data.state&&this.setState({data:{...this.state.data,state:e.state}}),!0)}transform(e,t=!1){var n;if(0===this.state.transformations.length||!e)return this._prevDataFromSource=e,this.setState({data:e}),void(e&&this._results.next({origin:this,data:e}));if(!t&&this.haveAlreadyTransformedData(e))return;let r=this._interpolateVariablesInTransformationConfigs(e);const a=r.filter(e=>!("options"in e)&&!("topic"in e)||(null==e.topic||e.topic===s.DataTopic.Series)).map(e=>"operator"in e?e.operator:e),o=r.filter(e=>("options"in e||"topic"in e)&&e.topic===s.DataTopic.Annotations).map(e=>"operator"in e?e.operator:e);this._transformSub&&this._transformSub.unsubscribe();const l={interpolate:(t,n)=>{var r;return hi.interpolate(this,t,{...null==(r=e.request)?void 0:r.scopedVars,...n})}};let u=[(0,s.transformDataFrame)(a,e.series,l)];e.annotations&&e.annotations.length>0&&o.length>0&&u.push((0,s.transformDataFrame)(o,null!=(n=e.annotations)?n:[])),this._transformSub=(0,m.forkJoin)(u).pipe((0,m.map)(t=>{const n=t[0],r=t[1];return{...e,series:n,annotations:null!=r?r:e.annotations}}),(0,m.catchError)(t=>{var n;console.error("Error transforming data: ",t);const r=(null==(n=this.getSourceData().state.data)?void 0:n.errors)||[],a=(0,i.toDataQueryError)(t);a.message=`Error transforming data: ${a.message}`;const o={...e,state:s.LoadingState.Error,errors:[...r,a]};return(0,m.of)(o)})).subscribe(t=>{this.setState({data:t}),this._results.next({origin:this,data:t}),this._prevDataFromSource=e})}_interpolateVariablesInTransformationConfigs(e){var t;const n=this.state.transformations;if(0===this._variableDependency.getNames().size)return n;return n.every(e=>"object"==typeof e)?JSON.parse(hi.interpolate(this,JSON.stringify(n),null==(t=e.request)?void 0:t.scopedVars)):n.map(t=>{var n;return"object"==typeof t?JSON.parse(hi.interpolate(this,JSON.stringify(t),null==(n=e.request)?void 0:n.scopedVars)):t})}}class Ji extends Y{constructor(e){var t;super({options:{},fieldConfig:{defaults:{},overrides:[]},title:(0,he.t)("grafana-scenes.components.viz-panel.title.title","Title"),pluginId:"timeseries",_renderCounter:0,...e}),this._variableDependency=new Fs(this,{statePaths:["title","options","fieldConfig"]}),this._structureRev=0,this.onTimeRangeChange=e=>{hi.getTimeRange(this).onTimeRangeChange({raw:{from:(0,s.toUtc)(e.from),to:(0,s.toUtc)(e.to)},from:(0,s.toUtc)(e.from),to:(0,s.toUtc)(e.to)})},this.getTimeRange=e=>{const t=hi.findObject(this,e=>e instanceof Qi),n=hi.getTimeRange(this);if(t instanceof Qi&&t.isEnabled)return q(n.state.from,n.state.to,n.getTimeZone(),n.state.fiscalYearStartMonth,n.state.UNSAFE_nowDelay,n.state.weekStart);const r=this.getPlugin();return r&&!r.meta.skipDataQuery&&e&&e.timeRange?e.timeRange:n.state.value},this.onTitleChange=e=>{this.setState({title:e})},this.onDescriptionChange=e=>{this.setState({description:e})},this.onDisplayModeChange=e=>{this.setState({displayMode:e})},this.onToggleCollapse=e=>{this.setState({collapsed:e})},this.onOptionsChange=(e,t=!1,n=!1)=>{var r;const{fieldConfig:a,options:i}=this.state,o=t?e:(0,A.mergeWith)((0,A.cloneDeep)(i),e,(e,t,n,r)=>{if((0,A.isArray)(t))return t;e===t||void 0!==t||(r[n]=t)}),l=(0,s.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:o,currentFieldConfig:a,isAfterPluginChange:n});this.setState({options:l.options,_renderCounter:(null!=(r=this.state._renderCounter)?r:0)+1})},this.onFieldConfigChange=(e,t)=>{const{fieldConfig:n,options:r}=this.state,a=t?e:(0,A.merge)((0,A.cloneDeep)(n),e),i=(0,s.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:r,currentFieldConfig:a,isAfterPluginChange:!1});this._dataWithFieldConfig=void 0,this.setState({fieldConfig:i.fieldConfig})},this.interpolate=(e,t,n)=>hi.interpolate(this,e,t,n),this.getDescription=()=>{this.publishEvent(new S({origin:this,interaction:"panel-description-shown"}),!0);const{description:e}=this.state;if(e){const t=this.interpolate(e);return(0,s.renderMarkdown)(t)}return""},this.onCancelQuery=()=>{var e;this.publishEvent(new S({origin:this,interaction:"panel-cancel-query-clicked"}),!0);const t=hi.getData(this);null==(e=t.cancelQuery)||e.call(t)},this.onStatusMessageClick=()=>{this.publishEvent(new S({origin:this,interaction:"panel-status-message-clicked"}),!0)},this._onSeriesColorChange=(e,t)=>{this.onFieldConfigChange(((e,t,n)=>{const{overrides:r}=n,a=n.overrides.findIndex(t=>t.matcher.id===s.FieldMatcherID.byName&&t.matcher.options===e);if(a<0)return{...n,overrides:[...n.overrides,$i(e,t)]};const i=Array.from(r),o=i[a],l=o.properties.findIndex(e=>"color"===e.id);if(l<0)return i[a]={...o,properties:[...o.properties,Bi(t)]},{...n,overrides:i};const u=Array.from(o.properties);return u[l]=Bi(t),i[a]={...o,properties:u},{...n,overrides:i}})(e,t,this.state.fieldConfig))},this._onSeriesVisibilityChange=(e,t)=>{this._dataWithFieldConfig&&this.onFieldConfigChange(function(e,t,n,r){const{overrides:a}=n,s=e,i=a.findIndex(Hi);if(i<0){if(t===nt.SeriesVisibilityChangeMode.ToggleSelection){const e=Ni([s,...zi(a,r)]);return{...n,overrides:[...n.overrides,e]}}const e=Ni(Vi(r,s));return{...n,overrides:[...n.overrides,e]}}const o=Array.from(a),[l]=o.splice(i,1);if(t===nt.SeriesVisibilityChangeMode.ToggleSelection){let e=Fi(l);const t=zi(o,r);if(t.length>0&&(e=e.filter(e=>t.indexOf(e)<0)),e[0]===s&&1===e.length)return{...n,overrides:o};const a=Ni([s,...t]);return{...n,overrides:[...o,a]}}const u=Ii(l,s);return Wi(u,r)?{...n,overrides:o}:{...n,overrides:[...o,u]}}(e,t,this.state.fieldConfig,this._dataWithFieldConfig.series),!0)},this._onInstanceStateChange=e=>{this._panelContext&&(this._panelContext={...this._panelContext,instanceState:e}),this.setState({_pluginInstanceState:e})},this._onToggleLegendSort=e=>{const t=this.state.options.legend;if(!t)return;let n=t.sortDesc,r=t.sortBy;e!==r&&(n=void 0),!1===n?(r=void 0,n=void 0):(n=!n,r=e),this.onOptionsChange({...this.state.options,legend:{...t,sortBy:r,sortDesc:n}},!0)},this.addActivationHandler(()=>{this._onActivate()}),null==(t=e.menu)||t.addActivationHandler(()=>{this.publishEvent(new S({origin:this,interaction:"panel-menu-shown"}),!0)})}_onActivate(){this._plugin||this._loadPlugin(this.state.pluginId)}forceRender(){var e;this.setState({_renderCounter:(null!=(e=this.state._renderCounter)?e:0)+1})}async _loadPlugin(e,t,n,r){const a=function(e){var t;const{getPanelPluginFromCache:n}=(0,i.getPluginImportUtils)();return null!=(t=n(e))?t:u.get(e)}(e);if(a)this._pluginLoaded(a,t,n,r);else{const{importPanelPlugin:a}=(0,i.getPluginImportUtils)();try{const s=a(e),i=hi.getQueryController(this);i&&i.state.enableProfiling&&Ue(s).pipe(Be({type:`VizPanel/loadPlugin/${e}`,origin:this})).subscribe(()=>{});const o=await s;this._pluginLoaded(o,t,n,r)}catch(t){this._pluginLoaded(function(e){const t=new s.PanelPlugin(()=>null);return t.meta={id:e,name:e,sort:100,type:s.PluginType.panel,module:"",baseUrl:"",info:{author:{name:""},description:"",links:[],logos:{large:"",small:"public/img/grafana_icon.svg"},screenshots:[],updated:"",version:""}},t}(e)),t instanceof Error&&this.setState({_pluginLoadError:t.message})}}}getLegacyPanelId(){var e,t;const n=null!=(t=null==(e=this.state.key)?void 0:e.split("/"))?t:[];if(0===n.length)return 0;const r=n[n.length-1],a=parseInt(r.replace("panel-",""),10);return isNaN(a)?0:a}getPathId(){return Mi(this)}async _pluginLoaded(e,t,n,r){var a;const{options:i,fieldConfig:o,title:l,pluginVersion:u,_UNSAFE_customMigrationHandler:d}=this.state,c={title:l,options:i,fieldConfig:o,id:this.getLegacyPanelId(),type:e.meta.id,pluginVersion:u};t&&(c.options=t),n&&(c.fieldConfig=n);const h=this._getPluginVersion(e);null==d||d(c,e);const m=h!==u||(null==(a=e.shouldMigrate)?void 0:a.call(e,c));e.onPanelMigration&&m&&!r&&(c.options=await e.onPanelMigration(c));let p=this.state.$data;c.transformations&&p&&(p instanceof Gi?p.setState({transformations:c.transformations}):p instanceof Ms&&(p.clearParent(),p=new Gi({transformations:c.transformations,$data:p})));const f=(0,s.getPanelOptionsWithDefaults)({plugin:e,currentOptions:c.options,currentFieldConfig:c.fieldConfig,isAfterPluginChange:null!=r&&r});if(this._plugin=e,this.setState({$data:p,options:f.options,fieldConfig:f.fieldConfig,pluginVersion:h,pluginId:e.meta.id}),e.meta.skipDataQuery){const e=hi.getTimeRange(this);this._subs.add(e.subscribeToState(()=>this.forceRender()))}}_getPluginVersion(e){return e&&e.meta.info.version?e.meta.info.version:i.config.buildInfo.version}getPlugin(){return this._plugin}getPanelContext(){return null!=this._panelContext||(this._panelContext=this.buildPanelContext()),this._panelContext}async changePluginType(e,t,n){var r,a;const{options:s,fieldConfig:i,pluginId:o}=this.state;this._dataWithFieldConfig=void 0;const l=this.state.pluginId!==e;await this._loadPlugin(e,null!=t?t:{},n,l);const u={title:this.state.title,options:this.state.options,fieldConfig:this.state.fieldConfig,id:1,type:e},d=null==(a=null==(r=this._plugin)?void 0:r.onPanelTypeChanged)?void 0:a.call(r,u,o,s,i);d&&!(0,A.isEmpty)(d)&&this.onOptionsChange(d,!0,!0)}clearFieldConfigCache(){this._dataWithFieldConfig=void 0}applyFieldConfig(e){var t,n,r,a;const o=this._plugin;if(!o||o.meta.skipDataQuery||!e)return V;if(this._prevData===e&&this._dataWithFieldConfig)return this._dataWithFieldConfig;const l=o.dataSupport||{alertStates:!1,annotations:!1},u=o.fieldConfigRegistry,d=null!=(n=null==(t=this._dataWithFieldConfig)?void 0:t.series)?n:[],c=(0,s.applyFieldOverrides)({data:e.series,fieldConfig:this.state.fieldConfig,fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:i.config.theme2,timeZone:null==(r=e.request)?void 0:r.timezone});return(0,s.compareArrayValues)(c,d,s.compareDataFrameStructures)||this._structureRev++,this._dataWithFieldConfig={...e,structureRev:this._structureRev,series:c},this._dataWithFieldConfig.annotations&&(this._dataWithFieldConfig.annotations=(0,s.applyFieldOverrides)({data:this._dataWithFieldConfig.annotations,fieldConfig:{defaults:{},overrides:[]},fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:i.config.theme2,timeZone:null==(a=e.request)?void 0:a.timezone})),l.alertStates||(this._dataWithFieldConfig.alertState=void 0),l.annotations||(this._dataWithFieldConfig.annotations=void 0),this._prevData=e,this._dataWithFieldConfig}clone(e){return super.clone({_pluginInstanceState:void 0,_pluginLoadError:void 0,...e})}buildPanelContext(){const e=(t=this,hi.findObject(t,e=>e instanceof Li));var t;const n={eventsScope:e?e.getEventsScope():"__global_",eventBus:e?e.getEventsBus(this):(0,i.getAppEvents)(),app:s.CoreApp.Unknown,sync:()=>e?e.state.sync:s.DashboardCursorSync.Off,onSeriesColorChange:this._onSeriesColorChange,onToggleSeriesVisibility:this._onSeriesVisibilityChange,onToggleLegendSort:this._onToggleLegendSort,onInstanceStateChange:this._onInstanceStateChange};return this.state.extendPanelContext&&this.state.extendPanelContext(this,n),n}}Ji.Component=function({model:e}){var t;const{title:n,options:r,fieldConfig:a,_pluginLoadError:o,displayMode:l,hoverHeader:u,showMenuAlways:c,hoverHeaderOffset:m,menu:p,headerActions:f,titleItems:_,seriesLimit:g,seriesLimitShowAll:y,description:v,collapsible:b,collapsed:M,_renderCounter:w=0}=e.useState(),[L,{width:S,height:k}]=Yi(),D=(0,d.useMemo)(()=>(0,i.getAppEvents)(),[]),T=(0,d.useCallback)(()=>{e.state.key&&D.publish(new s.SetPanelAttentionEvent({panelId:e.getPathId()}))},[e,D]),x=(0,d.useMemo)(()=>(0,A.debounce)(T,100,{leading:!0,trailing:!1}),[T]),Y=e.getPlugin(),{dragClass:E,dragClassCancel:O}=function(e){var t,n;const r=hi.getLayout(e),a=null==r?void 0:r.isDraggable();if(!r||!a||function(e,t){let n=e;for(;n&&n!==t;){if("isDraggable"in n.state&&!1===n.state.isDraggable)return!0;if("repeatSourceKey"in n.state&&n.state.repeatSourceKey)return!0;n=n.parent}return!1}(e,r))return{dragClass:"",dragClassCancel:""};return{dragClass:null==(t=r.getDragClass)?void 0:t.call(r),dragClassCancel:null==(n=null==r?void 0:r.getDragClassCancel)?void 0:n.call(r)}}(e),C=function(e){var t,n;const r=hi.getLayout(e);return null!=(n=null==(t=null==r?void 0:r.getDragHooks)?void 0:t.call(r))?n:{}}(e),R=hi.getData(e),P=R.useState(),j=function(e,t,n){return(0,d.useMemo)(()=>(null==e?void 0:e.series)&&t&&!n?{...e,series:e.series.slice(0,t)}:e,[e,t,n])}(P.data,g,y),H=e.applyFieldConfig(j),N=hi.getTimeRange(e).getTimeZone(),I=e.getTimeRange(H),F=e.interpolate(n,void 0,"text"),W=(0,nt.useStyles2)(Pi);if(!Y)return h().createElement("div",null,h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-renderer.loading-plugin-panel"},"Loading plugin panel..."));if(!Y.panel)return h().createElement("div",null,h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-renderer.panel-plugin-has-no-panel-component"},"Panel plugin has no panel component"));const V=Y.panel;R&&R.setContainerWidth&&R.setContainerWidth(Math.round(S));let z,$,B=[];_&&(Array.isArray(_)?B=B.concat(_.map(e=>h().createElement(e.Component,{model:e,key:`${e.state.key}`}))):Ve(_)?B.push(h().createElement(_.Component,{model:_})):B.push(_)),g&&B.push(h().createElement(Ei,{key:"series-limit",data:P.data,seriesLimit:g,showAll:y,onShowAllSeries:()=>e.setState({seriesLimitShowAll:!y})})),e.state.$timeRange&&B.push(h().createElement(e.state.$timeRange.Component,{model:e.state.$timeRange,key:e.state.key})),H.alertState&&B.push(h().createElement(nt.Tooltip,{content:null!=(t=H.alertState.state)?t:"unknown",key:`alert-states-icon-${e.state.key}`},h().createElement(nt.PanelChrome.TitleItem,{className:(0,at.cx)({[W.ok]:H.alertState.state===s.AlertState.OK,[W.pending]:H.alertState.state===s.AlertState.Pending,[W.alerting]:H.alertState.state===s.AlertState.Alerting})},h().createElement(nt.Icon,{name:"alerting"===H.alertState.state?"heart-break":"heart",className:"panel-alert-icon",size:"md"})))),p&&(z=h().createElement(p.Component,{model:p})),f&&($=Array.isArray(f)?h().createElement(h().Fragment,null,f.map(e=>h().createElement(e.Component,{model:e,key:`${e.state.key}`}))):Ve(f)?h().createElement(f.Component,{model:f}):f);const U=H,q=!R.isDataReadyToDisplay||R.isDataReadyToDisplay(),G=e.getPanelContext(),J=e.getLegacyPanelId();return h().createElement("div",{className:Ci},h().createElement("div",{ref:L,className:Ri,"data-viz-panel-key":e.state.key},S>0&&k>0&&h().createElement(nt.PanelChrome,{title:F,description:(null==v?void 0:v.trim())?e.getDescription:void 0,loadingState:U.state,statusMessage:Ai(U,o),statusMessageOnClick:e.onStatusMessageClick,width:S,height:k,selectionId:e.state.key,displayMode:l,titleItems:B,dragClass:E,actions:$,dragClassCancel:O,padding:Y.noPadding?"none":"md",menu:z,onCancelQuery:e.onCancelQuery,onFocus:T,onMouseEnter:T,onMouseMove:x,onDragStart:t=>{var n;null==(n=C.onDragStart)||n.call(C,t,e)},showMenuAlways:c,...b?{collapsible:Boolean(b),collapsed:M,onToggleCollapse:e.onToggleCollapse}:{hoverHeader:u,hoverHeaderOffset:m}},(t,i)=>h().createElement(h().Fragment,null,h().createElement(nt.ErrorBoundaryAlert,{dependencies:[Y,U]},h().createElement(s.PluginContextProvider,{meta:Y.meta},h().createElement(nt.PanelContextProvider,{value:G},q&&h().createElement(V,{id:J,data:U,title:n,timeRange:I,timeZone:N,options:r,fieldConfig:a,transparent:"transparent"===l,width:t,height:i,renderCounter:w,replaceVariables:e.interpolate,onOptionsChange:e.onOptionsChange,onFieldConfigChange:e.onFieldConfigChange,onChangeTimeRange:e.onTimeRangeChange,eventBus:G.eventBus}))))))))};const Ki=class e extends Y{constructor({enabled:e=!1}){super({enabled:e}),this.timerId=void 0,this._activationHandler=()=>(this.state.enabled&&this.enable(),()=>{window.clearInterval(this.timerId),this.timerId=void 0}),this.addActivationHandler(this._activationHandler)}enable(){window.clearInterval(this.timerId),this.timerId=void 0,this.timerId=window.setInterval(()=>{const e=hi.findAllObjects(this.getRoot(),e=>e instanceof Ji);for(const t of e)t.forceRender()},e.REFRESH_RATE),this.setState({enabled:!0})}disable(){window.clearInterval(this.timerId),this.timerId=void 0,this.setState({enabled:!1})}get isEnabled(){return this.state.enabled}};Ki.REFRESH_RATE=100;let Qi=Ki;function Zi(e){if("string"==typeof e)return e;if(e){if(e instanceof Error)return e.message;if((0,i.isFetchError)(e)){if(e.data&&e.data.message)return e.data.message;if(e.statusText)return e.statusText}else if(e.hasOwnProperty("message"))return e.message}return JSON.stringify(e)}class Xi extends Y{constructor(e,t=[]){super({isEnabled:!0,...e}),this._results=new m.ReplaySubject(1),this.isDataLayer=!0,this._variableValueRecorder=new Ge,this._variableDependency=new Fs(this,{onVariableUpdateCompleted:this.onVariableUpdateCompleted.bind(this),dependsOnScopes:!0}),this._variableDependency.setPaths(t),this.addActivationHandler(()=>this.onActivate())}onActivate(){return this.state.isEnabled&&this.onEnable(),this.shouldRunLayerOnActivate()&&this.runLayer(),this.subscribeToState((e,t)=>{!e.isEnabled&&this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.onDisable(),this._results.next({origin:this,data:V}),this.setStateHelper({data:V})),e.isEnabled&&!t.isEnabled&&(this.onEnable(),this.runLayer())}),()=>{this.onDeactivate()}}onDeactivate(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0),this.onDisable(),this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this)}onVariableUpdateCompleted(){this.runLayer()}cancelQuery(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.publishResults(V))}publishResults(e){this.state.isEnabled&&(this._results.next({origin:this,data:e}),this.setStateHelper({data:e}))}getResultsStream(){return this._results}shouldRunLayerOnActivate(){return!!this.state.isEnabled&&(this._variableValueRecorder.hasDependenciesChanged(this)?(j(),!0):!this.state.data)}setStateHelper(e){Oe(this,e)}}function eo({layer:e}){var t,n;const r=`data-layer-${e.state.key}`,{data:a,isEnabled:s}=e.useState(),i=Boolean(a&&a.state===F.Loading);return h().createElement("div",{className:to},h().createElement(qt,{htmlFor:r,isLoading:i,onCancel:()=>{var t;return null==(t=e.cancelQuery)?void 0:t.call(e)},label:e.state.name,description:e.state.description,error:null==(n=null==(t=e.state.data)?void 0:t.errors)?void 0:n[0].message}),h().createElement(nt.InlineSwitch,{id:r,value:s,onChange:()=>e.setState({isEnabled:!s})}))}(class extends Y{constructor(){super({})}}).Component=function({model:e}){const t=hi.getDataLayers(e,!0);if(0===t.length)return null;return h().createElement(h().Fragment,null,t.map(e=>h().createElement(e.Component,{model:e,key:e.state.key})))};const to=(0,at.css)({display:"flex"});function no(e){return"function"==typeof e}function ro(e){return function(t){if(function(e){return no(null==e?void 0:e.lift)}(t))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw new TypeError("Unable to lift unknown Observable type")}}var ao=function(e,t){return ao=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ao(e,t)};function so(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ao(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var io=function(){return io=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&a[a.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function co(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,s=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}return i}function ho(e,t,n){if(n||2===arguments.length)for(var r,a=0,s=t.length;a1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=a[e](t)).value instanceof mo?Promise.resolve(n.value.v).then(l,u):d(s[0][2],n)}catch(e){d(s[0][3],e)}var n}function l(e){o("next",e)}function u(e){o("throw",e)}function d(e,t){e(t),s.shift(),s.length&&o(s[0][0],s[0][1])}}function fo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=uo(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,a,(t=e[n](t)).done,t.value)})}}}Object.create;"function"==typeof SuppressedError&&SuppressedError;var _o,go=((_o=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}(function(e){Error.call(e),e.stack=(new Error).stack})).prototype=Object.create(Error.prototype),_o.prototype.constructor=_o,_o);function yo(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var vo=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,a;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var i=uo(s),o=i.next();!o.done;o=i.next()){o.value.remove(this)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}else s.remove(this);var l=this.initialTeardown;if(no(l))try{l()}catch(e){a=e instanceof go?e.errors:[e]}var u=this._finalizers;if(u){this._finalizers=null;try{for(var d=uo(u),c=d.next();!c.done;c=d.next()){var h=c.value;try{Mo(h)}catch(e){a=null!=a?a:[],e instanceof go?a=ho(ho([],co(a)),co(e.errors)):a.push(e)}}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=d.return)&&r.call(d)}finally{if(n)throw n.error}}}if(a)throw new go(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)Mo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&yo(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&yo(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();vo.EMPTY;function bo(e){return e instanceof vo||e&&"closed"in e&&no(e.remove)&&no(e.add)&&no(e.unsubscribe)}function Mo(e){no(e)?e():e.unsubscribe()}var wo={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Lo={setTimeout:function(e,t){for(var n=[],r=2;r{if((0,A.isString)(null==e?void 0:e.query)){const{query:t,...n}=e;return{...n,target:{refId:"annotation_query",query:t},mappings:{}}}return e},prepareQuery:e=>e.target,processEvents:(e,t)=>function(e,t){return(0,m.of)(e).pipe(e=>e.pipe(Go(e=>{if(!(null==e?void 0:e.length))return(0,m.of)(void 0);if(1===e.length)return(0,m.of)(e[0]);const t={interpolate:e=>e};return(0,m.of)(e).pipe(s.standardTransformers.mergeTransformer.operator({},t),Io(e=>e[0]))})),Io(e=>{if(!(null==e?void 0:e.length))return[];let n=!1,r=!1;const a={};for(const t of e.fields){a[(0,s.getFieldDisplayName)(t,e).toLowerCase()]=t}t||(t={});const i=[];for(const o of Qo){const l=t[o.key]||{};if(l.source===s.AnnotationEventFieldSource.Skip)continue;const u={key:o.key,split:o.split};if(l.source===s.AnnotationEventFieldSource.Text)u.text=l.value;else{const t=(l.value||o.key).toLowerCase();u.field=a[t],!u.field&&o.field&&(u.field=o.field(e))}(u.field||u.text)&&(i.push(u),"time"===u.key?n=!0:"text"===u.key&&(r=!0))}if(!n||!r)return console.error("Cannot process annotation fields. No time or text present."),[];const o=[];for(let t=0;te.fields.find(e=>e.type===s.FieldType.time),placeholder:"time, or the first time field"},{key:"timeEnd",help:"When this field is defined, the annotation will be treated as a range"},{key:"title"},{key:"text",field:e=>e.fields.find(e=>e.type===s.FieldType.string),placeholder:"text, or the first text field"},{key:"tags",split:",",help:"The results will be split on comma (,)"},{key:"id"}],Qo=[...i.config.publicDashboardAccessToken?[{key:"color"},{key:"isRegion"},{key:"source"}]:[],...Ko,{key:"userId"},{key:"login"},{key:"email"},{key:"prevState"},{key:"newState"},{key:"data"},{key:"panelId"},{key:"alertId"},{key:"dashboardId"},{key:"dashboardUID"}];const Zo=["prometheus","loki","elasticsearch","grafana-opensearch-datasource"];let Xo=100;function el(e,t,n,r){var a;if(e.annotationQuery&&function(e){const{type:t}=e;return!e.annotations||Zo.includes(t)}(e))return console.warn("Using deprecated annotationQuery method, please upgrade your datasource"),(0,m.from)(e.annotationQuery({range:t.state.value,rangeRaw:t.state.value.raw,annotation:n,dashboard:{getVariables:(0,i.getTemplateSrv)().getVariables}})).pipe(Io(e=>({state:F.Done,events:e})));const o={...Jo,...e.annotations},l={...null==(a=o.getDefaultQuery)?void 0:a.call(o),...n},u=o.prepareAnnotation(l);if(!u)return(0,m.of)({state:F.Done,events:[]});const d=o.prepareQuery(u);if(!d)return(0,m.of)({state:F.Done,events:[]});const c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,h=s.rangeUtil.calculateInterval(t.state.value,c,e.interval),p={__interval:{text:h.interval,value:h.interval},__interval_ms:{text:h.intervalMs.toString(),value:h.intervalMs},__annotation:{text:u.name,value:u},__sceneObject:Ft(r)},f={startTime:Date.now(),requestId:"AQ"+Xo++,range:t.state.value,maxDataPoints:c,scopedVars:p,...h,app:s.CoreApp.Dashboard,timezone:t.getTimeZone(),targets:[{...d,refId:"Anno"}],scopes:hi.getScopes(r),...Ze(r)};return(0,i.getRunRequest)()(e,f).pipe(Go(e=>{const t=(null==e?void 0:e.series.length)?e.series:e.annotations;return(null==t?void 0:t.length)?(t.forEach(e=>{var t;(null==(t=e.meta)?void 0:t.dataTopic)||(e.meta={...e.meta||{},dataTopic:s.DataTopic.Annotations})}),o.processEvents(u,t).pipe(Io(t=>({state:e.state,events:t||[]})))):(0,m.of)({state:e.state,events:[]})}))}function tl(e){return"panel-alert"===e.eventType}(class extends Xi{constructor(e){super({isEnabled:!0,...e},["query"]),this._scopedVars={__sceneObject:Ft(this)}}onEnable(){this.publishEvent(new i.RefreshEvent,!0);const e=hi.getTimeRange(this);this.setState({query:{...this.state.query,enable:!0}}),this._timeRangeSub=e.subscribeToState(()=>{this.runWithTimeRange(e)})}onDisable(){var e;this.publishEvent(new i.RefreshEvent,!0),this.setState({query:{...this.state.query,enable:!1}}),null==(e=this._timeRangeSub)||e.unsubscribe()}runLayer(){j();const e=hi.getTimeRange(this);this.runWithTimeRange(e)}async runWithTimeRange(e){const{query:t}=this.state;if(t.enable)if(this.querySub&&this.querySub.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())j();else try{let n=el(await this.resolveDataSource(t),e,t,this).pipe(Be({type:"AnnotationsDataLayer/annotationsLoading",origin:this,cancel:()=>this.cancelQuery()}),(0,m.map)(e=>this.processEvents(t,e)));this.querySub=n.subscribe(e=>{this.publishResults(e)})}catch(e){this.publishResults({...V,state:F.Error,errors:[{message:Zi(e)}]}),console.error("AnnotationsDataLayer error",e)}}async resolveDataSource(e){return await qe(e.datasource||void 0,this._scopedVars)}processEvents(e,t){let n=(r=e,a=t.events||[],r.snapshotData&&delete(r=(0,A.cloneDeep)(r)).snapshotData,a.map(e=>{var t;const n={...e};switch(n.source=r,n.color=i.config.theme2.visualization.getColorByName(r.iconColor),n.type=r.name,n.isRegion=Boolean(n.timeEnd&&n.time!==n.timeEnd),null==(t=n.newState)?void 0:t.toLowerCase()){case"pending":n.color="yellow";break;case"alerting":n.color="red";break;case"ok":case"normal":n.color="green";break;case"no_data":case"nodata":n.color="gray"}return n}));var r,a;n=function(e){let t=[];const n=(0,A.partition)(e,"id"),r=(0,A.groupBy)(n[0],"id");return t=(0,A.map)(r,e=>e.length>1&&!(0,A.every)(e,tl)?(0,A.find)(e,e=>"panel-alert"!==e.eventType):(0,A.head)(e)),t=(0,A.concat)(t,n[1]),t}(n);const o={...V,state:t.state},l=(0,s.arrayToDataFrame)(n);return l.meta={...l.meta,dataTopic:s.DataTopic.Annotations},o.series=[l],o}}).Component=function({model:e}){const{isHidden:t}=e.useState();if(t)return null;return h().createElement(eo,{layer:e})};function nl({variable:e,layout:t,showAlways:n,hideLabel:r}){return E(e,{shouldActivateOrKeepAlive:!0}).hide!==s.VariableHide.hideVariable||n?"vertical"===t?h().createElement("div",{className:sl,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItem},h().createElement(rl,{variable:e,layout:t,hideLabel:r}),h().createElement(e.Component,{model:e})):h().createElement("div",{className:al,"data-testid":rt.Tp.pages.Dashboard.SubMenu.submenuItem},h().createElement(rl,{variable:e,hideLabel:r}),h().createElement(e.Component,{model:e})):e.UNSAFE_renderAsHidden?h().createElement(e.Component,{model:e}):null}function rl({variable:e,layout:t,hideLabel:n}){var r;const{state:a}=e;if(e.state.hide===s.VariableHide.hideLabel||n)return null;const i=`var-${a.key}`,o=a.label||a.name;return h().createElement(qt,{htmlFor:i,isLoading:a.loading,onCancel:()=>{var t;return null==(t=e.onCancel)?void 0:t.call(e)},label:o,error:a.error,layout:t,description:null!=(r=a.description)?r:void 0})}(class extends Y{}).Component=function({model:e}){const t=hi.getVariables(e).useState();return h().createElement(h().Fragment,null,t.variables.map(t=>h().createElement(nl,{key:t.state.key,variable:t,layout:e.state.layout})))};const al=(0,at.css)({display:"flex","> :nth-child(2)":(0,at.css)({borderTopLeftRadius:0,borderBottomLeftRadius:0})}),sl=(0,at.css)({display:"flex",flexDirection:"column"});(class extends Y{}).Component=function({model:e}){const t=hi.lookupVariable(e.state.variableName,e);if(!t)return null;return h().createElement(nl,{key:t.state.key,variable:t,layout:e.state.layout,showAlways:!0})};class il extends Y{constructor(e){super(e),this._variablesToUpdate=new Set,this._updating=new Map,this._variableValueRecorder=new Ge,this._variableDependency=new ll(this._handleParentVariableUpdatesCompleted.bind(this)),this._onActivate=()=>{const e=hi.getTimeRange(this);this._subs.add(this.subscribeToEvent(ie,e=>this._handleVariableValueChanged(e.payload))),this._subs.add(e.subscribeToState(()=>{this._refreshTimeRangeBasedVariables()})),this._subs.add(this.subscribeToState(this._onStateChanged)),this._checkForVariablesThatChangedWhileInactive();for(const e of this.state.variables)this._variableNeedsUpdate(e)&&this._variablesToUpdate.add(e);return this._updateNextBatch(),this._onDeactivate},this._onDeactivate=()=>{var e;for(const t of this._updating.values())null==(e=t.subscription)||e.unsubscribe();for(const e of this.state.variables)this._variablesToUpdate.has(e)||this._updating.has(e)||this._variableValueRecorder.recordCurrentValue(e);this._variablesToUpdate.clear(),this._updating.clear()},this._onStateChanged=(e,t)=>{const n=this._variablesToUpdate.size;for(const n of t.variables)if(!e.variables.includes(n)){const e=this._updating.get(n);(null==e?void 0:e.subscription)&&e.subscription.unsubscribe(),this._updating.delete(n),this._variablesToUpdate.delete(n)}for(const n of e.variables)t.variables.includes(n)||this._variableNeedsUpdate(n)&&this._variablesToUpdate.add(n);0===n&&this._variablesToUpdate.size>0&&this._updateNextBatch()},this.addActivationHandler(this._onActivate)}getByName(e){return this.state.variables.find(t=>t.state.name===e)}_refreshTimeRangeBasedVariables(){for(const e of this.state.variables)"refresh"in e.state&&e.state.refresh===s.VariableRefresh.onTimeRangeChanged&&this._variablesToUpdate.add(e);this._updateNextBatch()}_checkForVariablesThatChangedWhileInactive(){if(this._variableValueRecorder.hasValues())for(const e of this.state.variables)this._variableValueRecorder.hasValueChanged(e)&&(ol(e,"Changed while in-active"),this._addDependentVariablesToUpdateQueue(e))}_variableNeedsUpdate(e){return!e.isLazy&&(!!e.validateAndUpdate&&(!this._variableValueRecorder.hasRecordedValue(e)||(ol(e,"Skipping updateAndValidate current value valid"),!1)))}_updateNextBatch(){for(const e of this._variablesToUpdate){if(!e.validateAndUpdate){console.error("Variable added to variablesToUpdate but does not have validateAndUpdate");continue}if(this._updating.has(e))continue;if(hi.hasVariableDependencyInLoadingState(e))continue;const t={variable:e};this._updating.set(e,t),ol(e,"updateAndValidate started"),t.subscription=e.validateAndUpdate().subscribe({next:()=>this._validateAndUpdateCompleted(e),complete:()=>this._validateAndUpdateCompleted(e),error:t=>this._handleVariableError(e,t)})}}_validateAndUpdateCompleted(e){var t;if(!this._updating.has(e))return;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),ol(e,"updateAndValidate completed"),this._notifyDependentSceneObjects(e),this._updateNextBatch()}cancel(e){var t;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e)}_handleVariableError(e,t){var n;const r=this._updating.get(e);null==(n=null==r?void 0:r.subscription)||n.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),e.setState({loading:!1,error:t.message}),console.error("SceneVariableSet updateAndValidate error",t),ol(e,"updateAndValidate error",t),this._notifyDependentSceneObjects(e),this._updateNextBatch()}_handleVariableValueChanged(e){this._addDependentVariablesToUpdateQueue(e),this._updating.has(e)||(this._updateNextBatch(),this._notifyDependentSceneObjects(e))}_handleParentVariableUpdatesCompleted(e,t){t&&this._addDependentVariablesToUpdateQueue(e),this._variablesToUpdate.size>0&&0===this._updating.size&&this._updateNextBatch()}_addDependentVariablesToUpdateQueue(e){for(const t of this.state.variables)t.variableDependency&&t.variableDependency.hasDependencyOn(e.state.name)&&(ol(t,"Added to update queue, dependant variable value changed"),this._updating.has(t)&&t.onCancel&&t.onCancel(),t.validateAndUpdate&&this._variablesToUpdate.add(t),t.variableDependency.variableUpdateCompleted(e,!0))}_notifyDependentSceneObjects(e){this.parent&&this._traverseSceneAndNotify(this.parent,e,!0)}_traverseSceneAndNotify(e,t,n){if(this!==e&&e.isActive){if(e.state.$variables&&e.state.$variables!==this){const n=e.state.$variables.getByName(t.state.name);if(null==n?void 0:n.isAncestorLoading)t=n;else if(n)return}e.variableDependency&&e.variableDependency.variableUpdateCompleted(t,n),e.forEachChild(e=>this._traverseSceneAndNotify(e,t,n))}}isVariableLoadingOrWaitingToUpdate(e){return!!e.state.loading||(!(!e.isAncestorLoading||!e.isAncestorLoading())||(!(!this._variablesToUpdate.has(e)&&!this._updating.has(e))||hi.hasVariableDependencyInLoadingState(e)))}}function ol(e,t,n){j(0,e.state.name)}class ll{constructor(e){this._variableUpdatesCompleted=e,this._emptySet=new Set}getNames(){return this._emptySet}hasDependencyOn(e){return!1}variableUpdateCompleted(e,t){this._variableUpdatesCompleted(e,t)}}class ul extends Re{constructor(e){super({type:"custom",query:"",value:"",text:"",options:[],name:"",...e}),this._variableDependency=new Fs(this,{statePaths:["query"]})}getValueOptions(e){var t;const n=(null!=(t=hi.interpolate(this,this.state.query).match(/(?:\\,|[^,])+/g))?t:[]).map(e=>{var t;e=e.replace(/\\,/g,",");const n=null!=(t=/^\s*(.+)\s:\s(.+)$/g.exec(e))?t:[];if(3===n.length){const[,e,t]=n;return{label:e.trim(),value:t.trim()}}return{label:e.trim(),value:e.trim()}});return n.length||(this.skipNextValidation=!0),(0,m.of)(n)}}ul.Component=({model:e})=>h().createElement(At,{model:e});class dl extends Re{constructor(e){super({type:"datasource",value:"",text:"",options:[],name:"",regex:"",pluginId:"",...e}),this._variableDependency=new Fs(this,{statePaths:["regex"]})}getValueOptions(e){if(!this.state.pluginId)return(0,m.of)([]);const t=(0,i.getDataSourceSrv)().getList({metrics:!0,variables:!1,pluginId:this.state.pluginId});let n;if(this.state.regex){const e=hi.interpolate(this,this.state.regex,void 0,"regex");n=(0,s.stringToJsRegex)(e)}const r=[];for(let e=0;e5)return[];for(const a of n){const n=`${e}${a}`;r.push({name:n,children:ml(n,t+1)})}return r}function pl(e,t,n){if(n>=t.length)return e;if("*"===t[n])return e;const r=t[n];let a=[],s=[r];r.startsWith("{")&&(s=r.replace(/\{|\}/g,"").split(","));for(const r of e)for(const e of s)if(-1!==e.indexOf("*")){const s=e.replace("*","");new RegExp(`^${s}.*`,"gi").test(r.name)&&(a=a.concat(pl([r],t,n+1)))}else r.name===e&&(a=a.concat(pl(r.children,t,n+1)));return a}function fl(e){if(0===e.indexOf("value"))return[{name:e,children:[]}];return pl(ml("",0),e.split("."),0)}dl.Component=({model:e})=>h().createElement(At,{model:e});function _l({model:e}){const{value:t,key:n,loading:r}=e.useState(),a=(0,d.useCallback)(t=>{e.setValue(t.currentTarget.value)},[e]),s=(0,d.useCallback)(t=>{"Enter"===t.key&&e.setValue(t.currentTarget.value)},[e]);return h().createElement(nt.AutoSizeInput,{id:n,placeholder:(0,he.t)("grafana-scenes.variables.variable-value-input.placeholder-enter-value","Enter value"),minWidth:15,maxWidth:30,value:t,loading:r,onBlur:a,onKeyDown:s})}(class extends Re{constructor(e,t=!1){super({type:"custom",name:"Test",value:"Value",text:(0,he.t)("grafana-scenes.variables.test-variable.text.text","Text"),query:"Query",options:[],refresh:s.VariableRefresh.onDashboardLoad,updateOptions:!0,...e}),this.completeUpdate=new m.Subject,this.isGettingValues=!0,this.getValueOptionsCount=0,this.isLazy=!1,this._variableDependency=new Fs(this,{statePaths:["query"]}),this.isLazy=t}getValueOptions(e){const{delayMs:t}=this.state;this.getValueOptionsCount+=1;const n=hi.getQueryController(this);return new m.Observable(e=>{const r={type:"variable",origin:this,cancel:()=>e.complete()};if(n&&n.queryStarted(r),this.setState({loading:!0}),this.state.throwError)throw new Error(this.state.throwError);const a=hi.interpolate(this,this.state.query),s=this.getOptions(a),i=this.completeUpdate.subscribe({next:()=>{const t={issuedQuery:a,loading:!1};this.state.updateOptions&&(t.options=s),this.setState(t),e.next(s),e.complete()}});let o;return t?o=window.setTimeout(()=>this.signalUpdateCompleted(),t):0===t&&this.signalUpdateCompleted(),this.isGettingValues=!0,()=>{i.unsubscribe(),window.clearTimeout(o),this.isGettingValues=!1,this.state.loading&&this.setState({loading:!1}),n&&n.queryCompleted(r)}})}cancel(){const e=$(this,e=>e instanceof il?e:void 0);null==e||e.cancel(this)}getOptions(e){return this.state.optionsToReturn?this.state.optionsToReturn:fl(e).map(e=>({label:e.name,value:e.name}))}signalUpdateCompleted(){this.completeUpdate.next(1)}}).Component=({model:e})=>h().createElement(At,{model:e});(class extends Y{constructor(e){super({type:"textbox",value:"",name:"",...e}),this._urlSync=new z(this,{keys:()=>this.getKeys()})}getValue(){return this.state.value}setValue(e){e!==this.state.value&&(this.setState({value:e}),this.publishEvent(new ie(this),!0))}getKey(){return`var-${this.state.name}`}getKeys(){return this.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){return this.state.skipUrlSync?{}:{[this.getKey()]:this.state.value}}updateFromUrl(e){const t=e[this.getKey()];"string"==typeof t&&this.setValue(t)}}).Component=({model:e})=>h().createElement(_l,{model:e});(class extends Y{constructor(e){super({type:"interval",value:"",intervals:["1m","10m","30m","1h","6h","12h","1d","7d","14d","30d"],name:"",autoStepCount:30,autoMinInterval:"10s",autoEnabled:!1,refresh:wi.CO.onTimeRangeChanged,...e}),this._onChange=e=>{this.setState({value:e.value}),this.publishEvent(new ie(this),!0)},this._urlSync=new z(this,{keys:()=>[this.getKey()]})}getKey(){return`var-${this.state.name}`}getUrlState(){return{[this.getKey()]:this.state.value}}updateFromUrl(e){const t={},n=e[this.getKey()];"string"==typeof n&&(n.startsWith("$__auto_interval_")?t.value=Se:t.value=n),this.setState(t)}getOptionsForSelect(){const{value:e,intervals:t,autoEnabled:n}=this.state;let r=t.map(e=>({value:e,label:e}));return n&&(r=[{value:Se,label:"Auto"},...r]),e&&!r.some(t=>t.value===e)&&r.push({value:e,label:e}),r}getValue(){const{value:e,autoStepCount:t,autoMinInterval:n}=this.state;return e===Se?this.getAutoRefreshInteval(t,n):e}getAutoRefreshInteval(e,t){const n=hi.getTimeRange(this).state.value;return s.rangeUtil.calculateInterval(n,e,t).interval}validateAndUpdate(){const{value:e,intervals:t}=this.state;let n=!1;if(e===Se)n=!0;else if(!e&&t.length>0){const e=t[0];this.setState({value:e}),n=!0}return n&&this.publishEvent(new ie(this),!0),(0,m.of)({})}}).Component=({model:e})=>{const{key:t,value:n}=e.useState();return h().createElement(nt.Select,{id:t,placeholder:(0,he.t)("grafana-scenes.variables.interval-variable.placeholder-select-value","Select value"),width:"auto",value:n,tabSelectsValue:!1,options:e.getOptionsForSelect(),onChange:e._onChange})};var gl,yl,vl=e=>{throw TypeError(e)},bl=(e,t,n)=>t.has(e)||vl("Cannot "+n),Ml=(e,t,n)=>(bl(e,t,"read from private field"),n?n.call(e):t.get(e)),wl=(e,t,n)=>t.has(e)?vl("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ll=(e,t,n,r)=>(bl(e,t,"write to private field"),t.set(e,n),n);class Sl extends s.BusEventWithPayload{}Sl.type="new-scene-object-added";class kl{constructor(e={},t=i.locationService){this._options=e,this._locationService=t,this._paramsCache=new Dl(t),this._urlKeyMapper=new pi({namespace:e.namespace,excludeFromNamespace:e.excludeFromNamespace})}initSync(e){var t;if(this._subs&&(j(0,0,null==(t=this._sceneRoot)||t.state.key),this._subs.unsubscribe()),j(0,0,e.state.key),this._sceneRoot=e,this._subs=new m.Subscription,this._subs.add(e.subscribeToEvent(L,e=>{this.handleSceneObjectStateChanged(e.payload.changedObject)})),this._subs.add(e.subscribeToEvent(Sl,e=>{this.handleNewObject(e.payload)})),this._urlKeyMapper.clear(),this._lastLocation=this._locationService.getLocation(),this.handleNewObject(this._sceneRoot),this._options.updateUrlOnInit){const t=_i(e,this._urlKeyMapper.getOptions());(function(e,t){for(let n in e)if(!vi(t.getAll(n),e[n]))return!0;return!1})(t,this._paramsCache.getParams())&&this._locationService.partial(t,!0)}}cleanUp(e){this._sceneRoot===e&&(j(),this._subs&&(this._subs.unsubscribe(),this._subs=void 0,j(0,0,(this._sceneRoot.state.key,e.state.key))),this._sceneRoot=void 0,this._lastLocation=void 0)}handleNewLocation(e){this._sceneRoot&&this._lastLocation!==e&&(j(),this._lastLocation=e,gi(this._sceneRoot,this._paramsCache.getParams(),this._urlKeyMapper))}handleNewObject(e){this._sceneRoot&&gi(e,this._paramsCache.getParams(),this._urlKeyMapper)}handleSceneObjectStateChanged(e){var t,n;if(!e.urlSync)return;const r=e.urlSync.getUrlState(),a=this._locationService.getSearch(),s={};for(const[t,n]of Object.entries(r)){const r=this._urlKeyMapper.getUniqueKey(t,e);vi(a.getAll(r),n)||(s[r]=n)}if(Object.keys(s).length>0){const a=!0!==(null==(n=(t=e.urlSync).shouldCreateHistoryStep)?void 0:n.call(t,r));j(),this._locationService.partial(s,a),this._lastLocation=this._locationService.getLocation()}}getUrlState(e){return _i(e,this._urlKeyMapper.getOptions())}}class Dl{constructor(e){this.locationService=e,wl(this,gl),wl(this,yl)}getParams(){const e=this.locationService.getLocation();return Ml(this,yl)===e||(Ll(this,yl,e),Ll(this,gl,new URLSearchParams(e.search))),Ml(this,gl)}}function Tl(e,t={}){const n=(0,a.useLocation)(),r=Ae(),[s,i]=(0,d.useState)(!1),o=function(e,t){return(0,d.useMemo)(()=>new kl({updateUrlOnInit:e.updateUrlOnInit,createBrowserHistorySteps:e.createBrowserHistorySteps,namespace:e.namespace,excludeFromNamespace:e.excludeFromNamespace},t),[e.updateUrlOnInit,e.createBrowserHistorySteps,e.namespace,e.excludeFromNamespace,t])}(t,r);return(0,d.useEffect)(()=>(o.initSync(e),i(!0),()=>o.cleanUp(e)),[e,o]),(0,d.useEffect)(()=>{const e=r.getLocation(),t=e!==n?e:n;e!==n&&j(),o.handleNewLocation(t)},[e,o,n,r]),s}function xl({children:e,scene:t,updateUrlOnInit:n,createBrowserHistorySteps:r,namespace:a,excludeFromNamespace:s}){return Tl(t,{updateUrlOnInit:n,createBrowserHistorySteps:r,namespace:a,excludeFromNamespace:s})?e:null}gl=new WeakMap,yl=new WeakMap;class Yl extends Y{constructor(e){super(e),this.addActivationHandler(()=>{const e=function(e){const t=window.__grafanaSceneContext;return j(),window.__grafanaSceneContext=e,()=>{window.__grafanaSceneContext===e&&(j(),window.__grafanaSceneContext=t)}}(this);return()=>{e()}})}}Yl.Component=function({model:e}){const{body:t,controls:n}=e.useState(),r=(0,nt.useStyles2)(El);return h().createElement("div",{className:r.container},n&&h().createElement("div",{className:r.controls},n.map(e=>h().createElement(e.Component,{key:e.state.key,model:e}))),h().createElement("div",{className:r.body},h().createElement(t.Component,{model:t})))};const El=e=>({container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(2),minHeight:"100%",flexDirection:"column"}),body:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(1)}),controls:(0,at.css)({display:"flex",gap:e.spacing(2),alignItems:"flex-end",flexWrap:"wrap"})});class Ol extends Y{addItem(e){this.setState({items:this.state.items?[...this.state.items,e]:[e]})}setItems(e){this.setState({items:e})}}function Al(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var r=(0,d.useRef)(0),a=function(){var e=(0,d.useRef)(!1),t=(0,d.useCallback)(function(){return e.current},[]);return(0,d.useEffect)(function(){return e.current=!0,function(){e.current=!1}},[]),t}(),s=(0,d.useState)(n),i=s[0],o=s[1],l=(0,d.useCallback)(function(){for(var t=[],n=0;n{n.current&&n.current.focus()},[]);const r=e=>e.map(e=>{switch(e.type){case"divider":return h().createElement(nt.Menu.Divider,{key:e.text});case"group":return h().createElement(nt.Menu.Group,{key:e.text,label:e.text},e.subMenu?r(e.subMenu):void 0);default:return h().createElement(nt.Menu.Item,{key:e.text,role:"menuitem",label:e.text,icon:e.iconClassName,childItems:e.subMenu?r(e.subMenu):void 0,url:e.href,onClick:e.onClick,shortcut:e.shortcut,testId:rt.Tp.components.Panels.Panel.menuItems(e.text)})}});return h().createElement(nt.Menu,{ref:n},r(t))};(class extends Y{constructor(e={}){super({options:e})}}).Component=function({model:e}){const{options:t}=e.useState(),{data:n}=hi.getData(e).useState(),{from:r,to:a}=hi.getTimeRange(e).useState(),{value:s}=function(e,t){void 0===t&&(t=[]);var n=Al(e,t,{loading:!0}),r=n[0],a=n[1];return(0,d.useEffect)(function(){a()},[a]),r}(async()=>n?async function(e,t,n,r){var a,s,o,l;const u=null==(a=e.request)?void 0:a.targets;if(!u)return"";const{from:d,to:c}=n,h=null==(s=e.request)?void 0:s.filters,m={__sceneObject:Ft(t)},p=(await Promise.allSettled(u.map(async e=>{var t;const n=await(0,i.getDataSourceSrv)().get(e.datasource);return(null==(t=n.interpolateVariablesInQueries)?void 0:t.call(n,[e],null!=m?m:{},h)[0])||e}))).filter(e=>"fulfilled"===e.status).map(e=>e.value).map(e=>{var t;return null!=(t=null==r?void 0:r(e))?t:e}),f=null!=p?p:[];let _=new Set(f.map(e=>{var t;return null==(t=e.datasource)?void 0:t.uid})).size>1?"-- Mixed --":null==(l=null==(o=f.find(e=>{var t;return!!(null==(t=e.datasource)?void 0:t.uid)}))?void 0:o.datasource)?void 0:l.uid;if((null==f?void 0:f.length)&&_&&d&&c)return`/explore?left=${encodeURIComponent(JSON.stringify({datasource:_,queries:f,range:{from:d,to:c}}))}`;return""}(n,e,{from:r,to:a},t.transform):"",[n,e,r,a]),o=(0,i.useReturnToPrevious)();if(s)return h().createElement(nt.LinkButton,{key:"explore",icon:"compass",size:"sm",variant:"secondary",href:s,onClick:()=>{var e;t.returnToPrevious&&o(t.returnToPrevious.title,t.returnToPrevious.href),null==(e=t.onClick)||e.call(t)}},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.viz-panel-explore-button.explore"},"Explore"));return null};function Cl(e){return e instanceof Kl}(class extends Y{}).Component=function({model:e}){const{body:t}=e.useState(),n=e.parent;if(n&&(r=n,!(r instanceof Ul))&&!Cl(n))throw new Error("SceneGridItem must be a child of SceneGridLayout or SceneGridRow");var r;if(!t)return null;return h().createElement(t.Component,{model:t})};var Rl=n(2548),Pl=n.n(Rl);const jl=function(e){(0,d.useEffect)(e,[])};function Hl(){const e=(0,d.useRef)(void 0);return null!=e.current||(e.current=(0,A.uniqueId)()),e.current}const Nl=h().forwardRef(({children:e,onLoad:t,onChange:n,className:r,...a},s)=>{const i=Hl(),{hideEmpty:o}=(0,nt.useStyles2)(Il),[l,u]=(0,d.useState)(!1),[c,m]=(0,d.useState)(!1),p=(0,d.useRef)(null);return(0,d.useImperativeHandle)(s,()=>p.current),jl(()=>{Nl.addCallback(i,e=>{!l&&e.isIntersecting&&(u(!0),null==t||t()),m(e.isIntersecting),null==n||n(e.isIntersecting)});const e=p.current;return e&&Nl.observer.observe(e),()=>{e&&Nl.observer.unobserve(e),delete Nl.callbacks[i],0===Object.keys(Nl.callbacks).length&&Nl.observer.disconnect()}}),h().createElement("div",{id:i,ref:p,className:`${o} ${r}`,...a},l&&c?e:(0,he.t)("grafana-scenes.components.lazy-loader.placeholder"," "))});function Il(){return{hideEmpty:(0,at.css)({"&:empty":{display:"none"}})}}Nl.displayName="LazyLoader",Nl.callbacks={},Nl.addCallback=(e,t)=>Nl.callbacks[e]=t,Nl.observer=new IntersectionObserver(e=>{for(const t of e)"function"==typeof Nl.callbacks[t.target.id]&&Nl.callbacks[t.target.id](t)},{rootMargin:"100px"});const Fl=h().forwardRef((e,t)=>{var n;const{grid:r,layoutItem:a,index:s,totalCount:i,isLazy:o,style:l,onLoad:u,onChange:d,children:c,...m}=e,p=r.getSceneLayoutChild(a.i),f=null==(n=p.getClassName)?void 0:n.call(p),_=h().createElement(p.Component,{model:p,key:p.state.key});return o?h().createElement(Nl,{...m,key:p.state.key,"data-griditem-key":p.state.key,className:(0,at.cx)(f,e.className),style:l,ref:t},_,c):h().createElement("div",{...m,ref:t,key:p.state.key,"data-griditem-key":p.state.key,className:(0,at.cx)(f,e.className),style:l},_,c)});function Wl(e,t,n){e.current?t?e.current.classList.add("react-grid-layout--enable-move-animations"):e.current.classList.remove("react-grid-layout--enable-move-animations"):n||setTimeout(()=>Wl(e,t,!0),50)}Fl.displayName="GridItemWrapper";const Vl=h().forwardRef(({handleAxis:e,...t},n)=>{const r=(0,nt.useStyles2)(zl);return h().createElement("div",{ref:n,...t,className:`${r} scene-resize-handle`},h().createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h().createElement("path",{d:"M21 15L15 21M21 8L8 21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})))});function zl(e){return(0,at.css)({position:"absolute",bottom:0,right:0,zIndex:999,padding:e.spacing(1.5,0,0,1.5),color:e.colors.border.strong,cursor:"se-resize","&:hover":{color:e.colors.text.link},svg:{display:"block"},".react-resizable-hide &":{display:"none"}})}Vl.displayName="ResizeHandle";class $l extends s.BusEventWithPayload{}$l.type="scene-grid-layout-drag-start";const Bl=class e extends Y{constructor(e){super({...e,children:Gl(e.children)}),this._skipOnLayoutChange=!1,this._oldLayout=[],this._loadOldLayout=!1,this.onLayoutChange=e=>{if(this._skipOnLayoutChange)this._skipOnLayoutChange=!1;else{this._loadOldLayout&&(e=[...this._oldLayout],this._loadOldLayout=!1);for(const t of e){const e=this.getSceneLayoutChild(t.i),n={x:t.x,y:t.y,width:t.w,height:t.h};ql(e.state,n)||e.setState({...n})}this.setState({children:Gl(this.state.children)})}},this.onResizeStop=(e,t,n)=>{this.getSceneLayoutChild(n.i).setState({width:n.w,height:n.h})},this.onDragStart=e=>{this._oldLayout=[...e]},this.onDragStop=(e,t,n)=>{const r=this.getSceneLayoutChild(n.i),a=(e=Jl(e)).findIndex(e=>e.i===n.i);let s=this.findGridItemSceneParent(e,a-1),i=this.state.children;for(let t=0;t{this.publishEvent(new $l({evt:e,panel:t}),!0)}}}toggleRow(e){var t,n;if(!e.state.isCollapsed)return e.setState({isCollapsed:!0}),void this.setState({});const r=e.state.children;if(0===r.length)return e.setState({isCollapsed:!1}),void this.setState({});const a=e.state.y,s=(null!=(t=r[0].state.y)?t:a)-(a+1);let i=a;for(const e of r){const t={...e.state};t.y=null!=(n=t.y)?n:a,t.y-=s,t.y!==e.state.y&&e.setState(t),i=Math.max(i,Number(t.y)+Number(t.height))}const o=i-a-1;for(const t of this.state.children)if(t.state.y>a&&this.pushChildDown(t,o),Cl(t)&&t!==e)for(const e of t.state.children)e.state.y>a&&this.pushChildDown(e,o);e.setState({isCollapsed:!1}),this.setState({})}ignoreLayoutChange(e){this._skipOnLayoutChange=e}getSceneLayoutChild(e){for(const t of this.state.children){if(t.state.key===e)return t;if(t instanceof Kl)for(const n of t.state.children)if(n.state.key===e)return n}throw new Error("Scene layout child not found for GridItem")}pushChildDown(e,t){e.setState({y:e.state.y+t})}findGridItemSceneParent(e,t){for(let n=t;n>=0;n--){const t=e[n],r=this.getSceneLayoutChild(t.i);if(r instanceof Kl)return r.state.isCollapsed?this:r}return this}isRowDropValid(t,n,r){if(t[t.length-1].i===n.i)return!0;const a=this.getSceneLayoutChild(t[r+1].i);return a instanceof Kl||a.parent instanceof e}moveChildTo(t,n){const r=t.parent;let a=this.state.children;const s=t.clone({key:t.state.key});if(r instanceof Kl){const e=r.clone();if(e.setState({children:e.state.children.filter(e=>e.state.key!==t.state.key)}),a=a.map(t=>t===r?e:t),n instanceof Kl){const e=n.clone();e.setState({children:[...e.state.children,s]}),a=a.map(t=>t===n?e:t)}else a=[...a,s]}else if(!(n instanceof e)){a=a.filter(e=>e.state.key!==t.state.key);const e=n.clone();e.setState({children:[...e.state.children,s]}),a=a.map(t=>t===n?e:t)}return a}toGridCell(e){var t,n;const r=e.state;let a=null!=(t=r.x)?t:0,s=null!=(n=r.y)?n:0;const i=Number.isInteger(Number(r.width))?Number(r.width):4,o=Number.isInteger(Number(r.height))?Number(r.height):4;let l=e.state.isDraggable,u=e.state.isResizable;return e instanceof Kl&&(l=!!e.state.isCollapsed,u=!1),Ce(e)&&(l=!1,u=!1),{i:e.state.key,x:a,y:s,h:o,w:i,isResizable:u,isDraggable:l}}buildGridLayout(e,t){let n=[];for(const e of this.state.children)if(n.push(this.toGridCell(e)),e instanceof Kl&&!e.state.isCollapsed)for(const t of e.state.children)n.push(this.toGridCell(t));return n=Jl(n),this.state.UNSAFE_fitPanels&&(n=function(e,t){const n=t-32,r=Math.max(...e.map(e=>e.h+e.y))/Math.floor(n/38);return e.map(e=>({...e,y:Math.round(e.y/r)||0,h:Math.round(e.h/r)||1}))}(n,t)),e<768?(this._skipOnLayoutChange=!0,n.map(e=>({...e,w:24}))):(this._skipOnLayoutChange=!1,n)}};Bl.Component=function({model:e}){const{children:t,isLazy:n,isDraggable:r,isResizable:a}=e.useState(),[s,{width:i,height:o}]=Yi(),l=(0,d.useRef)(null);return(0,d.useEffect)(()=>{Wl(l,!!r)},[r]),function(e){if(e.some(e=>void 0===e.state.height||void 0===e.state.width||void 0===e.state.x||void 0===e.state.y))throw new Error("All children must have a size specified")}(t),h().createElement("div",{ref:s,style:{flex:"1 1 auto",position:"relative",zIndex:1,width:"100%"}},((t,s)=>{if(!t||!s)return null;const i=e.buildGridLayout(t,s);return h().createElement("div",{ref:l,style:{width:`${t}px`,height:"100%"},className:"react-grid-layout"},h().createElement(Pl(),{width:t,isDraggable:r&&t>768,isResizable:null!=a&&a,containerPadding:[0,0],useCSSTransforms:!0,margin:[8,8],cols:24,rowHeight:30,draggableHandle:`.grid-drag-handle-${e.state.key}`,draggableCancel:".grid-drag-cancel",layout:i,onDragStart:e.onDragStart,onDragStop:e.onDragStop,onResizeStop:e.onResizeStop,onLayoutChange:e.onLayoutChange,isBounded:!1,resizeHandle:h().createElement(Vl,null)},i.map((t,r)=>h().createElement(Fl,{key:t.i,grid:e,layoutItem:t,index:r,isLazy:n,totalCount:i.length}))))})(i,o))};let Ul=Bl;function ql(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Gl(e){return e.forEach(e=>{e instanceof Kl&&e.setState({children:Gl(e.state.children)})}),[...e].sort((e,t)=>e.state.y-t.state.y||e.state.x-t.state.x)}function Jl(e){return[...e].sort((e,t)=>e.y-t.y||e.x-t.x)}class Kl extends Y{constructor(e){super({children:e.children||[],isCollapsible:e.isCollapsible||!0,title:e.title||"",...e,x:0,height:1,width:24}),this._variableDependency=new Fs(this,{statePaths:["title"],handleTimeMacros:!0}),this.onCollapseToggle=()=>{this.state.isCollapsible&&this.getGridLayout().toggleRow(this)}}getGridLayout(){const e=this.parent;if(!(e&&e instanceof Ul))throw new Error("SceneGridRow must be a child of SceneGridLayout");return e}getUrlState(){return{rowc:this.state.isCollapsed?"1":"0"}}updateFromUrl(e){null!=e.rowc&&e.rowc!==this.getUrlState().rowc&&this.onCollapseToggle()}}Kl.Component=function({model:e}){const t=(0,nt.useStyles2)(Ql),{isCollapsible:n,isCollapsed:r,title:a,actions:s,children:i}=e.useState(),o=e.getGridLayout(),l=o.getDragClass(),u=o.isDraggable()&&!Ce(e),d=i?i.length:0,c=1===d?"panel":"panels";return h().createElement("div",{className:(0,at.cx)(t.row,r&&t.rowCollapsed)},h().createElement("div",{className:t.rowTitleAndActionsGroup},h().createElement("button",{onClick:e.onCollapseToggle,className:t.rowTitleButton,"aria-label":r?(0,he.t)("grafana-scenes.components.scene-grid-row.expand-row","Expand row"):(0,he.t)("grafana-scenes.components.scene-grid-row.collapse-row","Collapse row"),"data-testid":rt.Tp.components.DashboardRow.title(hi.interpolate(e,a,void 0,"text"))},n&&h().createElement(nt.Icon,{name:r?"angle-right":"angle-down"}),h().createElement("span",{className:t.rowTitle,role:"heading"},hi.interpolate(e,a,void 0,"text"))),h().createElement("span",{className:(0,at.cx)(t.panelCount,r&&t.panelCountCollapsed)},"(",d," ",c,")"),s&&h().createElement("div",{className:t.rowActions},h().createElement(s.Component,{model:s}))),u&&r&&h().createElement("div",{className:(0,at.cx)(t.dragHandle,l)},h().createElement(nt.Icon,{name:"draggabledots"})))};const Ql=e=>({row:(0,at.css)({width:"100%",height:"30px",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowTitleButton:(0,at.css)({display:"flex",alignItems:"center",cursor:"pointer",background:"transparent",border:"none",minWidth:0,gap:e.spacing(1)}),rowCollapsed:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),rowTitle:(0,at.css)({fontSize:e.typography.h5.fontSize,fontWeight:e.typography.fontWeightMedium,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",flexGrow:1,minWidth:0}),collapsedInfo:(0,at.css)({fontSize:e.typography.bodySmall.fontSize,color:e.colors.text.secondary,display:"flex",alignItems:"center",flexGrow:1}),rowTitleAndActionsGroup:(0,at.css)({display:"flex",minWidth:0,"&:hover, &:focus-within":{"& > div":{opacity:1}}}),rowActions:(0,at.css)({display:"flex",whiteSpace:"nowrap",opacity:0,transition:"200ms opacity ease-in 200ms","&:hover, &:focus-within":{opacity:1}}),dragHandle:(0,at.css)({display:"flex",padding:e.spacing(0,1),alignItems:"center",justifyContent:"flex-end",cursor:"move",color:e.colors.text.secondary,"&:hover":{color:e.colors.text.primary}}),panelCount:(0,at.css)({whiteSpace:"nowrap",paddingLeft:e.spacing(2),color:e.colors.text.secondary,fontStyle:"italic",fontSize:e.typography.size.sm,fontWeight:"normal",display:"none",lineHeight:"30px"}),panelCountCollapsed:(0,at.css)({display:"inline-block"})});(class extends Y{constructor(){super(...arguments),this.onToggle=()=>{this.setState({isCollapsed:!this.state.isCollapsed})},this.onRemove=()=>{const e=this.parent;"body"in e.state&&e.setState({body:void 0})}}}).Component=function({model:e}){const{title:t,isCollapsed:n,canCollapse:r,canRemove:a,body:s,controls:i}=e.useState(),o=(0,nt.useStyles2)(Ql),l=(0,nt.useStyles2)(Zl),u=(null!=i?i:[]).map(e=>h().createElement(e.Component,{key:e.state.key,model:e}));a&&u.push(h().createElement(nt.ToolbarButton,{icon:"times",variant:"default",onClick:e.onRemove,key:"remove-button","aria-label":(0,he.t)("grafana-scenes.components.nested-scene-renderer.remove-button-label","Remove scene")}));return h().createElement("div",{className:l.wrapper},h().createElement("div",{className:(0,at.cx)(l.row,n&&l.rowCollapsed)},h().createElement("button",{onClick:e.onToggle,className:o.rowTitleButton,"aria-label":n?(0,he.t)("grafana-scenes.components.nested-scene-renderer.expand-button-label","Expand scene"):(0,he.t)("grafana-scenes.components.nested-scene-renderer.collapse-button-label","Collapse scene")},r&&h().createElement(nt.Icon,{name:n?"angle-right":"angle-down"}),h().createElement("span",{className:o.rowTitle,role:"heading"},hi.interpolate(e,t,void 0,"text"))),h().createElement("div",{className:l.actions},u)),!n&&h().createElement(s.Component,{model:s}))};const Zl=e=>({wrapper:(0,at.css)({display:"flex",flexDirection:"column",flexGrow:1,gap:e.spacing(1)}),row:(0,at.css)({width:"100%",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowCollapsed:(0,at.css)({borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(1)}),actions:(0,at.css)({display:"flex",alignItems:"center",gap:e.spacing(1),justifyContent:"flex-end",flexGrow:1})});(class extends Y{constructor(){super(...arguments),this._variableDependency=new Fs(this,{statePaths:["text"]})}}).Component=function({model:e}){const{text:t,fontSize:n=20,align:r="left",key:a,spacing:s}=e.useState(),i=(0,nt.useTheme2)(),o=(0,at.css)({fontSize:n,display:"flex",flexGrow:1,alignItems:"center",padding:s?i.spacing(s,0):void 0,justifyContent:r});return h().createElement("div",{className:o,"data-testid":a},hi.interpolate(e,t))};(class extends Y{}).Component=({model:e})=>{const t=e.useState();return h().createElement(nt.ToolbarButton,{onClick:t.onClick,icon:t.icon})};(class extends Y{}).Component=({model:e})=>{const t=e.useState();return h().createElement("div",{style:{display:"flex"}},t.label&&h().createElement(qt,{label:t.label}),h().createElement(nt.Input,{defaultValue:t.value,width:8,onBlur:t=>{e.state.onChange(parseInt(t.currentTarget.value,10))}}))};const Xl=function(e,t,n){if(!Di)return[t,ki,ki];if(!e)throw new Error("useLocalStorage key may not be falsy");var r=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=(0,d.useRef)(function(e){try{var a=n?n.raw?String:n.serializer:JSON.stringify,s=localStorage.getItem(e);return null!==s?r(s):(t&&localStorage.setItem(e,a(t)),t)}catch(e){return t}}),s=(0,d.useState)(function(){return a.current(e)}),i=s[0],o=s[1];(0,d.useLayoutEffect)(function(){return o(a.current(e))},[e]);var l=(0,d.useCallback)(function(t){try{var a="function"==typeof t?t(i):t;if(void 0===a)return;var s=void 0;s=n?n.raw?"string"==typeof a?a:JSON.stringify(a):n.serializer?n.serializer(a):JSON.stringify(a):JSON.stringify(a),localStorage.setItem(e,s),o(r(s))}catch(e){}},[e,o]),u=(0,d.useCallback)(function(){try{localStorage.removeItem(e),o(void 0)}catch(e){}},[e,o]);return[i,l,u]};class eu extends Y{constructor(){super(...arguments),this.onZoom=()=>{const e=hi.getTimeRange(this),t=function(e,t){const n=e.to.valueOf()-e.from.valueOf(),r=e.to.valueOf()-n/2,a=0===n?3e4:n*t,i=r+a/2,o=r-a/2;return{from:(0,s.toUtc)(o),to:(0,s.toUtc)(i),raw:{from:(0,s.toUtc)(o),to:(0,s.toUtc)(i)}}}(e.state.value,2);e.onTimeRangeChange(t)},this.onChangeFiscalYearStartMonth=e=>{hi.getTimeRange(this).setState({fiscalYearStartMonth:e})},this.toAbsolute=()=>{const e=hi.getTimeRange(this),t=e.state.value,n=(0,s.toUtc)(t.from),r=(0,s.toUtc)(t.to);e.onTimeRangeChange({from:n,to:r,raw:{from:n,to:r}})},this.onMoveBackward=()=>{const e=hi.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(tu(0,t,Date.now()))},this.onMoveForward=()=>{const e=hi.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(tu(1,t,Date.now()))}}}function tu(e,t,n){const r=t.to.valueOf(),a=t.from.valueOf(),i=(r-a)/2;let o,l;0===e?(o=a-i,l=r-i):(o=a+i,l=r+i,l>n&&r{var t;t=e,((0,s.isDateTime)(t.raw.from)||(0,s.isDateTime)(t.raw.to))&&d([e,...null!=u?u:[]]),i.onTimeRangeChange(e)},timeZone:o,fiscalYearStartMonth:l.fiscalYearStartMonth,onMoveBackward:e.onMoveBackward,onMoveForward:e.onMoveForward,onZoom:e.onZoom,onChangeTimeZone:i.onTimeZoneChange,onChangeFiscalYearStartMonth:e.onChangeFiscalYearStartMonth,weekStart:l.weekStart,history:u,quickRanges:c})};const nu="grafana.dashboard.timepicker.history";function ru(e){return JSON.parse(e).map(e=>s.rangeUtil.convertRawToRange(e,"utc",void 0,"YYYY-MM-DD HH:mm:ss"))}function au(e){return JSON.stringify((t=e.map(e=>({from:"string"==typeof e.raw.from?e.raw.from:e.raw.from.toISOString(),to:"string"==typeof e.raw.to?e.raw.to:e.raw.to.toISOString()})),(0,A.uniqBy)(t,e=>e.from+e.to).slice(0,4)));var t}const su=["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"];class iu extends Y{constructor(e){var t,n,r;super({refresh:"",...e,autoValue:void 0,autoEnabled:null==(t=e.autoEnabled)||t,autoMinInterval:null!=(n=e.autoMinInterval)?n:i.config.minRefreshInterval,intervals:(null!=(r=e.intervals)?r:su).filter(t=>{var n;const r=null!=(n=e.minRefreshInterval)?n:i.config.minRefreshInterval;try{return!r||s.rangeUtil.intervalToMs(t)>=s.rangeUtil.intervalToMs(r)}catch(e){return!1}})}),this._urlSync=new z(this,{keys:["refresh"]}),this._autoRefreshBlocked=!1,this.onRefresh=()=>{const e=hi.getQueryController(this);if(null==e?void 0:e.state.isRunning)return e.cancelAll(),void e.cancelProfile();null==e||e.startProfile(K);const t=hi.getTimeRange(this);this._intervalTimer&&clearInterval(this._intervalTimer),t.onRefresh(),this.setupIntervalTimer()},this.onIntervalChanged=e=>{this.setState({refresh:e}),this.setupIntervalTimer()},this.setupAutoTimeRangeListener=()=>hi.getTimeRange(this).subscribeToState((e,t)=>{e.from===t.from&&e.to===t.to||this.setupIntervalTimer()}),this.calculateAutoRefreshInterval=()=>{var e;const t=hi.getTimeRange(this),n=null!=(e=null==window?void 0:window.innerWidth)?e:2e3;return s.rangeUtil.calculateInterval(t.state.value,n,this.state.autoMinInterval)},this.setupIntervalTimer=()=>{var e;const t=hi.getTimeRange(this),{refresh:n,intervals:r}=this.state;if((this._intervalTimer||""===n)&&clearInterval(this._intervalTimer),""===n)return;if(n!==nt.RefreshPicker.autoOption.value&&r&&!r.includes(n))return;let a;if(null==(e=this._autoTimeRangeListener)||e.unsubscribe(),n===nt.RefreshPicker.autoOption.value){const e=this.calculateAutoRefreshInterval();a=e.intervalMs,this._autoTimeRangeListener=this.setupAutoTimeRangeListener(),e.interval!==this.state.autoValue&&this.setState({autoValue:e.interval})}else a=s.rangeUtil.intervalToMs(n);this._intervalTimer=setInterval(()=>{if(this.isTabVisible()){const e=hi.getQueryController(this);(null==e?void 0:e.state.isRunning)&&e.cancelProfile(),null==e||e.startProfile(K),t.onRefresh()}else this._autoRefreshBlocked=!0},a)},this.addActivationHandler(()=>{this.setupIntervalTimer();const e=()=>{this._autoRefreshBlocked&&"visible"===document.visibilityState&&(this._autoRefreshBlocked=!1,this.onRefresh())};return document.addEventListener("visibilitychange",e),()=>{var t;this._intervalTimer&&clearInterval(this._intervalTimer),document.removeEventListener("visibilitychange",e),null==(t=this._autoTimeRangeListener)||t.unsubscribe()}})}getUrlState(){let e=this.state.refresh;return"string"==typeof e&&0!==e.length||(e=void 0),{refresh:e}}updateFromUrl(e){const{intervals:t}=this.state;let n=e.refresh;"string"==typeof n&&function(e){try{return s.rangeUtil.describeInterval(e).count>0}catch(e){return!1}}(n)&&((null==t?void 0:t.includes(n))?this.setState({refresh:n}):this.setState({refresh:t?t[0]:void 0}))}isTabVisible(){return void 0===document.visibilityState||"visible"===document.visibilityState}}iu.Component=function({model:e}){var t;const{refresh:n,intervals:r,autoEnabled:a,autoValue:s,isOnCanvas:i,primary:o,withText:l}=e.useState(),u=function(e){const t=hi.getQueryController(e);if(!t)return!1;return t.useState().isRunning}(e);let d,c,m=n===(null==(t=nt.RefreshPicker.autoOption)?void 0:t.value)?s:l?"Refresh":void 0;u&&(d="Cancel all queries",l&&(m="Cancel"));l&&(c="96px");return h().createElement(nt.RefreshPicker,{showAutoInterval:a,value:n,intervals:r,tooltip:d,width:c,text:m,onRefresh:()=>{e.onRefresh()},primary:o,onIntervalChanged:e.onIntervalChanged,isLoading:u,isOnCanvas:null==i||i})};const ou=e=>`${e}-compare`,lu="__previousPeriod",uu="__noPeriod",du={label:"Previous period",value:lu},cu={label:"None",value:uu},hu=[{label:"Day before",value:"24h"},{label:"Week before",value:"1w"},{label:"Month before",value:"1M"}];(class extends Y{constructor(e){super({compareOptions:hu,...e}),this._urlSync=new z(this,{keys:["compareWith"]}),this._onActivate=()=>{const e=hi.getTimeRange(this);this.setState({compareOptions:this.getCompareOptions(e.state.value)}),this._subs.add(e.subscribeToState(e=>{const t=this.getCompareOptions(e.value),n={compareOptions:t};Boolean(this.state.compareWith)&&!t.find(({value:e})=>e===this.state.compareWith)&&(n.compareWith=lu),this.setState(n)}))},this.getCompareOptions=e=>{const t=Math.ceil(e.to.diff(e.from)),n=hu.findIndex(({value:e})=>s.rangeUtil.intervalToMs(e)>=t);return[cu,du,...hu.slice(n).map(({label:e,value:t})=>({label:e,value:t}))]},this.onCompareWithChanged=e=>{e===uu?this.onClearCompare():this.setState({compareWith:e})},this.onClearCompare=()=>{this.setState({compareWith:void 0})},this.addActivationHandler(this._onActivate)}getExtraQueries(e){const t=[],n=this.getCompareTimeRange(e.range);if(!n)return t;const r=e.targets.filter(e=>!1!==e.timeRangeCompare);return r.length&&t.push({req:{...e,targets:r,range:n},processor:mu}),t}shouldRerun(e,t,n){return e.compareWith!==t.compareWith&&void 0!==n.find(e=>!1!==e.timeRangeCompare)}getCompareTimeRange(e){let t,n;if(this.state.compareWith){if(this.state.compareWith===lu){const r=e.to.diff(e.from);t=(0,s.dateTime)(e.from).subtract(r),n=(0,s.dateTime)(e.to).subtract(r)}else t=(0,s.dateTime)(e.from).subtract(s.rangeUtil.intervalToMs(this.state.compareWith)),n=(0,s.dateTime)(e.to).subtract(s.rangeUtil.intervalToMs(this.state.compareWith));return{from:t,to:n,raw:{from:t,to:n}}}}getUrlState(){return{compareWith:this.state.compareWith}}updateFromUrl(e){if(!e.compareWith)return;const t=U(e.compareWith);if(t){this.getCompareOptions(hi.getTimeRange(this).state.value).find(({value:e})=>e===t)?this.setState({compareWith:t}):this.setState({compareWith:"__previousPeriod"})}}}).Component=function({model:e}){var t;const n=(0,nt.useStyles2)(pu),{compareWith:r,compareOptions:a,hideCheckbox:s}=e.useState(),[i,o]=h().useState(r),l=null!=(t=a.find(({value:e})=>e===i))?t:du,u=a.find(({value:e})=>e===r),d=Boolean(u),c=()=>{d?(o(r),e.onClearCompare()):d||e.onCompareWithChanged(l.value)},m=s&&!r?cu:u,p=s||d,f=s&&m?{...m,label:`Comparison: ${m.label}`}:m;return h().createElement(nt.ButtonGroup,null,!s&&h().createElement(nt.ToolbarButton,{variant:"canvas",tooltip:(0,he.t)("grafana-scenes.components.scene-time-range-compare-renderer.button-tooltip","Enable time frame comparison"),onClick:e=>{e.stopPropagation(),e.preventDefault(),c()}},h().createElement(nt.Checkbox,{label:" ",value:d,onClick:c}),h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-time-range-compare-renderer.button-label"},"Comparison")),p?h().createElement(nt.ButtonSelect,{variant:"canvas",value:f,options:a,onChange:t=>{e.onCompareWithChanged(t.value)}}):h().createElement(nt.ToolbarButton,{className:n.previewButton,disabled:!0,variant:"canvas",isOpen:!1},l.label))};const mu=(e,t)=>{const n=t.timeRange.from.diff(e.timeRange.from);return t.series.forEach(e=>{e.refId=ou(e.refId||""),e.meta={...e.meta,timeCompare:{diffMs:n,isTimeShiftQuery:!0}},e.fields.forEach(e=>(e.type===s.FieldType.time&&(e.values=e.values.map(e=>n<0?e-n:e+n)),e.config={...e.config,color:{mode:"fixed",fixedColor:i.config.theme.palette.gray60}},e))}),(0,m.of)(t)};function pu(e){return{previewButton:(0,at.css)({"&:disabled":{border:`1px solid ${e.colors.secondary.border}`,color:e.colors.text.disabled,opacity:1}})}}(class extends Y{constructor(e){super(e),this.addActivationHandler(()=>{const e=hi.getData(this);this._subs.add(e.subscribeToState(e=>{var t;(null==(t=e.data)?void 0:t.state)===s.LoadingState.Done&&this.performRepeat(e.data)})),e.state.data&&this.performRepeat(e.state.data)})}performRepeat(e){const t=[];for(let n=0;n{const{body:t}=e.useState();return h().createElement(t.Component,{model:t})};(class extends Y{constructor(e){super(e),this._variableDependency=new Fs(this,{variableNames:[this.state.variableName],onVariableUpdateCompleted:()=>this.performRepeat()}),this.addActivationHandler(()=>this.performRepeat())}performRepeat(){if(this._variableDependency.hasDependencyInLoadingState())return;const e=hi.lookupVariable(this.state.variableName,this);if(!(e instanceof Re))return void console.error("SceneByVariableRepeater: variable is not a MultiValueVariable");const t=function(e){const{value:t,text:n,options:r}=e.state;if(e.hasAllValue())return r;if(Array.isArray(t)&&Array.isArray(n))return t.map((e,t)=>({value:e,label:n[t]}));return[{value:t,label:n}]}(e),n=[];for(const e of t){const t=this.state.getLayoutChild(e);n.push(t)}this.state.body.setState({children:n})}}).Component=({model:e})=>{const{body:t}=e.useState();return h().createElement(t.Component,{model:t})};(class extends Y{constructor(){super({}),this._renderBeforeActivation=!0}}).Component=e=>h().createElement("div",{style:{flexGrow:1}});class fu extends Y{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}fu.Component=function({model:e,parentState:t}){const{children:n,isHidden:r}=e.useState(),a=function(e,t){return(0,d.useMemo)(()=>{var n,r,a,s,o,l,u,d,c,h;const{direction:m="row",wrap:p}=e,f=i.config.theme2,_={};return t?gu(_,e,t):(_.display="flex",_.flexGrow=1,_.minWidth=e.minWidth,_.minHeight=e.minHeight),_.flexDirection=m,_.gap="8px",_.flexWrap=p||"nowrap",_.alignContent="baseline",_.minWidth=_.minWidth||0,_.minHeight=_.minHeight||0,_[f.breakpoints.down("md")]={flexDirection:null!=(r=null==(n=e.md)?void 0:n.direction)?r:"column",maxWidth:null!=(s=null==(a=e.md)?void 0:a.maxWidth)?s:"unset",maxHeight:null!=(l=null==(o=e.md)?void 0:o.maxHeight)?l:"unset",height:null!=(d=null==(u=e.md)?void 0:u.height)?d:"unset",width:null!=(h=null==(c=e.md)?void 0:c.width)?h:"unset"},(0,at.css)(_)},[t,e])}(e.state,t);if(r)return null;return h().createElement("div",{className:a},n.map(t=>{const n=t.Component;return h().createElement(n,{key:t.state.key,model:t,parentState:e.state})}))};class _u extends Y{}function gu(e,t,n){var r,a,s;const i=null!=(r=n.direction)?r:"row",{xSizing:o="fill",ySizing:l="fill"}=t;return e.display="flex",e.position="relative",e.flexDirection=i,"column"===i?(t.height?e.height=t.height:e.flexGrow="fill"===l?1:0,t.width?e.width=t.width:e.alignSelf="fill"===o?"stretch":"flex-start"):(t.height?e.height=t.height:e.alignSelf="fill"===l?"stretch":"flex-start",t.width?e.width=t.width:e.flexGrow="fill"===o?1:0,t.wrap&&(e.flexWrap=t.wrap,"nowrap"!==t.wrap&&("row"===i?e.rowGap="8px":e.columnGap="8px"))),e.minWidth=t.minWidth,e.maxWidth=t.maxWidth,e.maxHeight=t.maxHeight,e.minHeight=null!=(a=t.minHeight)?a:n.minHeight,e.height=null!=(s=t.height)?s:n.height,e}_u.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneFlexItem must be a child of SceneFlexLayout");const{body:n,isHidden:r}=e.useState(),a=function(e,t){return(0,d.useMemo)(()=>{var n,r,a,s,o,l,u,d,c,h;const m=i.config.theme2,p=gu({},e,t);return p[m.breakpoints.down("md")]={maxWidth:null!=(r=null==(n=e.md)?void 0:n.maxWidth)?r:"unset",maxHeight:null!=(s=null==(a=e.md)?void 0:a.maxHeight)?s:"unset",height:null!=(u=null==(o=e.md)?void 0:o.height)?u:null==(l=t.md)?void 0:l.height,width:null!=(h=null==(d=e.md)?void 0:d.width)?h:null==(c=t.md)?void 0:c.width},(0,at.css)(p)},[e,t])}(e.state,t);if(!n||r)return null;return h().createElement("div",{className:a},h().createElement(n.Component,{model:n}))};class yu extends Y{constructor(e){var t,n;super({rowGap:1,columnGap:1,templateColumns:"repeat(auto-fit, minmax(400px, 1fr))",autoRows:null!=(t=e.autoRows)?t:"320px",children:null!=(n=e.children)?n:[],...e})}isDraggable(){return!1}}yu.Component=function({model:e}){const{children:t,isHidden:n,isLazy:r}=e.useState(),a=(s=e.state,(0,d.useMemo)(()=>{var e,t,n,r,a,o,l,u,d,c,h;const m={},p=i.config.theme2;return m.display="grid",m.gridTemplateColumns=s.templateColumns,m.gridTemplateRows=s.templateRows||"unset",m.gridAutoRows=s.autoRows||"unset",m.rowGap=p.spacing(null!=(e=s.rowGap)?e:1),m.columnGap=p.spacing(null!=(t=s.columnGap)?t:1),m.justifyItems=s.justifyItems||"unset",m.alignItems=s.alignItems||"unset",m.justifyContent=s.justifyContent||"unset",m.flexGrow=1,s.md&&(m[p.breakpoints.down("md")]={gridTemplateRows:null==(n=s.md)?void 0:n.templateRows,gridTemplateColumns:null==(r=s.md)?void 0:r.templateColumns,rowGap:s.md.rowGap?p.spacing(null!=(o=null==(a=s.md)?void 0:a.rowGap)?o:1):void 0,columnGap:s.md.columnGap?p.spacing(null!=(u=null==(l=s.md)?void 0:l.rowGap)?u:1):void 0,justifyItems:null==(d=s.md)?void 0:d.justifyItems,alignItems:null==(c=s.md)?void 0:c.alignItems,justifyContent:null==(h=s.md)?void 0:h.justifyContent}),(0,at.css)(m)},[s]));var s;if(n)return null;return h().createElement("div",{className:a},t.map(t=>{const n=t.Component;return r?h().createElement(Nl,{key:t.state.key,className:a},h().createElement(n,{key:t.state.key,model:t,parentState:e.state})):h().createElement(n,{key:t.state.key,model:t,parentState:e.state})}))};class vu extends Y{}vu.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneCSSGridItem must be a child of SceneCSSGridLayout");const{body:n,isHidden:r}=e.useState(),a=(s=e.state,(0,d.useMemo)(()=>{const e={};return e.gridColumn=s.gridColumn||"unset",e.gridRow=s.gridRow||"unset",e.position="relative",(0,at.css)(e)},[s]));var s;if(!n||r)return null;return h().createElement("div",{className:a},h().createElement(n.Component,{model:n}))};const bu=new Set(["ArrowUp","ArrowDown"]),Mu=new Set(["ArrowLeft","ArrowRight"]),wu={row:{dim:"width",axis:"clientX",min:"minWidth",max:"maxWidth"},column:{dim:"height",axis:"clientY",min:"minHeight",max:"maxHeight"}};function Lu({direction:e="row",handleSize:t=32,initialSize:n="auto",primaryPaneStyles:r,secondaryPaneStyles:a,onDragFinished:s,children:i}){const o=h().Children.toArray(i),l=(0,d.useRef)(null),u=(0,d.useRef)(null),c=(0,d.useRef)(null),m=(0,d.useRef)(null),p=(0,d.useRef)(null),f=(0,d.useRef)("1fr"),_=(0,d.useRef)(void 0),g=(0,d.useRef)(void 0),y=wu[e].dim,v=wu[e].axis,b=wu[e].min,M=wu[e].max;!function(e,t,n=0,r){const a=(0,A.throttle)(t,n);(0,d.useLayoutEffect)(()=>{if(!e)return;const t=new ResizeObserver(a);return t.observe(e,{box:"device-pixel-content-box"}),()=>t.disconnect()},r)}(m.current,e=>{for(const t of e){if(!t.target.isSameNode(m.current))return;const e=u.current.getBoundingClientRect()[y],n=ku(u.current);l.current.ariaValueNow=`${(0,A.clamp)((e-n[b])/(n[M]-n[b])*100,0,100)}`}},500,[M,b,e,y]);const w=(0,d.useRef)(null),L=(0,d.useCallback)(e=>{f.current=u.current.getBoundingClientRect()[y],p.current=m.current.getBoundingClientRect()[y],w.current=e[v],l.current.setPointerCapture(e.pointerId),_.current=ku(u.current),g.current=void 0},[y,v]),S=(0,d.useCallback)(e=>{if(null!==w.current&&"1fr"!==f.current){const n=e[v]-w.current,r=_.current,a=(0,A.clamp)(f.current+n,r[b],r[M]),s=a/(p.current-t);u.current.style.flexGrow=`${s}`,c.current.style.flexGrow=""+(1-s);const i=(0,A.clamp)((a-r[b])/(r[M]-r[b])*100,0,100);l.current.ariaValueNow=`${i}`}},[t,v,b,M]),k=(0,d.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),l.current.releasePointerCapture(e.pointerId),w.current=null,null==s||s(parseFloat(u.current.style.flexGrow))},[s]),D=(0,d.useRef)(new Set),T=(0,d.useRef)(null),x=(0,d.useCallback)(n=>{var r;if(0===D.current.size)return void(T.current=null);if("1fr"===f.current)return;const a=.3*(n-(null!=(r=T.current)?r:n));let s=0;"row"===e?(D.current.has("ArrowLeft")&&(s-=a),D.current.has("ArrowRight")&&(s+=a)):(D.current.has("ArrowUp")&&(s-=a),D.current.has("ArrowDown")&&(s+=a));const i=_.current,o=u.current.getBoundingClientRect()[y],d=(0,A.clamp)(o+s,i[b],i[M]),h=d/(p.current-t);u.current.style.flexGrow=`${h}`,c.current.style.flexGrow=""+(1-h);const m=(d-i[b])/(i[M]-i[b])*100;l.current.ariaValueNow=`${(0,A.clamp)(m,0,100)}`,T.current=n,window.requestAnimationFrame(x)},[e,t,b,M,y]),Y=(0,d.useCallback)(n=>{if("Enter"===n.key)return void(void 0===g.current?(g.current=u.current.style.flexGrow,u.current.style.flexGrow="0",c.current.style.flexGrow="1"):(u.current.style.flexGrow=g.current,c.current.style.flexGrow=""+(1-parseFloat(g.current)),g.current=void 0));if("Home"===n.key){_.current=ku(u.current),p.current=m.current.getBoundingClientRect()[y];const e=_.current[b]/(p.current-t);return u.current.style.flexGrow=`${e}`,c.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="0")}if("End"===n.key){_.current=ku(u.current),p.current=m.current.getBoundingClientRect()[y];const e=_.current[M]/(p.current-t);return u.current.style.flexGrow=`${e}`,c.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="100")}if(!("column"===e&&bu.has(n.key)||"row"===e&&Mu.has(n.key))||D.current.has(n.key))return;g.current=void 0,n.preventDefault(),n.stopPropagation(),f.current=u.current.getBoundingClientRect()[y],p.current=m.current.getBoundingClientRect()[y],_.current=ku(u.current);if(!D.current.has(n.key)){const e=0===D.current.size;D.current.add(n.key),e&&window.requestAnimationFrame(x)}},[e,x,t,M,y,b]),E=(0,d.useCallback)(t=>{"row"===e&&!Mu.has(t.key)||"column"===e&&!bu.has(t.key)||(D.current.delete(t.key),null==s||s(parseFloat(u.current.style.flexGrow)))},[e,s]),O=(0,d.useCallback)(()=>{u.current.style.flexGrow="0.5",c.current.style.flexGrow="0.5";const e=ku(u.current);_.current=e,f.current=u.current.getBoundingClientRect()[y],l.current.ariaValueNow=""+(f.current-e[b])/(e[M]-e[b])*100},[M,y,b]),C=(0,d.useCallback)(()=>{D.current.size>0&&(D.current.clear(),w.current=null,null==s||s(parseFloat(u.current.style.flexGrow)))},[s]),R=(0,nt.useStyles2)(Su),P=Hl(),j=2===o.length?"visible":"hidden";return h().createElement("div",{ref:m,className:R.container,style:{flexDirection:e}},h().createElement("div",{ref:u,className:R.panel,style:{flexGrow:"auto"===n?.5:(0,A.clamp)(n,0,1),[b]:"min-content",...r},id:`start-panel-${P}`},o[0]),o[1]&&h().createElement(h().Fragment,null,h().createElement("div",{ref:l,style:{[y]:`${t}px`},className:(0,at.cx)(R.handle,{[R.handleHorizontal]:"column"===e}),onPointerUp:k,onPointerDown:L,onPointerMove:S,onKeyDown:Y,onKeyUp:E,onDoubleClick:O,onBlur:C,role:"separator","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":50,"aria-controls":`start-panel-${P}`,"aria-label":(0,he.t)("grafana-scenes.components.splitter.aria-label-pane-resize-widget","Pane resize widget"),tabIndex:0}),h().createElement("div",{ref:c,className:R.panel,style:{flexGrow:"auto"===n?.5:(0,A.clamp)(1-n,0,1),[b]:"min-content",visibility:`${j}`,...a},id:`end-panel-${P}`},o[1])))}function Su(e){return{handle:(0,at.css)({cursor:"col-resize",position:"relative",flexShrink:0,userSelect:"none","&::before":{content:'""',position:"absolute",backgroundColor:e.colors.primary.main,left:"50%",transform:"translate(-50%)",top:0,height:"100%",width:"1px",opacity:0,transition:"opacity ease-in-out 0.2s"},"&::after":{content:'""',width:"4px",borderRadius:"4px",backgroundColor:e.colors.border.weak,transition:"background-color ease-in-out 0.2s",height:"50%",top:"calc(50% - (50%) / 2)",transform:"translateX(-50%)",position:"absolute",left:"50%"},"&:hover, &:focus-visible":{outline:"none","&::before":{opacity:1},"&::after":{backgroundColor:e.colors.primary.main}}}),handleHorizontal:(0,at.css)({cursor:"row-resize","&::before":{left:"inherit",transform:"translateY(-50%)",top:"50%",height:"1px",width:"100%"},"&::after":{width:"50%",height:"4px",top:"50%",transform:"translateY(-50%)",left:"calc(50% - (50%) / 2)"}}),container:(0,at.css)({display:"flex",width:"100%",flexGrow:1,overflow:"hidden"}),panel:(0,at.css)({display:"flex",position:"relative",flexBasis:0})}}function ku(e){if(null===e)return;const t=document.body.style.overflow,n=e.style.width,r=e.style.height,a=e.style.flexGrow;document.body.style.overflow="hidden",e.style.flexGrow="0";const{width:s,height:i}=e.getBoundingClientRect();e.style.flexGrow="100";const{width:o,height:l}=e.getBoundingClientRect();return document.body.style.overflow=t,e.style.width=n,e.style.height=r,e.style.flexGrow=a,{minWidth:s,maxWidth:o,minHeight:i,maxHeight:l}}(class extends Y{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}).Component=function({model:e}){const{primary:t,secondary:n,direction:r,isHidden:a,initialSize:s,primaryPaneStyles:i,secondaryPaneStyles:o}=e.useState();if(a)return null;const l=t.Component,u=null==n?void 0:n.Component;let d=n?s:1;return h().createElement(Lu,{direction:r,initialSize:null!=d?d:.5,primaryPaneStyles:i,secondaryPaneStyles:o},h().createElement(l,{key:t.state.key,model:t,parentState:e.state}),u&&n&&h().createElement(u,{key:n.state.key,model:n,parentState:e.state}))};(class extends Y{constructor(){super(...arguments),this._renderBeforeActivation=!0}enrichDataRequest(){return{app:this.state.name||"app"}}}).Component=({model:e})=>{const{pages:t}=e.useState();return h().createElement(h().Fragment,null,h().createElement(Du.Provider,{value:e},h().createElement(a.Routes,null,t.map(e=>h().createElement(a.Route,{key:e.state.url,path:e.state.routePath,element:h().createElement(e.Component,{model:e})})))))};const Du=(0,d.createContext)(null);class Tu extends Y{}function xu({node:e}){const t=e.useState(),n=(0,nt.useStyles2)(Yu);return h().createElement("div",{className:n.container},Object.keys(t).map(r=>h().createElement("div",{className:n.row,key:r},h().createElement("div",{className:n.keyName},r),h().createElement("div",{className:n.value},function(e,t,n){if(null===t)return"null";switch(typeof t){case"number":return h().createElement(nt.Input,{type:"number",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.valueAsNumber})});case"string":return h().createElement(nt.Input,{type:"text",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.value})});case"object":return Ve(t)?t.constructor.name:(0,A.isPlainObject)(t)||(0,A.isArray)(t)?h().createElement(nt.JSONFormatter,{json:t,open:0}):String(t);default:return typeof t}}(r,t[r],e)))))}function Yu(e){return{container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),row:(0,at.css)({display:"flex",gap:e.spacing(2)}),keyName:(0,at.css)({display:"flex",flexGrow:"0",width:120,alignItems:"center",height:e.spacing(e.components.height.md)}),value:(0,at.css)({flexGrow:1,minHeight:e.spacing(e.components.height.md),display:"flex",alignItems:"center"})}}function Eu({node:e,selectedObject:t,onSelect:n}){const r=(0,nt.useStyles2)(Ou),a=[],s=e===t;return e.forEachChild(e=>{a.push(h().createElement(Eu,{node:e,key:e.state.key,selectedObject:t,onSelect:n}))}),h().createElement("div",{className:r.container},h().createElement("div",{className:(0,at.cx)(r.name,s&&r.selected),onClick:()=>n(e)},e.constructor.name),h().createElement("div",{className:r.children},a))}function Ou(e){return{container:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),name:(0,at.css)({flexGrow:1,display:"flex",gap:e.spacing(1),fontSize:e.typography.bodySmall.fontSize,cursor:"pointer",padding:e.spacing(0,1),borderRadius:e.shape.borderRadius(2),position:"relative","&:hover":{background:e.colors.background.secondary}}),selected:(0,at.css)({"&::before":{display:"block",content:"' '",position:"absolute",left:0,width:4,bottom:2,top:2,borderRadius:e.shape.radius.default,backgroundImage:e.colors.gradients.brandVertical}}),children:(0,at.css)({flexGrow:1,display:"flex",flexDirection:"column",paddingLeft:e.spacing(1)})}}function Au({scene:e}){const t=(0,nt.useStyles2)(Cu),[n,r]=(0,d.useState)(!1),[a,s]=(0,d.useState)();return h().createElement(h().Fragment,null,h().createElement(nt.ToolbarButton,{variant:"canvas",icon:"bug",onClick:()=>r(!0)}),n&&h().createElement(nt.Drawer,{title:(0,he.t)("grafana-scenes.components.scene-debugger.title-scene-debugger","Scene debugger"),onClose:()=>r(!1),size:"lg"},h().createElement("div",{className:t.panes},h().createElement("div",{className:t.pane1},h().createElement("div",{className:t.paneHeading},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-debugger.scene-graph"},"Scene graph")),h().createElement(nt.CustomScrollbar,{autoHeightMin:"100%"},h().createElement("div",{className:t.treeWrapper},h().createElement(Eu,{node:e,selectedObject:a,onSelect:s})))),h().createElement("div",{className:t.pane2},h().createElement("div",{className:t.paneHeading},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.scene-debugger.object-details"},"Object details")),a&&h().createElement(xu,{node:a})))))}function Cu(e){return{panes:(0,at.css)({flexGrow:1,display:"flex",height:"100%",flexDirection:"row",marginTop:e.spacing(-2)}),pane1:(0,at.css)({flexGrow:0,display:"flex",height:"100%",flexDirection:"column",borderRight:`1px solid ${e.colors.border.weak}`}),pane2:(0,at.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column",paddingLeft:e.spacing(2)}),treeWrapper:(0,at.css)({paddingRight:e.spacing(2),height:"100%",marginLeft:e.spacing(-1)}),paneHeading:(0,at.css)({padding:e.spacing(1,0),fontWeight:e.typography.fontWeightMedium})}}function Ru({page:e}){const t=l(e.state.url),n=function(e){if(e.parent instanceof Hu)return e.parent;return e}(e),r=n.useState(),s=function(){const e=(0,a.useLocation)();return(0,i.locationSearchToObject)(e.search||"")}(),u=e.getScene(t),c=(0,d.useContext)(Du),m=r.initializedScene===u,{layout:p}=e.state,f=Ae();(0,d.useLayoutEffect)(()=>{m||n.initializeScene(u)},[u,n,m]),(0,d.useEffect)(()=>()=>n.setState({initializedScene:void 0}),[n]);const _=Tl(n,null==c?void 0:c.state.urlSyncOptions);if(!m&&!_)return null;const g={text:r.title,img:r.titleImg,icon:r.titleIcon,url:o(r.url,f.getSearchObject(),r.preserveUrlKeys),hideFromBreadcrumbs:r.hideFromBreadcrumbs,parentItem:Pu(r.getParentPage?r.getParentPage():n.parent,s,f.getSearchObject())};r.tabs&&(g.children=r.tabs.map(t=>({text:t.state.title,icon:t.state.titleIcon,tabSuffix:t.state.tabSuffix,active:e===t,url:o(t.state.url,f.getSearchObject(),t.state.preserveUrlKeys),parentItem:g})));let y=[];return r.controls&&(y=r.controls.map(e=>h().createElement(e.Component,{model:e,key:e.state.key}))),s["scene-debugger"]&&y.push(h().createElement(Au,{scene:n,key:"scene-debugger"})),h().createElement(i.PluginPage,{layout:p,pageNav:g,actions:y,renderTitle:r.renderTitle,subTitle:r.subTitle},h().createElement(u.Component,{model:u}))}function Pu(e,t,n){if(e instanceof Hu)return{text:e.state.title,url:o(e.state.url,n,e.state.preserveUrlKeys),hideFromBreadcrumbs:e.state.hideFromBreadcrumbs,parentItem:Pu(e.state.getParentPage?e.state.getParentPage():e.parent,t,n)}}function ju({drilldown:e,parent:t}){const n=l(e.routePath),r=t.getDrilldownPage(e,n);return h().createElement(r.Component,{model:r})}Tu.Component=({model:e})=>{const{component:t,props:n,reactNode:r}=e.useState();return t?h().createElement(t,{...n}):r||null};class Hu extends Y{constructor(){super(...arguments),this._sceneCache=new Map,this._drilldownCache=new Map}initializeScene(e){this.setState({initializedScene:e})}getScene(e){let t=this._sceneCache.get(e.url);if(t)return t;if(!this.state.getScene)throw new Error("Missing getScene on SceneAppPage "+this.state.title);return t=this.state.getScene(e),this._sceneCache.set(e.url,t),t}getDrilldownPage(e,t){let n=this._drilldownCache.get(t.url);return n||(n=e.getPage(t,this),this._drilldownCache.set(t.url,n),n)}enrichDataRequest(e){if(this.state.getParentPage)return this.state.getParentPage().enrichDataRequest(e);if(!this.parent)return null;const t=this.getRoot();return ze(t)?t.enrichDataRequest(e):null}}Hu.Component=function({model:e}){const{tabs:t,drilldowns:n}=e.useState(),r=[];if(r.push(function(e){var t,n,r;return h().createElement(a.Route,{key:"fallback route",path:"*",element:h().createElement(Ru,{page:null!=(r=null==(n=(t=e.state).getFallbackPage)?void 0:n.call(t))?r:new Hu({url:"",title:(0,he.t)("grafana-scenes.components.fallback-page.title","Not found"),subTitle:(0,he.t)("grafana-scenes.components.fallback-page.subTitle","The url did not match any page"),routePath:"*",getScene:()=>new Yl({body:new fu({direction:"column",children:[new _u({body:new Tu({component:()=>h().createElement("div",{"data-testid":"default-fallback-content"},h().createElement(he.x6,{i18nKey:"grafana-scenes.components.fallback-page.content"},"If you found your way here using a link then there might be a bug in this application."))})})]})})})})})}(e)),t&&t.length>0)for(let n=0;nh().createElement(ju,{drilldown:t,parent:e})}));t||r.push(h().createElement(a.Route,{key:"home route",path:"/",element:h().createElement(Ru,{page:e})}));return h().createElement(a.Routes,null,r)};var Nu=(e=>(e.Always="always",e.Auto="auto",e.Never="never",e))(Nu||{}),Iu=(e=>(e.Hue="hue",e.None="none",e.Opacity="opacity",e.Scheme="scheme",e))(Iu||{}),Fu=(e=>(e.None="none",e.Normal="normal",e.Percent="percent",e))(Fu||{}),Wu=(e=>(e.Auto="auto",e.Horizontal="horizontal",e.Vertical="vertical",e))(Wu||{}),Vu=(e=>(e.Background="background",e.BackgroundSolid="background_solid",e.None="none",e.Value="value",e))(Vu||{}),zu=(e=>(e.Area="area",e.Line="line",e.None="none",e))(zu||{}),$u=(e=>(e.Auto="auto",e.Center="center",e))($u||{}),Bu=(e=>(e.Auto="auto",e.Name="name",e.None="none",e.Value="value",e.ValueAndName="value_and_name",e))(Bu||{}),Uu=(e=>(e.Inverted="inverted",e.SameAsValue="same_as_value",e.Standard="standard",e))(Uu||{}),qu=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(qu||{}),Gu=(e=>(e.Basic="basic",e.Gradient="gradient",e.Lcd="lcd",e))(Gu||{}),Ju=(e=>(e.Color="color",e.Hidden="hidden",e.Text="text",e))(Ju||{}),Ku=(e=>(e.Auto="auto",e.Hidden="hidden",e.Left="left",e.Top="top",e))(Ku||{}),Qu=(e=>(e.Auto="auto",e.Manual="manual",e))(Qu||{}),Zu=(e=>(e.Auto="auto",e.Lg="lg",e.Md="md",e.Sm="sm",e))(Zu||{});const Xu={barRadius:0,barWidth:.97,fullHighlight:!1,groupWidth:.7,orientation:Wu.Auto,showValue:Nu.Auto,stacking:Fu.None,xTickLabelRotation:0,xTickLabelSpacing:0},ed={fillOpacity:80,gradientMode:Iu.None,lineWidth:1},td={displayMode:Gu.Gradient,maxVizHeight:300,minVizHeight:16,minVizWidth:8,namePlacement:Ku.Auto,showUnfilled:!0,sizing:Qu.Auto,valueMode:Ju.Color},nd={selectedSeries:0},rd={minVizHeight:75,minVizWidth:75,showThresholdLabels:!1,showThresholdMarkers:!0,sizing:Qu.Auto},ad={layers:[]};const sd={calculate:!1,cellGap:1,cellValues:{},color:{scheme:"Oranges",fill:"dark-orange",reverse:!1,exponent:.5,steps:64},exemplars:{color:"rgba(255,0,255,0.7)"},filterValues:{le:1e-9},legend:{show:!0},selectionMode:"x",showValue:Nu.Auto,tooltip:{mode:qu.Single,yHistogram:!1,showColorScale:!1}},id={bucketCount:30,bucketOffset:0},od={fillOpacity:80,gradientMode:Iu.None,lineWidth:1},ld={showImage:!0};const ud={displayLabels:[]},dd={colorMode:Vu.Value,graphMode:zu.Area,justifyMode:$u.Auto,percentChangeColorMode:Uu.Standard,showPercentChange:!1,textMode:Bu.Auto,wideLayout:!0},cd={alignValue:"left",mergeValues:!0,perPage:20,rowHeight:.9,showValue:Nu.Auto},hd={fillOpacity:70,lineWidth:0},md={colWidth:.9,perPage:20,rowHeight:.9,showValue:Nu.Auto},pd={fillOpacity:70,lineWidth:1},fd={cellHeight:Zu.Sm,footer:{show:!1,countRows:!1,reducer:[]},frameIndex:0,showHeader:!0,showTypeIcons:!1,sortBy:[]};const _d={content:"# Title\n\nFor markdown syntax help: [commonmark.org/help](https://commonmark.org/help/)",mode:"markdown"};const gd={fillOpacity:50,show:"points"},yd={series:[]};class vd{constructor(){this._overrides=[]}overrideColor(e){return this._overrides[this._overrides.length-1].properties.push({id:"color",value:e}),this}overrideDecimals(e){return this._overrides[this._overrides.length-1].properties.push({id:"decimals",value:e}),this}overrideDisplayName(e){return this._overrides[this._overrides.length-1].properties.push({id:"displayName",value:e}),this}overrideFilterable(e){return this._overrides[this._overrides.length-1].properties.push({id:"filterable",value:e}),this}overrideLinks(e){return this._overrides[this._overrides.length-1].properties.push({id:"links",value:e}),this}overrideMappings(e){return this._overrides[this._overrides.length-1].properties.push({id:"mappings",value:e}),this}overrideMax(e){return this._overrides[this._overrides.length-1].properties.push({id:"max",value:e}),this}overrideMin(e){return this._overrides[this._overrides.length-1].properties.push({id:"min",value:e}),this}overrideNoValue(e){return this._overrides[this._overrides.length-1].properties.push({id:"noValue",value:e}),this}overrideThresholds(e){return this._overrides[this._overrides.length-1].properties.push({id:"thresholds",value:e}),this}overrideUnit(e){return this._overrides[this._overrides.length-1].properties.push({id:"unit",value:e}),this}}class bd extends vd{match(e){return this._overrides.push({matcher:e,properties:[]}),this}matchFieldsWithName(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byName,options:e},properties:[]}),this}matchFieldsWithNameByRegex(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byRegexp,options:e},properties:[]}),this}matchFieldsByType(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byType,options:e},properties:[]}),this}matchFieldsByQuery(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byFrameRefID,options:e},properties:[]}),this}matchFieldsByValue(e){return this._overrides.push({matcher:{id:s.FieldMatcherID.byValue,options:e},properties:[]}),this}matchComparisonQuery(e){return this.matchFieldsByQuery(ou(e))}overrideCustomFieldConfig(e,t){const n=`custom.${String(e)}`;return this._overrides[this._overrides.length-1].properties.push({id:n,value:t}),this}build(){return this._overrides}}class Md{constructor(e){this.defaultFieldConfig=e,this._fieldConfig={defaults:{},overrides:[]},this._overridesBuilder=new bd,this.setDefaults()}setDefaults(){const e={defaults:{custom:this.defaultFieldConfig?(0,A.cloneDeep)(this.defaultFieldConfig()):{}},overrides:[]};this._fieldConfig=e}setColor(e){return this.setFieldConfigDefaults("color",e)}setDecimals(e){return this.setFieldConfigDefaults("decimals",e)}setDisplayName(e){return this.setFieldConfigDefaults("displayName",e)}setFilterable(e){return this.setFieldConfigDefaults("filterable",e)}setLinks(e){return this.setFieldConfigDefaults("links",e)}setMappings(e){return this.setFieldConfigDefaults("mappings",e)}setMax(e){return this.setFieldConfigDefaults("max",e)}setMin(e){return this.setFieldConfigDefaults("min",e)}setNoValue(e){return this.setFieldConfigDefaults("noValue",e)}setThresholds(e){return this.setFieldConfigDefaults("thresholds",e)}setUnit(e){return this.setFieldConfigDefaults("unit",e)}setCustomFieldConfig(e,t){return this._fieldConfig.defaults={...this._fieldConfig.defaults,custom:(0,A.merge)(this._fieldConfig.defaults.custom,{[e]:t})},this}setOverrides(e){return e(this._overridesBuilder),this}setFieldConfigDefaults(e,t){return this._fieldConfig.defaults={...this._fieldConfig.defaults,[e]:t},this}build(){return{defaults:this._fieldConfig.defaults,overrides:this._overridesBuilder.build()}}}class wd{constructor(e){this.defaultOptions=e,this._options={},this.setDefaults()}setDefaults(){this._options=this.defaultOptions?(0,A.cloneDeep)(this.defaultOptions()):{}}setOption(e,t){return this._options=(0,A.merge)(this._options,{[e]:t}),this}build(){return this._options}}class Ld{constructor(e,t,n,r){this._state={},this._state.title="",this._state.description="",this._state.displayMode="default",this._state.hoverHeader=!1,this._state.pluginId=e,this._state.pluginVersion=t,this._fieldConfigBuilder=new Md(r),this._panelOptionsBuilder=new wd(n)}setTitle(e){return this._state.title=e,this}setDescription(e){return this._state.description=e,this}setDisplayMode(e){return this._state.displayMode=e,this}setHoverHeader(e){return this._state.hoverHeader=e,this}setShowMenuAlways(e){return this._state.showMenuAlways=e,this}setMenu(e){return this._state.menu=e,this}setHeaderActions(e){return this._state.headerActions=e,this}setCollapsible(e){return this._state.collapsible=e,this}setCollapsed(e){return this._state.collapsed=e,this}setColor(e){return this._fieldConfigBuilder.setColor(e),this}setDecimals(e){return this._fieldConfigBuilder.setDecimals(e),this}setDisplayName(e){return this._fieldConfigBuilder.setDisplayName(e),this}setFilterable(e){return this._fieldConfigBuilder.setFilterable(e),this}setLinks(e){return this._fieldConfigBuilder.setLinks(e),this}setMappings(e){return this._fieldConfigBuilder.setMappings(e),this}setMax(e){return this._fieldConfigBuilder.setMax(e),this}setMin(e){return this._fieldConfigBuilder.setMin(e),this}setNoValue(e){return this._fieldConfigBuilder.setNoValue(e),this}setThresholds(e){return this._fieldConfigBuilder.setThresholds(e),this}setUnit(e){return this._fieldConfigBuilder.setUnit(e),this}setCustomFieldConfig(e,t){return this._fieldConfigBuilder.setCustomFieldConfig(e,t),this}setOverrides(e){return this._fieldConfigBuilder.setOverrides(e),this}setOption(e,t){return this._panelOptionsBuilder.setOption(e,t),this}setData(e){return this._state.$data=e,this}setTimeRange(e){return this._state.$timeRange=e,this}setVariables(e){return this._state.$variables=e,this}setBehaviors(e){return this._state.$behaviors=e,this}setSeriesLimit(e){return this._state.seriesLimit=e,this}applyMixin(e){return e(this),this}build(){return new Ji({...this._state,options:this._panelOptionsBuilder.build(),fieldConfig:this._fieldConfigBuilder.build()})}}const Sd={barchart:()=>new Ld("barchart","10.0.0",()=>Xu,()=>ed),bargauge:()=>new Ld("bargauge","10.0.0",()=>td),datagrid:()=>new Ld("datagrid","10.0.0",()=>nd),flamegraph:()=>new Ld("flamegraph","10.0.0"),gauge:()=>new Ld("gauge","10.0.0",()=>rd),geomap:()=>new Ld("geomap","10.0.0",()=>ad),heatmap:()=>new Ld("heatmap","10.0.0",()=>sd),histogram:()=>new Ld("histogram","10.0.0",()=>id,()=>od),logs:()=>new Ld("logs","10.0.0"),news:()=>new Ld("news","10.0.0",()=>ld),nodegraph:()=>new Ld("nodeGraph","10.0.0"),piechart:()=>new Ld("piechart","10.0.0",()=>ud),stat:()=>new Ld("stat","10.0.0",()=>dd),statetimeline:()=>new Ld("state-timeline","10.0.0",()=>cd,()=>hd),statushistory:()=>new Ld("status-history","10.0.0",()=>md,()=>pd),table:()=>new Ld("table","10.0.0",()=>fd),text:()=>new Ld("text","10.0.0",()=>_d),timeseries:()=>new Ld("timeseries","10.0.0"),trend:()=>new Ld("trend","10.0.0"),traces:()=>new Ld("traces","10.0.0"),xychart:()=>new Ld("xychart","10.0.0",()=>yd,()=>gd)};n(5730).Y.reduce((e,t)=>(e[t.code]=async()=>await function(e){switch(e){case"../locales/cs-CZ/grafana-scenes.json":return n.e(549).then(n.bind(n,4549));case"../locales/de-DE/grafana-scenes.json":return n.e(876).then(n.bind(n,876));case"../locales/en-US/grafana-scenes.json":return n.e(767).then(n.bind(n,4767));case"../locales/es-ES/grafana-scenes.json":return n.e(190).then(n.bind(n,2190));case"../locales/fr-FR/grafana-scenes.json":return n.e(2).then(n.bind(n,6002));case"../locales/hu-HU/grafana-scenes.json":return n.e(220).then(n.bind(n,8220));case"../locales/id-ID/grafana-scenes.json":return n.e(980).then(n.bind(n,7980));case"../locales/it-IT/grafana-scenes.json":return n.e(644).then(n.bind(n,5644));case"../locales/ja-JP/grafana-scenes.json":return n.e(327).then(n.bind(n,4327));case"../locales/ko-KR/grafana-scenes.json":return n.e(353).then(n.bind(n,7353));case"../locales/nl-NL/grafana-scenes.json":return n.e(74).then(n.bind(n,6074));case"../locales/pl-PL/grafana-scenes.json":return n.e(582).then(n.bind(n,3582));case"../locales/pt-BR/grafana-scenes.json":return n.e(150).then(n.bind(n,5150));case"../locales/pt-PT/grafana-scenes.json":return n.e(206).then(n.bind(n,6206));case"../locales/ru-RU/grafana-scenes.json":return n.e(64).then(n.bind(n,6064));case"../locales/sv-SE/grafana-scenes.json":return n.e(697).then(n.bind(n,5697));case"../locales/tr-TR/grafana-scenes.json":return n.e(70).then(n.bind(n,5070));case"../locales/zh-Hans/grafana-scenes.json":return n.e(660).then(n.bind(n,6660));case"../locales/zh-Hant/grafana-scenes.json":return n.e(341).then(n.bind(n,9341));default:return new Promise(function(t,n){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}(`../locales/${t.code}/grafana-scenes.json`),e),{});const kd={getUrlWithAppState:o,registerRuntimePanelPlugin:function({pluginId:e,plugin:t}){if(u.has(e))throw new Error(`A runtime panel plugin with id ${e} has already been registered`);t.meta={...t.meta,id:e,name:e,module:"runtime plugin",baseUrl:"runtime plugin",info:{author:{name:"Runtime plugin "+e},description:"",links:[],logos:{large:"",small:""},screenshots:[],updated:"",version:""}},u.set(e,t)},registerRuntimeDataSource:function({dataSource:e}){if(R.has(e.uid))throw new Error(`A runtime data source with uid ${e.uid} has already been registered`);R.set(e.uid,e)},registerVariableMacro:function(e,t,n=!1){if(!n&&Fe.get(e))throw new Error(`Macro already registered ${e}`);return Fe.set(e,t),()=>{if(n)throw new Error("Replaced macros can not be unregistered. They need to be restored manually.");Fe.delete(e)}},cloneSceneObjectState:C,syncStateFromSearchParams:function(e,t,n){gi(e,t,new pi(n))},getUrlState:_i,renderPrometheusLabelFilters:Ds,escapeLabelValueInRegexSelector:xs,escapeLabelValueInExactSelector:Ts,escapeURLDelimiters:function(e){return As(Os(e))},isAdHocVariable:function(e){return"adhoc"===e.state.type},isConstantVariable:function(e){return"constant"===e.state.type},isCustomVariable:function(e){return"custom"===e.state.type},isDataSourceVariable:function(e){return"datasource"===e.state.type},isIntervalVariable:function(e){return"interval"===e.state.type},isQueryVariable:function(e){return"query"===e.state.type},isTextBoxVariable:function(e){return"textbox"===e.state.type},isGroupByVariable:function(e){return"groupby"===e.state.type},isRepeatCloneOrChildOf:Ce,buildPathIdFor:Mi}},144:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)>0},230:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},278:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,r,a,s){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var o=0;o0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),a&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=a):d[4]="".concat(a)),t.push(d))}},t}},311:function(e,t,n){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(2689))},341:function(e,t,n){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},362:(e,t,n)=>{"use strict";var r=n(6441);function a(){}function s(){}s.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,s,i){if(i!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:a};return n.PropTypes=n,n}},402:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.createCoreData=function(e,t,n){const a=!(0,r.isNum)(e.lastX),i=s(e);return a?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:i,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}},t.createDraggableData=function(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}},t.getBoundPosition=function(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:i}=e.props;i="string"==typeof i?i:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(i);const o=s(e);if("string"==typeof i){const{ownerDocument:e}=o,t=e.defaultView;let n;if("parent"===i)n=o.parentNode;else{n=o.getRootNode().querySelector(i)}if(!(n instanceof t.HTMLElement))throw new Error('Bounds selector "'+i+'" could not find an element.');const s=n,l=t.getComputedStyle(o),u=t.getComputedStyle(s);i={left:-o.offsetLeft+(0,r.int)(u.paddingLeft)+(0,r.int)(l.marginLeft),top:-o.offsetTop+(0,r.int)(u.paddingTop)+(0,r.int)(l.marginTop),right:(0,a.innerWidth)(s)-(0,a.outerWidth)(o)-o.offsetLeft+(0,r.int)(u.paddingRight)-(0,r.int)(l.marginRight),bottom:(0,a.innerHeight)(s)-(0,a.outerHeight)(o)-o.offsetTop+(0,r.int)(u.paddingBottom)-(0,r.int)(l.marginBottom)}}(0,r.isNum)(i.right)&&(t=Math.min(t,i.right));(0,r.isNum)(i.bottom)&&(n=Math.min(n,i.bottom));(0,r.isNum)(i.left)&&(t=Math.max(t,i.left));(0,r.isNum)(i.top)&&(n=Math.max(n,i.top));return[t,n]},t.getControlPosition=function(e,t,n){const r="number"==typeof t?(0,a.getTouch)(e,t):null;if("number"==typeof t&&!r)return null;const i=s(n),o=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,a.offsetXYFromParent)(r||e,o,n.props.scale)},t.snapToGrid=function(e,t,n){const r=Math.round(t/e[0])*e[0],a=Math.round(n/e[1])*e[1];return[r,a]};var r=n(6732),a=n(2837);function s(e){const t=e.findDOMNode();if(!t)throw new Error(": Unmounted during event!");return t}},414:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=c,t.childrenEqual=function(e,t){return(0,r.default)(a.default.Children.map(e,function(e){return null==e?void 0:e.key}),a.default.Children.map(t,function(e){return null==e?void 0:e.key}))},t.cloneLayout=h,t.cloneLayoutItem=p,t.collides=_,t.compact=g,t.compactItem=b,t.compactType=function(e){var t=e||{},n=t.verticalCompact,r=t.compactType;return!1===n?null:r},t.correctBounds=M,t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.fastRGLPropsEqual=void 0,t.getAllCollisions=S,t.getFirstCollision=L,t.getLayoutItem=w,t.getStatics=k,t.modifyLayout=m,t.moveElement=D,t.moveElementAwayFromCollision=T,t.noop=void 0,t.perc=function(e){return 100*e+"%"},t.setTopLeft=function(e){var t=e.top,n=e.left,r=e.width,a=e.height;return{top:"".concat(t,"px"),left:"".concat(n,"px"),width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.setTransform=function(e){var t=e.top,n=e.left,r=e.width,a=e.height,s="translate(".concat(n,"px,").concat(t,"px)");return{transform:s,WebkitTransform:s,MozTransform:s,msTransform:s,OTransform:s,width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.sortLayoutItems=x,t.sortLayoutItemsByColRow=E,t.sortLayoutItemsByRowCol=Y,t.synchronizeLayoutWithChildren=function(e,t,n,r,s){e=e||[];var i=[];a.default.Children.forEach(t,function(t){if(null!=(null==t?void 0:t.key)){var n=w(e,String(t.key));if(n)i.push(p(n));else{!u&&t.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var r=t.props["data-grid"]||t.props._grid;r?(u||O([r],"ReactGridLayout.children"),i.push(p(o(o({},r),{},{i:t.key})))):i.push(p({w:1,h:1,x:0,y:c(i),i:String(t.key)}))}}});var l=M(i,{cols:n});return s?l:g(l,r,n)},t.validateLayout=O,t.withLayoutItem=function(e,t,n){var r=w(e,t);return r?(r=n(p(r)),[e=m(e,r),r]):[e,null]};var r=s(n(7842)),a=s(n(5959));function s(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;tn&&(n=t);return n}function h(e){for(var t=Array(e.length),n=0,r=e.length;n=t.x+t.w)&&(!(e.y+e.h<=t.y)&&!(e.y>=t.y+t.h))))}function g(e,t,n){for(var r=k(e),a=x(e,t),s=Array(e.length),i=0,o=a.length;it.y+t.h)break;_(t,i)&&v(e,i,n+t[a],r)}}t[r]=n}function b(e,t,n,r,a){var s,i="horizontal"===n;if("vertical"===n)for(t.y=Math.min(c(e),t.y);t.y>0&&!L(e,t);)t.y--;else if(i)for(;t.x>0&&!L(e,t);)t.x--;for(;s=L(e,t);)i?v(a,t,s.x+s.w,"x"):v(a,t,s.y+s.h,"y"),i&&t.x+t.w>r&&(t.x=r-t.w,t.y++);return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function M(e,t){for(var n=k(e),r=0,a=e.length;rt.cols&&(s.x=t.cols-s.w),s.x<0&&(s.x=0,s.w=t.cols),s.static)for(;L(n,s);)s.y++;else n.push(s)}return e}function w(e,t){for(var n=0,r=e.length;n=r:"horizontal"===i&&"number"==typeof n&&u>=n)&&(c=c.reverse());var m=S(c,t),p=m.length>0;if(p&&l)return h(e);if(p&&s)return A("Collision prevented on ".concat(t.i,", reverting.")),t.x=u,t.y=d,t.moved=!1,e;for(var f=0,_=m.length;f<_;f++){var g=m[f];A("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(g.i," at [").concat(g.x,",").concat(g.y,"]")),g.moved||(e=g.static?T(e,g,t,a,i,o):T(e,t,g,a,i,o))}return e}function T(e,t,n,r,a,s){var i="horizontal"===a,o="horizontal"!==a,l=t.static;if(r){r=!1;var u={x:i?Math.max(t.x-n.w,0):n.x,y:o?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"};if(!L(e,u))return A("Doing reverse collision on ".concat(n.i," up to [").concat(u.x,",").concat(u.y,"].")),D(e,n,i?u.x:void 0,o?u.y:void 0,r,l,a,s)}return D(e,n,i?n.x+1:void 0,o?n.y+1:void 0,r,l,a,s)}function x(e,t){return"horizontal"===t?E(e):"vertical"===t?Y(e):e}function Y(e){return e.slice(0).sort(function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1})}function E(e){return e.slice(0).sort(function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1})}function O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",n=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var r=0,a=e.length;r=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var s,i=t.words[r];return 1===r.length?"y"===r&&n?"једна година":a||n?i[0]:i[1]:(s=t.correctGrammaticalCase(e,i),"yy"===r&&n&&"годину"===s?e+" година":e+" "+s)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},544:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findOrGenerateResponsiveLayout=function(e,t,n,s,i,o){if(e[n])return(0,r.cloneLayout)(e[n]);for(var l=e[s],u=a(t),d=u.slice(u.indexOf(n)),c=0,h=d.length;ce[o]&&(r=o)}return r},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.sortBreakpoints=a;var r=n(414);function a(e){return Object.keys(e).sort(function(t,n){return e[t]-e[n]})}},599:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)<0},600:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},603:(e,t,n)=>{"use strict";const r=n(2801);e.exports=(e,t)=>e.sort((e,n)=>r(e,n,t))},651:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},660:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,null,!0),a=r(t,null,!0),s=n.compare(a);if(0===s)return null;const i=s>0,o=i?n:a,l=i?a:n,u=!!o.prerelease.length;if(!!l.prerelease.length&&!u){if(!l.patch&&!l.minor)return"major";if(0===l.compareMain(o))return l.minor&&!l.patch?"minor":"patch"}const d=u?"pre":"";return n.major!==a.major?d+"major":n.minor!==a.minor?d+"minor":n.patch!==a.patch?d+"patch":"prerelease"}},694:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})},765:function(e,t,n){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(2689))},818:function(e,t,n){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(2689))},901:function(e,t,n){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},906:(e,t)=>{"use strict";function n(e){var t=e.margin,n=e.containerPadding,r=e.containerWidth,a=e.cols;return(r-t[0]*(a-1)-2*n[0])/a}function r(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function a(e,t,n){return Math.max(Math.min(e,n),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemPosition=function(e,t,a,s,i,o){var l=e.margin,u=e.containerPadding,d=e.rowHeight,c=n(e),h={};o&&o.resizing?(h.width=Math.round(o.resizing.width),h.height=Math.round(o.resizing.height)):(h.width=r(s,c,l[0]),h.height=r(i,d,l[1]));o&&o.dragging?(h.top=Math.round(o.dragging.top),h.left=Math.round(o.dragging.left)):(h.top=Math.round((d+l[1])*a+u[1]),h.left=Math.round((c+l[0])*t+u[0]));return h},t.calcGridItemWHPx=r,t.calcWH=function(e,t,r,s,i){var o=e.margin,l=e.maxRows,u=e.cols,d=e.rowHeight,c=n(e),h=Math.round((t+o[0])/(c+o[0])),m=Math.round((r+o[1])/(d+o[1]));return h=a(h,0,u-s),m=a(m,0,l-i),{w:h,h:m}},t.calcXY=function(e,t,r,s,i){var o=e.margin,l=e.cols,u=e.rowHeight,d=e.maxRows,c=n(e),h=Math.round((r-o[0])/(c+o[0])),m=Math.round((t-o[1])/(u+o[1]));return h=a(h,0,l-s),m=a(m,0,d-i),{x:h,y:m}},t.clamp=a},936:(e,t,n)=>{"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=n(1794).default,e.exports.ResizableBox=n(6609).default},940:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(5959);function a(e){for(var t=[],n=1;n=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(n(2689))},977:(e,t,n)=>{"use strict";function r(){return"undefined"!=typeof window}function a(e){return o(e)?(e.nodeName||"").toLowerCase():"#document"}function s(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function i(e){var t;return null==(t=(o(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function o(e){return!!r()&&(e instanceof Node||e instanceof s(e).Node)}function l(e){return!!r()&&(e instanceof Element||e instanceof s(e).Element)}function u(e){return!!r()&&(e instanceof HTMLElement||e instanceof s(e).HTMLElement)}function d(e){return!(!r()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof s(e).ShadowRoot)}n.d(t,{$4:()=>T,CP:()=>D,L9:()=>k,Lv:()=>p,Ng:()=>d,Tc:()=>w,Tf:()=>_,ZU:()=>h,_m:()=>E,ep:()=>i,eu:()=>S,gJ:()=>M,mq:()=>a,sQ:()=>b,sb:()=>u,v9:()=>Y,vq:()=>l,zk:()=>s});const c=new Set(["inline","contents"]);function h(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=k(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!c.has(a)}const m=new Set(["table","td","th"]);function p(e){return m.has(a(e))}const f=[":popover-open",":modal"];function _(e){return f.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const g=["transform","translate","scale","rotate","perspective"],y=["transform","translate","scale","rotate","perspective","filter"],v=["paint","layout","strict","content"];function b(e){const t=w(),n=l(e)?k(e):e;return g.some(e=>!!n[e]&&"none"!==n[e])||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||y.some(e=>(n.willChange||"").includes(e))||v.some(e=>(n.contain||"").includes(e))}function M(e){let t=T(e);for(;u(t)&&!S(t);){if(b(t))return t;if(_(t))return null;t=T(t)}return null}function w(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const L=new Set(["html","body","#document"]);function S(e){return L.has(a(e))}function k(e){return s(e).getComputedStyle(e)}function D(e){return l(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function T(e){if("html"===a(e))return e;const t=e.assignedSlot||e.parentNode||d(e)&&e.host||i(e);return d(t)?t.host:t}function x(e){const t=T(e);return S(t)?e.ownerDocument?e.ownerDocument.body:e.body:u(t)&&h(t)?t:x(t)}function Y(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const a=x(e),i=a===(null==(r=e.ownerDocument)?void 0:r.body),o=s(a);if(i){const e=E(o);return t.concat(o,o.visualViewport||[],h(a)?a:[],e&&n?Y(e):[])}return t.concat(a,Y(a,[],n))}function E(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}},1060:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(5959)),a=d(n(2688)),s=d(n(8398)),i=n(2837),o=n(402),l=n(6732),u=d(n(7988));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const h={start:"touchstart",move:"touchmove",stop:"touchend"},m={start:"mousedown",move:"mousemove",stop:"mouseup"};let p=m;class f extends r.Component{constructor(){super(...arguments),c(this,"dragging",!1),c(this,"lastX",NaN),c(this,"lastY",NaN),c(this,"touchIdentifier",null),c(this,"mounted",!1),c(this,"handleDragStart",e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;const t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw new Error(" not mounted on DragStart!");const{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,i.matchesSelectorAndParentsTo)(e.target,this.props.handle,t)||this.props.cancel&&(0,i.matchesSelectorAndParentsTo)(e.target,this.props.cancel,t))return;"touchstart"!==e.type||this.props.allowMobileScroll||e.preventDefault();const r=(0,i.getTouchIdentifier)(e);this.touchIdentifier=r;const a=(0,o.getControlPosition)(e,r,this);if(null==a)return;const{x:s,y:l}=a,d=(0,o.createCoreData)(this,s,l);(0,u.default)("DraggableCore: handleDragStart: %j",d),(0,u.default)("calling",this.props.onStart);!1!==this.props.onStart(e,d)&&!1!==this.mounted&&(this.props.enableUserSelectHack&&(0,i.addUserSelectStyles)(n),this.dragging=!0,this.lastX=s,this.lastY=l,(0,i.addEvent)(n,p.move,this.handleDrag),(0,i.addEvent)(n,p.stop,this.handleDragStop))}),c(this,"handleDrag",e=>{const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=(0,o.snapToGrid)(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);(0,u.default)("DraggableCore: handleDrag: %j",a);if(!1!==this.props.onDrag(e,a)&&!1!==this.mounted)this.lastX=n,this.lastY=r;else try{this.handleDragStop(new MouseEvent("mouseup"))}catch(e){const t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(t)}}),c(this,"handleDragStop",e=>{if(!this.dragging)return;const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=(0,o.snapToGrid)(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);if(!1===this.props.onStop(e,a)||!1===this.mounted)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(s.ownerDocument),(0,u.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,u.default)("DraggableCore: Removing handlers"),(0,i.removeEvent)(s.ownerDocument,p.move,this.handleDrag),(0,i.removeEvent)(s.ownerDocument,p.stop,this.handleDragStop))}),c(this,"onMouseDown",e=>(p=m,this.handleDragStart(e))),c(this,"onMouseUp",e=>(p=m,this.handleDragStop(e))),c(this,"onTouchStart",e=>(p=h,this.handleDragStart(e))),c(this,"onTouchEnd",e=>(p=h,this.handleDragStop(e)))}componentDidMount(){this.mounted=!0;const e=this.findDOMNode();e&&(0,i.addEvent)(e,h.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const e=this.findDOMNode();if(e){const{ownerDocument:t}=e;(0,i.removeEvent)(t,m.move,this.handleDrag),(0,i.removeEvent)(t,h.move,this.handleDrag),(0,i.removeEvent)(t,m.stop,this.handleDragStop),(0,i.removeEvent)(t,h.stop,this.handleDragStop),(0,i.removeEvent)(e,h.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(t)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:s.default.findDOMNode(this)}render(){return r.cloneElement(r.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}t.default=f,c(f,"displayName","DraggableCore"),c(f,"propTypes",{allowAnyClick:a.default.bool,allowMobileScroll:a.default.bool,children:a.default.node.isRequired,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:a.default.arrayOf(a.default.number),handle:a.default.string,cancel:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),c(f,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},1099:(e,t,n)=>{"use strict";n.d(t,{J:()=>o});var r,a=n(3003),s=n(5959);const i=null!==(r=s.useInsertionEffect)&&void 0!==r?r:a.N;function o(e){const t=(0,s.useRef)(null);return i(()=>{t.current=e},[e]),(0,s.useCallback)((...e)=>{const n=t.current;return null==n?void 0:n(...e)},[])}},1112:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t,n))},1146:function(e,t,n){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var s=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?s+(n||a?"sekúndur":"sekúndum"):s+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?s+(n||a?"mínútur":"mínútum"):n?s+"mínúta":s+"mínútu";case"hh":return t(e)?s+(n||a?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?s+"dagar":s+(a?"daga":"dögum"):n?s+"dagur":s+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?s+"mánuðir":s+(a?"mánuði":"mánuðum"):n?s+"mánuður":s+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?s+(n||a?"ár":"árum"):s+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1152:function(e,t,n){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},1158:e=>{"use strict";e.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);return void 0===t?void 0:(this.map.delete(e),this.map.set(e,t),t)}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&void 0!==t){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}},1258:function(e,t,n){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1326:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},1388:function(e,t,n){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(2689))},1463:function(e,t,n){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(2689))},1465:(e,t,n)=>{"use strict";const r=n(1722),a=n(5380);e.exports=(e,t,n)=>{const s=[];let i=null,o=null;const l=e.sort((e,t)=>a(e,t,n));for(const e of l){r(e,t,n)?(o=e,i||(i=e)):(o&&s.push([i,o]),o=null,i=null)}i&&s.push([i,null]);const u=[];for(const[e,t]of s)e===t?u.push(e):t||e!==l[0]?t?e===l[0]?u.push(`<=${t}`):u.push(`${e} - ${t}`):u.push(`>=${e}`):u.push("*");const d=u.join(" || "),c="string"==typeof t.raw?t.raw:String(t);return d.length{"use strict";n.d(t,{A:()=>At});var r=n(7405),a=n(7850),s=n(5959),i=n.n(s),o=n(8398),l=n.n(o);function u(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}var d={},c=[];function h(e,t){}function m(e,t){}function p(e,t,n){t||d[n]||(e(!1,n),d[n]=!0)}function f(e,t){p(h,e,t)}f.preMessage=function(e){c.push(e)},f.resetWarned=function(){d={}},f.noteOnce=function(e,t){p(m,e,t)};const _=f;var g=n(694),y=n(9555);var v=Symbol.for("react.element"),b=Symbol.for("react.transitional.element"),M=Symbol.for("react.fragment");var w=Number(s.version.split(".")[0]),L=function(e,t){"function"==typeof e?e(t):"object"===(0,g.A)(e)&&e&&"current"in e&&(e.current=t)},S=function(){for(var e=arguments.length,t=new Array(e),n=0;n=19)return!0;var r=(0,y.isMemo)(e)?e.type.type:e.type;return!!("function"!=typeof r||null!==(t=r.prototype)&&void 0!==t&&t.render||r.$$typeof===y.ForwardRef)&&!!("function"!=typeof e||null!==(n=e.prototype)&&void 0!==n&&n.render||e.$$typeof===y.ForwardRef)};function T(e){return(0,s.isValidElement)(e)&&!((t=e)&&"object"===(0,g.A)(t)&&(t.$$typeof===v||t.$$typeof===b)&&t.type===M);var t}const x=s.createContext(null);var Y=n(7451);var E=n(6438);function O(e){return function(e){if(Array.isArray(e))return(0,Y.A)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,E.A)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var A=u()?s.useLayoutEffect:s.useEffect,C=function(e,t){var n=s.useRef(!0);A(function(){return e(n.current)},t),A(function(){return n.current=!1,function(){n.current=!0}},[])};const R=C;var P=[];var j="data-rc-order",H="data-rc-priority",N=new Map;function I(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).mark;return e?e.startsWith("data-")?e:"data-".concat(e):"rc-util-key"}function F(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function W(e){return Array.from((N.get(e)||e).children).filter(function(e){return"STYLE"===e.tagName})}function V(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!u())return null;var n=t.csp,r=t.prepend,a=t.priority,s=void 0===a?0:a,i=function(e){return"queue"===e?"prependQueue":e?"prepend":"append"}(r),o="prependQueue"===i,l=document.createElement("style");l.setAttribute(j,i),o&&s&&l.setAttribute(H,"".concat(s)),null!=n&&n.nonce&&(l.nonce=null==n?void 0:n.nonce),l.innerHTML=e;var d=F(t),c=d.firstChild;if(r){if(o){var h=(t.styles||W(d)).filter(function(e){if(!["prepend","prependQueue"].includes(e.getAttribute(j)))return!1;var t=Number(e.getAttribute(H)||0);return s>=t});if(h.length)return d.insertBefore(l,h[h.length-1].nextSibling),l}d.insertBefore(l,c)}else d.appendChild(l);return l}function z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=F(t);return(t.styles||W(n)).find(function(n){return n.getAttribute(I(t))===e})}function $(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=z(e,t);n&&F(t).removeChild(n)}function B(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=F(n),s=W(a),i=(0,r.A)((0,r.A)({},n),{},{styles:s});!function(e,t){var n=N.get(e);if(!n||!function(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}(document,n)){var r=V("",t),a=r.parentNode;N.set(e,a),e.removeChild(r)}}(a,i);var o=z(t,i);if(o){var l,u,d;if(null!==(l=i.csp)&&void 0!==l&&l.nonce&&o.nonce!==(null===(u=i.csp)||void 0===u?void 0:u.nonce))o.nonce=null===(d=i.csp)||void 0===d?void 0:d.nonce;return o.innerHTML!==e&&(o.innerHTML=e),o}var c=V(e,i);return c.setAttribute(I(i),t),c}function U(e){var t="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),n=document.createElement("div");n.id=t;var r,a,s=n.style;if(s.position="absolute",s.left="0",s.top="0",s.width="100px",s.height="100px",s.overflow="scroll",e){var i=getComputedStyle(e);s.scrollbarColor=i.scrollbarColor,s.scrollbarWidth=i.scrollbarWidth;var o=getComputedStyle(e,"::-webkit-scrollbar"),l=parseInt(o.width,10),u=parseInt(o.height,10);try{var d=l?"width: ".concat(o.width,";"):"",c=u?"height: ".concat(o.height,";"):"";B("\n#".concat(t,"::-webkit-scrollbar {\n").concat(d,"\n").concat(c,"\n}"),t)}catch(e){console.error(e),r=l,a=u}}document.body.appendChild(n);var h=e&&r&&!isNaN(r)?r:n.offsetWidth-n.clientWidth,m=e&&a&&!isNaN(a)?a:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),$(t),{width:h,height:m}}var q="rc-util-locker-".concat(Date.now()),G=0;function J(e){var t=!!e,n=s.useState(function(){return G+=1,"".concat(q,"_").concat(G)}),r=(0,a.A)(n,1)[0];R(function(){if(t){var e=(a=document.body,"undefined"!=typeof document&&a&&a instanceof Element?U(a):{width:0,height:0}).width,n=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;B("\nhtml body {\n overflow-y: hidden;\n ".concat(n?"width: calc(100% - ".concat(e,"px);"):"","\n}"),r)}else $(r);var a;return function(){$(r)}},[t,r])}var K=!1;var Q=function(e){return!1!==e&&(u()&&e?"string"==typeof e?document.querySelector(e):"function"==typeof e?e():e:null)},Z=s.forwardRef(function(e,t){var n=e.open,r=e.autoLock,i=e.getContainer,l=(e.debug,e.autoDestroy),d=void 0===l||l,c=e.children,h=s.useState(n),m=(0,a.A)(h,2),p=m[0],f=m[1],_=p||n;s.useEffect(function(){(d||n)&&f(n)},[n,d]);var g=s.useState(function(){return Q(i)}),y=(0,a.A)(g,2),v=y[0],b=y[1];s.useEffect(function(){var e=Q(i);b(null!=e?e:null)});var M=function(e){var t=s.useState(function(){return u()?document.createElement("div"):null}),n=(0,a.A)(t,1)[0],r=s.useRef(!1),i=s.useContext(x),o=s.useState(P),l=(0,a.A)(o,2),d=l[0],c=l[1],h=i||(r.current?void 0:function(e){c(function(t){return[e].concat(O(t))})});function m(){n.parentElement||document.body.appendChild(n),r.current=!0}function p(){var e;null===(e=n.parentElement)||void 0===e||e.removeChild(n),r.current=!1}return R(function(){return e?i?i(m):m():p(),p},[e]),R(function(){d.length&&(d.forEach(function(e){return e()}),c(P))},[d]),[n,h]}(_&&!v),w=(0,a.A)(M,2),L=w[0],S=w[1],T=null!=v?v:L;J(r&&n&&u()&&(T===L||T===document.body));var Y=null;c&&D(c)&&t&&(Y=c.ref);var E=k(Y,t);if(!_||!u()||void 0===v)return null;var A,C=!1===T||("boolean"==typeof A&&(K=A),K),j=c;return t&&(j=s.cloneElement(c,{ref:E})),s.createElement(x.Provider,{value:S},C?j:(0,o.createPortal)(j,T))});const X=Z;var ee=s.createContext(null),te=s.createContext({});const ne=ee;var re=n(1705),ae=n(8102),se=n(4452),ie=n.n(se);function oe(e){return e instanceof HTMLElement||e instanceof SVGElement}function le(e){var t,n=function(e){return e&&"object"===(0,g.A)(e)&&oe(e.nativeElement)?e.nativeElement:oe(e)?e:null}(e);return n||(e instanceof i().Component?null===(t=l().findDOMNode)||void 0===t?void 0:t.call(l(),e):null)}var ue=s.createContext({});function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ce=n(2162);function he(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1),t};et.cancel=function(e){var t=Ze.get(e);return Xe(e),Ke(t)};const tt=et;var nt=[xe,Ye,Ee,Oe],rt=[xe,Ae],at=!1;function st(e){return e===Ee||e===Oe}const it=function(e,t,n){var r=we(Te),i=(0,a.A)(r,2),o=i[0],l=i[1],u=function(){var e=s.useRef(null);function t(){tt.cancel(e.current)}return s.useEffect(function(){return function(){t()}},[]),[function n(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;t();var s=tt(function(){a<=1?r({isCanceled:function(){return s!==e.current}}):n(r,a-1)});e.current=s},t]}(),d=(0,a.A)(u,2),c=d[0],h=d[1];var m=t?rt:nt;return Ge(function(){if(o!==Te&&o!==Oe){var e=m.indexOf(o),t=m[e+1],r=n(o);r===at?l(t,!0):t&&c(function(e){function n(){e.isCanceled()||l(t,!0)}!0===r?n():Promise.resolve(r).then(n)})}},[e,o]),s.useEffect(function(){return function(){h()}},[]),[function(){l(xe,!0)},o]};function ot(e,t,n,i){var o,l,u,d,c=i.motionEnter,h=void 0===c||c,m=i.motionAppear,p=void 0===m||m,f=i.motionLeave,_=void 0===f||f,g=i.motionDeadline,y=i.motionLeaveImmediately,v=i.onAppearPrepare,b=i.onEnterPrepare,M=i.onLeavePrepare,w=i.onAppearStart,L=i.onEnterStart,S=i.onLeaveStart,k=i.onAppearActive,D=i.onEnterActive,T=i.onLeaveActive,x=i.onAppearEnd,Y=i.onEnterEnd,E=i.onLeaveEnd,O=i.onVisibleChanged,A=we(),C=(0,a.A)(A,2),R=C[0],P=C[1],j=(o=Le,l=s.useReducer(function(e){return e+1},0),u=(0,a.A)(l,2)[1],d=s.useRef(o),[Me(function(){return d.current}),Me(function(e){d.current="function"==typeof e?e(d.current):e,u()})]),H=(0,a.A)(j,2),N=H[0],I=H[1],F=we(null),W=(0,a.A)(F,2),V=W[0],z=W[1],$=N(),B=(0,s.useRef)(!1),U=(0,s.useRef)(null);function q(){return n()}var G=(0,s.useRef)(!1);function J(){I(Le),z(null,!0)}var K=Me(function(e){var t=N();if(t!==Le){var n=q();if(!e||e.deadline||e.target===n){var r,a=G.current;t===Se&&a?r=null==x?void 0:x(n,e):t===ke&&a?r=null==Y?void 0:Y(n,e):t===De&&a&&(r=null==E?void 0:E(n,e)),a&&!1!==r&&J()}}}),Q=function(e){var t=(0,s.useRef)();function n(t){t&&(t.removeEventListener(Ue,e),t.removeEventListener(Be,e))}return s.useEffect(function(){return function(){n(t.current)}},[]),[function(r){t.current&&t.current!==r&&n(t.current),r&&r!==t.current&&(r.addEventListener(Ue,e),r.addEventListener(Be,e),t.current=r)},n]}(K),Z=(0,a.A)(Q,1)[0],X=function(e){switch(e){case Se:return(0,re.A)((0,re.A)((0,re.A)({},xe,v),Ye,w),Ee,k);case ke:return(0,re.A)((0,re.A)((0,re.A)({},xe,b),Ye,L),Ee,D);case De:return(0,re.A)((0,re.A)((0,re.A)({},xe,M),Ye,S),Ee,T);default:return{}}},ee=s.useMemo(function(){return X($)},[$]),te=it($,!e,function(e){if(e===xe){var t=ee[xe];return t?t(q()):at}var n;se in ee&&z((null===(n=ee[se])||void 0===n?void 0:n.call(ee,q(),null))||null);return se===Ee&&$!==Le&&(Z(q()),g>0&&(clearTimeout(U.current),U.current=setTimeout(function(){K({deadline:!0})},g))),se===Ae&&J(),true}),ne=(0,a.A)(te,2),ae=ne[0],se=ne[1],ie=st(se);G.current=ie;var oe=(0,s.useRef)(null);Ge(function(){if(!B.current||oe.current!==t){P(t);var n,r=B.current;B.current=!0,!r&&t&&p&&(n=Se),r&&t&&h&&(n=ke),(r&&!t&&_||!r&&y&&!t&&_)&&(n=De);var a=X(n);n&&(e||a[xe])?(I(n),ae()):I(Le),oe.current=t}},[t]),(0,s.useEffect)(function(){($===Se&&!p||$===ke&&!h||$===De&&!_)&&I(Le)},[p,h,_]),(0,s.useEffect)(function(){return function(){B.current=!1,clearTimeout(U.current)}},[]);var le=s.useRef(!1);(0,s.useEffect)(function(){R&&(le.current=!0),void 0!==R&&$===Le&&((le.current||R)&&(null==O||O(R)),le.current=!0)},[R,$]);var ue=V;return ee[xe]&&se===Ye&&(ue=(0,r.A)({transition:"none"},ue)),[$,se,ue,null!=R?R:t]}const lt=function(e){var t=e;"object"===(0,g.A)(e)&&(t=e.transitionSupport);var n=s.forwardRef(function(e,n){var i=e.visible,o=void 0===i||i,l=e.removeOnLeave,u=void 0===l||l,d=e.forceRender,c=e.children,h=e.motionName,m=e.leavedClassName,p=e.eventProps,f=function(e,n){return!(!e.motionName||!t||!1===n)}(e,s.useContext(ue).motion),_=(0,s.useRef)(),g=(0,s.useRef)();var y=ot(f,o,function(){try{return _.current instanceof HTMLElement?_.current:le(g.current)}catch(e){return null}},e),v=(0,a.A)(y,4),b=v[0],M=v[1],w=v[2],S=v[3],k=s.useRef(S);S&&(k.current=!0);var x,Y=s.useCallback(function(e){_.current=e,L(n,e)},[n]),E=(0,r.A)((0,r.A)({},p),{},{visible:o});if(c)if(b===Le)x=S?c((0,r.A)({},E),Y):!u&&k.current&&m?c((0,r.A)((0,r.A)({},E),{},{className:m}),Y):d||!u&&!m?c((0,r.A)((0,r.A)({},E),{},{style:{display:"none"}}),Y):null;else{var O;M===xe?O="prepare":st(M)?O="active":M===Ye&&(O="start");var A=qe(h,"".concat(b,"-").concat(O));x=c((0,r.A)((0,r.A)({},E),{},{className:ie()(qe(h,b),(0,re.A)((0,re.A)({},A,A&&O),h,"string"==typeof h)),style:w}),Y)}else x=null;s.isValidElement(x)&&D(x)&&(function(e){if(e&&T(e)){var t=e;return t.props.propertyIsEnumerable("ref")?t.props.ref:t.ref}return null}(x)||(x=s.cloneElement(x,{ref:Y})));return s.createElement(be,{ref:g},x)});return n.displayName="CSSMotion",n}($e);var ut=n(9644),dt="add",ct="keep",ht="remove",mt="removed";function pt(e){var t;return t=e&&"object"===(0,g.A)(e)&&"key"in e?e:{key:e},(0,r.A)((0,r.A)({},t),{},{key:String(t.key)})}function ft(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map(pt)}var _t=["component","children","onVisibleChanged","onAllRemoved"],gt=["status"],yt=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];!function(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:lt,t=function(t){fe(a,t);var n=ve(a);function a(){var e;de(this,a);for(var t=arguments.length,s=new Array(t),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],a=0,s=t.length,i=ft(e),o=ft(t);i.forEach(function(e){for(var t=!1,i=a;i1}).forEach(function(e){(n=n.filter(function(t){var n=t.key,r=t.status;return n!==e||r!==ht})).forEach(function(t){t.key===e&&(t.status=ct)})}),n}(a,s);return{keyEntities:i.filter(function(e){var t=a.find(function(t){var n=t.key;return e.key===n});return!t||t.status!==mt||e.status!==ht})}}}]),a}(s.Component);(0,re.A)(t,"defaultProps",{component:"div"})}($e);const vt=lt;var bt={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=bt.F1&&t<=bt.F12)return!1;switch(t){case bt.ALT:case bt.CAPS_LOCK:case bt.CONTEXT_MENU:case bt.CTRL:case bt.DOWN:case bt.END:case bt.ESC:case bt.HOME:case bt.INSERT:case bt.LEFT:case bt.MAC_FF_META:case bt.META:case bt.NUMLOCK:case bt.NUM_CENTER:case bt.PAGE_DOWN:case bt.PAGE_UP:case bt.PAUSE:case bt.PRINT_SCREEN:case bt.RIGHT:case bt.SHIFT:case bt.UP:case bt.WIN_KEY:case bt.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=bt.ZERO&&e<=bt.NINE)return!0;if(e>=bt.NUM_ZERO&&e<=bt.NUM_MULTIPLY)return!0;if(e>=bt.A&&e<=bt.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case bt.SPACE:case bt.QUESTION_MARK:case bt.NUM_PLUS:case bt.NUM_MINUS:case bt.NUM_PERIOD:case bt.NUM_DIVISION:case bt.SEMICOLON:case bt.DASH:case bt.EQUALS:case bt.COMMA:case bt.PERIOD:case bt.SLASH:case bt.APOSTROPHE:case bt.SINGLE_QUOTE:case bt.OPEN_SQUARE_BRACKET:case bt.BACKSLASH:case bt.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};const Mt=bt;var wt="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/);function Lt(e,t){return 0===e.indexOf(t)}function St(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:(0,r.A)({},n);var a={};return Object.keys(e).forEach(function(n){(t.aria&&("role"===n||Lt(n,"aria-"))||t.data&&Lt(n,"data-")||t.attr&&wt.includes(n))&&(a[n]=e[n])}),a}var kt=["prefixCls","className","containerRef"];const Dt=function(e){var t=e.prefixCls,n=e.className,r=e.containerRef,a=(0,ut.A)(e,kt),i=s.useContext(te).panel,o=k(i,r);return s.createElement("div",(0,ae.A)({className:ie()("".concat(t,"-content"),n),role:"dialog",ref:o},St(e,{aria:!0}),{"aria-modal":"true"},a))};function Tt(e){return"string"==typeof e&&String(Number(e))===e?(_(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}var xt={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"};function Yt(e,t){var n,i,o,l=e.prefixCls,u=e.open,d=e.placement,c=e.inline,h=e.push,m=e.forceRender,p=e.autoFocus,f=e.keyboard,_=e.classNames,g=e.rootClassName,y=e.rootStyle,v=e.zIndex,b=e.className,M=e.id,w=e.style,L=e.motion,S=e.width,k=e.height,D=e.children,T=e.mask,x=e.maskClosable,Y=e.maskMotion,E=e.maskClassName,O=e.maskStyle,A=e.afterOpenChange,C=e.onClose,R=e.onMouseEnter,P=e.onMouseOver,j=e.onMouseLeave,H=e.onClick,N=e.onKeyDown,I=e.onKeyUp,F=e.styles,W=e.drawerRender,V=s.useRef(),z=s.useRef(),$=s.useRef();s.useImperativeHandle(t,function(){return V.current});s.useEffect(function(){var e;u&&p&&(null===(e=V.current)||void 0===e||e.focus({preventScroll:!0}))},[u]);var B=s.useState(!1),U=(0,a.A)(B,2),q=U[0],G=U[1],J=s.useContext(ne),K=null!==(n=null!==(i=null===(o="boolean"==typeof h?h?{}:{distance:0}:h||{})||void 0===o?void 0:o.distance)&&void 0!==i?i:null==J?void 0:J.pushDistance)&&void 0!==n?n:180,Q=s.useMemo(function(){return{pushDistance:K,push:function(){G(!0)},pull:function(){G(!1)}}},[K]);s.useEffect(function(){var e,t;u?null==J||null===(e=J.push)||void 0===e||e.call(J):null==J||null===(t=J.pull)||void 0===t||t.call(J)},[u]),s.useEffect(function(){return function(){var e;null==J||null===(e=J.pull)||void 0===e||e.call(J)}},[]);var Z=s.createElement(vt,(0,ae.A)({key:"mask"},Y,{visible:T&&u}),function(e,t){var n=e.className,a=e.style;return s.createElement("div",{className:ie()("".concat(l,"-mask"),n,null==_?void 0:_.mask,E),style:(0,r.A)((0,r.A)((0,r.A)({},a),O),null==F?void 0:F.mask),onClick:x&&u?C:void 0,ref:t})}),X="function"==typeof L?L(d):L,ee={};if(q&&K)switch(d){case"top":ee.transform="translateY(".concat(K,"px)");break;case"bottom":ee.transform="translateY(".concat(-K,"px)");break;case"left":ee.transform="translateX(".concat(K,"px)");break;default:ee.transform="translateX(".concat(-K,"px)")}"left"===d||"right"===d?ee.width=Tt(S):ee.height=Tt(k);var te={onMouseEnter:R,onMouseOver:P,onMouseLeave:j,onClick:H,onKeyDown:N,onKeyUp:I},se=s.createElement(vt,(0,ae.A)({key:"panel"},X,{visible:u,forceRender:m,onVisibleChanged:function(e){null==A||A(e)},removeOnLeave:!1,leavedClassName:"".concat(l,"-content-wrapper-hidden")}),function(t,n){var a=t.className,i=t.style,o=s.createElement(Dt,(0,ae.A)({id:M,containerRef:n,prefixCls:l,className:ie()(b,null==_?void 0:_.content),style:(0,r.A)((0,r.A)({},w),null==F?void 0:F.content)},St(e,{aria:!0}),te),D);return s.createElement("div",(0,ae.A)({className:ie()("".concat(l,"-content-wrapper"),null==_?void 0:_.wrapper,a),style:(0,r.A)((0,r.A)((0,r.A)({},ee),i),null==F?void 0:F.wrapper)},St(e,{data:!0})),W?W(o):o)}),oe=(0,r.A)({},y);return v&&(oe.zIndex=v),s.createElement(ne.Provider,{value:Q},s.createElement("div",{className:ie()(l,"".concat(l,"-").concat(d),g,(0,re.A)((0,re.A)({},"".concat(l,"-open"),u),"".concat(l,"-inline"),c)),style:oe,tabIndex:-1,ref:V,onKeyDown:function(e){var t=e.keyCode,n=e.shiftKey;switch(t){case Mt.TAB:var r;if(t===Mt.TAB)if(n||document.activeElement!==$.current){if(n&&document.activeElement===z.current){var a;null===(a=$.current)||void 0===a||a.focus({preventScroll:!0})}}else null===(r=z.current)||void 0===r||r.focus({preventScroll:!0});break;case Mt.ESC:C&&f&&(e.stopPropagation(),C(e))}}},Z,s.createElement("div",{tabIndex:0,ref:z,style:xt,"aria-hidden":"true","data-sentinel":"start"}),se,s.createElement("div",{tabIndex:0,ref:$,style:xt,"aria-hidden":"true","data-sentinel":"end"})))}const Et=s.forwardRef(Yt);const Ot=function(e){var t=e.open,n=void 0!==t&&t,i=e.prefixCls,o=void 0===i?"rc-drawer":i,l=e.placement,u=void 0===l?"right":l,d=e.autoFocus,c=void 0===d||d,h=e.keyboard,m=void 0===h||h,p=e.width,f=void 0===p?378:p,_=e.mask,g=void 0===_||_,y=e.maskClosable,v=void 0===y||y,b=e.getContainer,M=e.forceRender,w=e.afterOpenChange,L=e.destroyOnClose,S=e.onMouseEnter,k=e.onMouseOver,D=e.onMouseLeave,T=e.onClick,x=e.onKeyDown,Y=e.onKeyUp,E=e.panelRef,O=s.useState(!1),A=(0,a.A)(O,2),C=A[0],P=A[1];var j=s.useState(!1),H=(0,a.A)(j,2),N=H[0],I=H[1];R(function(){I(!0)},[]);var F=!!N&&n,W=s.useRef(),V=s.useRef();R(function(){F&&(V.current=document.activeElement)},[F]);var z=s.useMemo(function(){return{panel:E}},[E]);if(!M&&!C&&!F&&L)return null;var $={onMouseEnter:S,onMouseOver:k,onMouseLeave:D,onClick:T,onKeyDown:x,onKeyUp:Y},B=(0,r.A)((0,r.A)({},e),{},{open:F,prefixCls:o,placement:u,autoFocus:c,keyboard:m,width:f,mask:g,maskClosable:v,inline:!1===b,afterOpenChange:function(e){var t,n;(P(e),null==w||w(e),e||!V.current||null!==(t=W.current)&&void 0!==t&&t.contains(V.current))||(null===(n=V.current)||void 0===n||n.focus({preventScroll:!0}))},ref:W},$);return s.createElement(te.Provider,{value:z},s.createElement(X,{open:F||M||C,autoDestroy:!1,getContainer:b,autoLock:g&&(F||C)},s.createElement(Et,B)))},At=Ot},1546:(e,t,n)=>{"use strict";var r=n(5292),a=n.n(r),s=n(9893),i=n.n(s),o=n(9383),l=n.n(o),u=n(6884),d=n.n(u),c=n(9088),h=n.n(c),m=n(7997),p=n.n(m),f=n(4825),_={};_.styleTagTransform=p(),_.setAttributes=d(),_.insert=l().bind(null,"head"),_.domAPI=i(),_.insertStyleElement=h();a()(f.A,_),f.A&&f.A.locals&&f.A.locals},1564:function(e,t,n){!function(e){"use strict";var t={standalone:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),format:"ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince".split("_"),isFormat:/DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/},n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function s(e){return e>1&&e<5&&1!=~~(e/10)}function i(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(s(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(s(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(s(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(s(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(s(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(s(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1570:(e,t,n)=>{"use strict";n.d(t,{Ng:()=>s,TW:()=>r,mD:()=>a});const r=e=>{var t;return null!==(t=null==e?void 0:e.ownerDocument)&&void 0!==t?t:document},a=e=>{if(e&&"window"in e&&e.window===e)return e;return r(e).defaultView||window};function s(e){return null!==(t=e)&&"object"==typeof t&&"nodeType"in t&&"number"==typeof t.nodeType&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e;var t}},1584:function(e,t,n){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(2689))},1617:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).patch},1625:(e,t,n)=>{"use strict";n.d(t,{$N:()=>s,$m:()=>l,GR:()=>a,ob:()=>i,qM:()=>o,vp:()=>u,yL:()=>r});var r=(e=>(e.Always="always",e.Auto="auto",e.Never="never",e))(r||{}),a=(e=>(e.Bars="bars",e.Line="line",e.Points="points",e))(a||{});var s=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(s||{});var i=(e=>(e.Actions="actions",e.Auto="auto",e.BasicGauge="basic",e.ColorBackground="color-background",e.ColorBackgroundSolid="color-background-solid",e.ColorText="color-text",e.Custom="custom",e.DataLinks="data-links",e.Gauge="gauge",e.GradientGauge="gradient-gauge",e.Image="image",e.JSONView="json-view",e.LcdGauge="lcd-gauge",e.Pill="pill",e.Sparkline="sparkline",e))(i||{});var o=(e=>(e.Auto="auto",e.Lg="lg",e.Md="md",e.Sm="sm",e))(o||{}),l=(e=>(e.CSV="csv",e.Date="date",e.Distributed="distributed",e.DoubleQuote="doublequote",e.Glob="glob",e.HTML="html",e.JSON="json",e.Join="join",e.Lucene="lucene",e.PercentEncode="percentencode",e.Pipe="pipe",e.QueryParam="queryparam",e.Raw="raw",e.Regex="regex",e.SQLString="sqlstring",e.SingleQuote="singlequote",e.Text="text",e.UriEncode="uriencode",e))(l||{});const u="browser"},1705:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(2162);function a(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},1722:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},1792:(e,t,n)=>{"use strict";n.d(t,{A:()=>D});var r=n(5959),a=e=>"string"!=typeof e?{}:e.split(/ ?; ?/).reduce((e,t)=>{const[n,r]=t.split(/ ?: ?/).map((e,t)=>0===t?e.replace(/\s+/g,""):e.trim());if(n&&r){const t=n.replace(/(\w)-(\w)/g,(e,t,n)=>`${t}${n.toUpperCase()}`);let a=r.trim();Number.isNaN(Number(r))||(a=Number(r)),e[n.startsWith("-")?n:t]=a}return e},{});var s=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],i={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function o(e,t){const{key:n,level:o,...u}=t;switch(e.nodeType){case 1:return r.createElement(function(e){if(/[a-z]+[A-Z]+[a-z]+/.test(e))return e;return e.toLowerCase()}(e.nodeName),function(e,t){const n={key:t};if(e instanceof Element){const t=e.getAttribute("class");t&&(n.className=t),[...e.attributes].forEach(e=>{switch(e.name){case"class":break;case"style":n[e.name]=a(e.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":n[i[e.name]||e.name]=!0;break;default:n[i[e.name]||e.name]=e.value}})}return n}(e,n),l(e.childNodes,o,u));case 3:{const t=e.nodeValue?.toString()??"";if(!u.allowWhiteSpaces&&/^\s+$/.test(t)&&!/[\u00A0\u202F]/.test(t))return null;if(!e.parentNode)return t;const n=e.parentNode.nodeName.toLowerCase();return s.includes(n)?(/\S/.test(t)&&console.warn(`A textNode is not allowed inside '${n}'. Your text "${t}" will be ignored`),null):t}case 8:default:return null;case 11:return l(e.childNodes,o,t)}}function l(e,t,n){const r=[...e].map((e,r)=>d(e,{...n,index:r,level:t+1})).filter(Boolean);return r.length?r:null}function u(e,t={}){return"string"==typeof e?function(e,t={}){if(!e||"string"!=typeof e)return null;const{includeAllNodes:n=!1,nodeOnly:r=!1,selector:a="body > *",type:s="text/html"}=t;try{const i=(new DOMParser).parseFromString(e,s);if(n){const{childNodes:e}=i.body;return r?e:[...e].map(e=>d(e,t))}const o=i.querySelector(a)||i.body.childNodes[0];if(!(o instanceof Node))throw new TypeError("Error parsing input");return r?o:d(o,t)}catch(e){0}return null}(e,t):e instanceof Node?d(e,t):null}function d(e,t={}){if(!(e&&e instanceof Node))return null;const{actions:n=[],index:r=0,level:a=0,randomKey:s}=t;let i=e,l=`${a}-${r}`;const u=[];return s&&0===a&&(l=`${function(e=6){const t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let r=e;r>0;--r)n+=t[Math.round(61*Math.random())];return n}()}-${l}`),Array.isArray(n)&&n.forEach(t=>{t.condition(i,l,a)&&("function"==typeof t.pre&&(i=t.pre(i,l,a),i instanceof Node||(i=e)),"function"==typeof t.post&&u.push(t.post(i,l,a)))}),u.length?u:o(i,{key:l,level:a,...t})}var c=Object.defineProperty,h=(e,t,n)=>((e,t,n)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),m="react-inlinesvg",p={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function f(e){return e[Math.floor(Math.random()*e.length)]}function _(){return!("undefined"==typeof window||!window.document?.createElement)}function g(){return function(){if(!document)return!1;const e=document.createElement("div");e.innerHTML="";const t=e.firstChild;return!!t&&"http://www.w3.org/2000/svg"===t.namespaceURI}()&&"undefined"!=typeof window&&null!==window}async function y(e,t){const n=await fetch(e,t),r=n.headers.get("content-type"),[a]=(r??"").split(/ ?; ?/);if(n.status>299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(e=>a.includes(e)))throw new Error(`Content type isn't valid: ${a}`);return n.text()}function v(e=1){return new Promise(t=>{setTimeout(t,1e3*e)})}var b,M=class{constructor(){h(this,"cacheApi"),h(this,"cacheStore"),h(this,"subscribers",[]),h(this,"isReady",!1),this.cacheStore=new Map;let e=m,t=!1;_()&&(e=window.REACT_INLINESVG_CACHE_NAME??m,t=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),t?caches.open(e).then(e=>{this.cacheApi=e}).catch(e=>{console.error(`Failed to open cache: ${e.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const e=[...this.subscribers];this.subscribers.length=0,e.forEach(e=>{try{e()}catch(e){console.error(`Error in CacheStore subscriber callback: ${e.message}`)}})}):this.isReady=!0}onReady(e){this.isReady?e():this.subscribers.push(e)}async get(e,t){return await(this.cacheApi?this.fetchAndAddToPersistentCache(e,t):this.fetchAndAddToInternalCache(e,t)),this.cacheStore.get(e)?.content??""}set(e,t){this.cacheStore.set(e,t)}isCached(e){return this.cacheStore.get(e)?.status===p.LOADED}async fetchAndAddToInternalCache(e,t){const n=this.cacheStore.get(e);if(n?.status!==p.LOADING){if(!n?.content){this.cacheStore.set(e,{content:"",status:p.LOADING});try{const n=await y(e,t);this.cacheStore.set(e,{content:n,status:p.LOADED})}catch(t){throw this.cacheStore.set(e,{content:"",status:p.FAILED}),t}}}else await this.handleLoading(e,async()=>{this.cacheStore.set(e,{content:"",status:p.IDLE}),await this.fetchAndAddToInternalCache(e,t)})}async fetchAndAddToPersistentCache(e,t){const n=this.cacheStore.get(e);if(n?.status===p.LOADED)return;if(n?.status===p.LOADING)return void await this.handleLoading(e,async()=>{this.cacheStore.set(e,{content:"",status:p.IDLE}),await this.fetchAndAddToPersistentCache(e,t)});this.cacheStore.set(e,{content:"",status:p.LOADING});const r=await(this.cacheApi?.match(e));if(r){const t=await r.text();return void this.cacheStore.set(e,{content:t,status:p.LOADED})}try{await(this.cacheApi?.add(new Request(e,t)));const n=await(this.cacheApi?.match(e)),r=await(n?.text())??"";this.cacheStore.set(e,{content:r,status:p.LOADED})}catch(t){throw this.cacheStore.set(e,{content:"",status:p.FAILED}),t}}async handleLoading(e,t){for(let t=0;t<10;t++){if(this.cacheStore.get(e)?.status!==p.LOADING)return;await v(.1)}await t()}keys(){return[...this.cacheStore.keys()]}data(){return[...this.cacheStore.entries()].map(([e,t])=>({[e]:t}))}async delete(e){this.cacheApi&&await this.cacheApi.delete(e),this.cacheStore.delete(e)}async clear(){if(this.cacheApi){const e=await this.cacheApi.keys();await Promise.allSettled(e.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function w(e){const t=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{t.current=e}),t.current}function L(e){const{baseURL:t,content:n,description:r,handleError:a,hash:s,preProcessor:i,title:o,uniquifyIDs:l=!1}=e;try{const e=function(e,t){if(t)return t(e);return e}(n,i),a=u(e,{nodeOnly:!0});if(!(a&&a instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const d=S(a,{baseURL:t,hash:s,uniquifyIDs:l});if(r){const e=d.querySelector("desc");e?.parentNode&&e.parentNode.removeChild(e);const t=document.createElementNS("http://www.w3.org/2000/svg","desc");t.innerHTML=r,d.prepend(t)}if(void 0!==o){const e=d.querySelector("title");if(e?.parentNode&&e.parentNode.removeChild(e),o){const e=document.createElementNS("http://www.w3.org/2000/svg","title");e.innerHTML=o,d.prepend(e)}}return d}catch(e){return a(e)}}function S(e,t){const{baseURL:n="",hash:r,uniquifyIDs:a}=t,s=["id","href","xlink:href","xlink:role","xlink:arcrole"],i=["href","xlink:href"];return a?([...e.children].forEach(e=>{if(e.attributes?.length){const t=Object.values(e.attributes).map(e=>{const t=e,a=/url\((.*?)\)/.exec(e.value);return a?.[1]&&(t.value=e.value.replace(a[0],`url(${n}${a[1]}__${r})`)),t});s.forEach(e=>{const n=t.find(t=>t.name===e);var a,s;n&&(a=e,s=n.value,!i.includes(a)||!s||s.includes("#"))&&(n.value=`${n.value}__${r}`)})}return e.children.length?S(e,t):e}),e):e}function k(e){const{cacheRequests:t=!0,children:n=null,description:a,fetchOptions:s,innerRef:i,loader:o=null,onError:l,onLoad:d,src:c,title:h,uniqueHash:m}=e,[v,M]=(0,r.useReducer)((e,t)=>({...e,...t}),{content:"",element:null,isCached:t&&b.isCached(e.src),status:p.IDLE}),{content:S,element:k,isCached:D,status:T}=v,x=w(e),Y=w(v),E=(0,r.useRef)(m??function(e){const t="abcdefghijklmnopqrstuvwxyz",n=`${t}${t.toUpperCase()}1234567890`;let r="";for(let t=0;t{O.current&&(M({status:"Browser does not support SVG"===e.message?p.UNSUPPORTED:p.FAILED}),l?.(e))},[l]),R=(0,r.useCallback)((e,t=!1)=>{O.current&&M({content:e,isCached:t,status:p.LOADED})},[]),P=(0,r.useCallback)(async()=>{const e=await y(c,s);R(e)},[s,R,c]),j=(0,r.useCallback)(()=>{try{const t=u(L({...e,handleError:C,hash:E.current,content:S}));if(!t||!(0,r.isValidElement)(t))throw new Error("Could not convert the src to a React element");M({element:t,status:p.READY})}catch(e){C(e)}},[S,C,e]),H=(0,r.useCallback)(async()=>{const e=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(c);let n;if(e?n=e[1]?window.atob(e[2]):decodeURIComponent(e[2]):c.includes("{O.current&&M({content:"",element:null,isCached:!1,status:p.LOADING})},[]);(0,r.useEffect)(()=>{if(O.current=!0,_()&&!A.current){try{if(T===p.IDLE){if(!g())throw new Error("Browser does not support SVG");if(!c)throw new Error("Missing src");N()}}catch(e){C(e)}return A.current=!0,()=>{O.current=!1}}},[]),(0,r.useEffect)(()=>{if(_()&&x&&x.src!==c){if(!c)return void C(new Error("Missing src"));N()}},[C,N,x,c]),(0,r.useEffect)(()=>{T===p.LOADED&&j()},[T,j]),(0,r.useEffect)(()=>{_()&&x&&x.src===c&&(x.title===h&&x.description===a||j())},[a,j,x,c,h]),(0,r.useEffect)(()=>{if(Y)switch(T){case p.LOADING:Y.status!==p.LOADING&&H();break;case p.LOADED:Y.status!==p.LOADED&&j();break;case p.READY:Y.status!==p.READY&&d?.(c,D)}},[H,j,D,d,Y,c,T]);const I=function(e,...t){const n={};for(const r in e)({}).hasOwnProperty.call(e,r)&&(t.includes(r)||(n[r]=e[r]));return n}(e,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return _()?k?(0,r.cloneElement)(k,{ref:i,...I}):[p.UNSUPPORTED,p.FAILED].includes(T)?n:o:o}function D(e){b||(b=new M);const{loader:t}=e,[n,a]=(0,r.useState)(b.isReady);return(0,r.useEffect)(()=>{n||b.onReady(()=>{a(!0)})},[n]),n?r.createElement(k,{...e}):t}},1794:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=a?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(r,s,i):r[s]=e[s]}r.default=e,n&&n.set(e,r);return r}(n(5959)),a=n(8230),s=n(9954),i=n(6333),o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.abs(l*i)?t=e/i:e=t*i}var u=e,d=t,c=this.slack||[0,0],h=c[0],m=c[1];return e+=h,t+=m,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),a&&(e=Math.min(a[0],e),t=Math.min(a[1],t)),this.slack=[h+(u-e),m+(d-t)],[e,t]},l.resizeHandler=function(e,t){var n=this;return function(r,a){var s=a.node,i=a.deltaX,o=a.deltaY;"onResizeStart"===e&&n.resetData();var l=("both"===n.props.axis||"x"===n.props.axis)&&"n"!==t&&"s"!==t,u=("both"===n.props.axis||"y"===n.props.axis)&&"e"!==t&&"w"!==t;if(l||u){var d=t[0],c=t[t.length-1],h=s.getBoundingClientRect();if(null!=n.lastHandleRect){if("w"===c)i+=h.left-n.lastHandleRect.left;if("n"===d)o+=h.top-n.lastHandleRect.top}n.lastHandleRect=h,"w"===c&&(i=-i),"n"===d&&(o=-o);var m=n.props.width+(l?i/n.props.transformScale:0),p=n.props.height+(u?o/n.props.transformScale:0),f=n.runConstraints(m,p);m=f[0],p=f[1];var _=m!==n.props.width||p!==n.props.height,g="function"==typeof n.props[e]?n.props[e]:null;g&&!("onResize"===e&&!_)&&(null==r.persist||r.persist(),g(r,{node:s,size:{width:m,height:p},handle:t})),"onResizeStop"===e&&n.resetData()}}},l.renderResizeHandle=function(e,t){var n=this.props.handle;if(!n)return r.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:t});if("function"==typeof n)return n(e,t);var a=c({ref:t},"string"==typeof n.type?{}:{handleAxis:e});return r.cloneElement(n,a)},l.render=function(){var e=this,t=this.props,n=t.children,i=t.className,l=t.draggableOpts,d=(t.width,t.height,t.handle,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),h=(t.transformScale,function(e,t){if(null==e)return{};var n,r,a={},s=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(t,o));return(0,s.cloneElement)(n,c(c({},h),{},{className:(i?i+" ":"")+"react-resizable",children:[].concat(n.props.children,d.map(function(t){var n,s=null!=(n=e.handleRefs[t])?n:e.handleRefs[t]=r.createRef();return r.createElement(a.DraggableCore,u({},l,{nodeRef:s,key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t,s))}))}))},i}(r.Component);t.default=p,p.propTypes=i.resizableProps,p.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}},1893:(e,t,n)=>{"use strict";n.d(t,{n1:()=>S,Pu:()=>E});var r=n(3003),a=n(9070),s=n(1570),i=n(7176);const o="undefined"!=typeof Element&&"checkVisibility"in Element.prototype;function l(e,t){return o?e.checkVisibility():"#comment"!==e.nodeName&&function(e){const t=(0,s.mD)(e);if(!(e instanceof t.HTMLElement||e instanceof t.SVGElement))return!1;let{display:n,visibility:r}=e.style,a="none"!==n&&"hidden"!==r&&"collapse"!==r;if(a){const{getComputedStyle:t}=e.ownerDocument.defaultView;let{display:n,visibility:r}=t(e);a="none"!==n&&"hidden"!==r&&"collapse"!==r}return a}(e)&&function(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&("DETAILS"!==e.nodeName||!t||"SUMMARY"===t.nodeName||e.hasAttribute("open"))}(e,t)&&(!e.parentElement||l(e.parentElement,e))}const u=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])',"permission"],d=u.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";u.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const c=u.join(':not([hidden]):not([tabindex="-1"]),');function h(e){return e.matches(d)&&l(e)&&!p(e)}function m(e){return e.matches(c)&&l(e)&&!p(e)}function p(e){let t=e;for(;null!=t;){if(t instanceof t.ownerDocument.defaultView.HTMLElement&&t.inert)return!0;t=t.parentElement}return!1}var f=n(8373);class _{get currentNode(){return this._currentNode}set currentNode(e){if(!(0,a.sD)(this.root,e))throw new Error("Cannot set currentNode to a node that is not contained by the root node.");const t=[];let n=e,r=e;for(this._currentNode=e;n&&n!==this.root;)if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const e=n,a=this._doc.createTreeWalker(e,this.whatToShow,{acceptNode:this._acceptNode});t.push(a),a.currentNode=r,this._currentSetFor.add(a),n=r=e.host}else n=n.parentNode;const s=this._doc.createTreeWalker(this.root,this.whatToShow,{acceptNode:this._acceptNode});t.push(s),s.currentNode=r,this._currentSetFor.add(s),this._walkerStack=t}get doc(){return this._doc}firstChild(){let e=this.currentNode,t=this.nextNode();return(0,a.sD)(e,t)?(t&&(this.currentNode=t),t):(this.currentNode=e,null)}lastChild(){let e=this._walkerStack[0].lastChild();return e&&(this.currentNode=e),e}nextNode(){const e=this._walkerStack[0].nextNode();if(e){if(e.shadowRoot){var t;let n;if("function"==typeof this.filter?n=this.filter(e):(null===(t=this.filter)||void 0===t?void 0:t.acceptNode)&&(n=this.filter.acceptNode(e)),n===NodeFilter.FILTER_ACCEPT)return this.currentNode=e,e;let r=this.nextNode();return r&&(this.currentNode=r),r}return e&&(this.currentNode=e),e}if(this._walkerStack.length>1){this._walkerStack.shift();let e=this.nextNode();return e&&(this.currentNode=e),e}return null}previousNode(){const e=this._walkerStack[0];if(e.currentNode===e.root){if(this._currentSetFor.has(e)){if(this._currentSetFor.delete(e),this._walkerStack.length>1){this._walkerStack.shift();let e=this.previousNode();return e&&(this.currentNode=e),e}return null}return null}const t=e.previousNode();if(t){if(t.shadowRoot){var n;let e;if("function"==typeof this.filter?e=this.filter(t):(null===(n=this.filter)||void 0===n?void 0:n.acceptNode)&&(e=this.filter.acceptNode(t)),e===NodeFilter.FILTER_ACCEPT)return t&&(this.currentNode=t),t;let r=this.lastChild();return r&&(this.currentNode=r),r}return t&&(this.currentNode=t),t}if(this._walkerStack.length>1){this._walkerStack.shift();let e=this.previousNode();return e&&(this.currentNode=e),e}return null}nextSibling(){return null}previousSibling(){return null}parentNode(){return null}constructor(e,t,n,r){this._walkerStack=[],this._currentSetFor=new Set,this._acceptNode=e=>{if(e.nodeType===Node.ELEMENT_NODE){const n=e.shadowRoot;if(n){const e=this._doc.createTreeWalker(n,this.whatToShow,{acceptNode:this._acceptNode});return this._walkerStack.unshift(e),NodeFilter.FILTER_ACCEPT}var t;if("function"==typeof this.filter)return this.filter(e);if(null===(t=this.filter)||void 0===t?void 0:t.acceptNode)return this.filter.acceptNode(e);if(null===this.filter)return NodeFilter.FILTER_ACCEPT}return NodeFilter.FILTER_SKIP},this._doc=e,this.root=t,this.filter=null!=r?r:null,this.whatToShow=null!=n?n:NodeFilter.SHOW_ALL,this._currentNode=t,this._walkerStack.unshift(e.createTreeWalker(t,n,this._acceptNode));const a=t.shadowRoot;if(a){const e=this._doc.createTreeWalker(a,this.whatToShow,{acceptNode:this._acceptNode});this._walkerStack.unshift(e)}}}function g(e,t,n,r){return(0,f.Nf)()?new _(e,t,n,r):e.createTreeWalker(t,n,r)}var y=n(5460),v=n(5780),b=n(5959);const M=b.createContext(null),w="react-aria-focus-scope-restore";let L=null;function S(e){let{children:t,contain:n,restoreFocus:o,autoFocus:l}=e,u=(0,b.useRef)(null),d=(0,b.useRef)(null),c=(0,b.useRef)([]),{parentNode:h}=(0,b.useContext)(M)||{},m=(0,b.useMemo)(()=>new I({scopeRef:c}),[c]);(0,r.N)(()=>{let e=h||F.root;if(F.getTreeNode(e.scopeRef)&&L&&!O(L,e.scopeRef)){let t=F.getTreeNode(L);t&&(e=t)}e.addChild(m),F.addNode(m)},[m,h]),(0,r.N)(()=>{let e=F.getTreeNode(c);e&&(e.contain=!!n)},[n]),(0,r.N)(()=>{var e;let t=null===(e=u.current)||void 0===e?void 0:e.nextSibling,n=[],r=e=>e.stopPropagation();for(;t&&t!==d.current;)n.push(t),t.addEventListener(w,r),t=t.nextSibling;return c.current=n,()=>{for(let e of n)e.removeEventListener(w,r)}},[t]),function(e,t,n){(0,r.N)(()=>{if(t||n)return;let r=e.current;const i=(0,s.TW)(r?r[0]:void 0);let o=t=>{let n=(0,a.wt)(t);x(n,e.current)?L=e:T(n)||(L=null)};return i.addEventListener("focusin",o,!1),null==r||r.forEach(e=>e.addEventListener("focusin",o,!1)),()=>{i.removeEventListener("focusin",o,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",o,!1))}},[e,t,n])}(c,o,n),function(e,t){let n=(0,b.useRef)(void 0),o=(0,b.useRef)(void 0);(0,r.N)(()=>{let r=e.current;if(!t)return void(o.current&&(cancelAnimationFrame(o.current),o.current=void 0));const l=(0,s.TW)(r?r[0]:void 0);let u=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!D(e)||t.isComposing)return;let n=(0,a.bq)(l),r=e.current;if(!r||!x(n,r))return;let s=H(k(r),{tabbable:!0},r);if(!n)return;s.currentNode=n;let i=t.shiftKey?s.previousNode():s.nextNode();i||(s.currentNode=t.shiftKey?r[r.length-1].nextElementSibling:r[0].previousElementSibling,i=t.shiftKey?s.previousNode():s.nextNode()),t.preventDefault(),i&&A(i,!0)},d=t=>{L&&!O(L,e)||!x((0,a.wt)(t),e.current)?D(e)&&!Y((0,a.wt)(t),e)?n.current?n.current.focus():L&&L.current&&R(L.current):D(e)&&(n.current=(0,a.wt)(t)):(L=e,n.current=(0,a.wt)(t))},c=t=>{o.current&&cancelAnimationFrame(o.current),o.current=requestAnimationFrame(()=>{let r=(0,y.ME)(),s=("virtual"===r||null===r)&&(0,i.m0)()&&(0,i.H8)(),o=(0,a.bq)(l);if(!s&&o&&D(e)&&!Y(o,e)){L=e;let r=(0,a.wt)(t);var u;if(r&&r.isConnected)n.current=r,null===(u=n.current)||void 0===u||u.focus();else L.current&&R(L.current)}})};return l.addEventListener("keydown",u,!1),l.addEventListener("focusin",d,!1),null==r||r.forEach(e=>e.addEventListener("focusin",d,!1)),null==r||r.forEach(e=>e.addEventListener("focusout",c,!1)),()=>{l.removeEventListener("keydown",u,!1),l.removeEventListener("focusin",d,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",d,!1)),null==r||r.forEach(e=>e.removeEventListener("focusout",c,!1))}},[e,t]),(0,r.N)(()=>()=>{o.current&&cancelAnimationFrame(o.current)},[o])}(c,n),function(e,t,n){const i=(0,b.useRef)("undefined"!=typeof document?(0,a.bq)((0,s.TW)(e.current?e.current[0]:void 0)):null);(0,r.N)(()=>{let r=e.current;const i=(0,s.TW)(r?r[0]:void 0);if(!t||n)return;let o=()=>{L&&!O(L,e)||!x((0,a.bq)(i),e.current)||(L=e)};return i.addEventListener("focusin",o,!1),null==r||r.forEach(e=>e.addEventListener("focusin",o,!1)),()=>{i.removeEventListener("focusin",o,!1),null==r||r.forEach(e=>e.removeEventListener("focusin",o,!1))}},[e,n]),(0,r.N)(()=>{const r=(0,s.TW)(e.current?e.current[0]:void 0);if(!t)return;let a=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!D(e)||t.isComposing)return;let n=r.activeElement;if(!Y(n,e)||!P(e))return;let a=F.getTreeNode(e);if(!a)return;let s=a.nodeToRestore,i=H(r.body,{tabbable:!0});i.currentNode=n;let o=t.shiftKey?i.previousNode():i.nextNode();if(s&&s.isConnected&&s!==r.body||(s=void 0,a.nodeToRestore=void 0),(!o||!Y(o,e))&&s){i.currentNode=s;do{o=t.shiftKey?i.previousNode():i.nextNode()}while(Y(o,e));t.preventDefault(),t.stopPropagation(),o?A(o,!0):T(s)?A(s,!0):n.blur()}};return n||r.addEventListener("keydown",a,!0),()=>{n||r.removeEventListener("keydown",a,!0)}},[e,t,n]),(0,r.N)(()=>{const n=(0,s.TW)(e.current?e.current[0]:void 0);if(!t)return;let r=F.getTreeNode(e);var o;return r?(r.nodeToRestore=null!==(o=i.current)&&void 0!==o?o:void 0,()=>{let r=F.getTreeNode(e);if(!r)return;let s=r.nodeToRestore,i=(0,a.bq)(n);if(t&&s&&(i&&Y(i,e)||i===n.body&&P(e))){let t=F.clone();requestAnimationFrame(()=>{if(n.activeElement===n.body){let n=t.getTreeNode(e);for(;n;){if(n.nodeToRestore&&n.nodeToRestore.isConnected)return void j(n.nodeToRestore);n=n.parent}for(n=t.getTreeNode(e);n;){if(n.scopeRef&&n.scopeRef.current&&F.getTreeNode(n.scopeRef)){return void j(C(n.scopeRef.current,!0))}n=n.parent}}})}}):void 0},[e,t])}(c,o,n),function(e,t){const n=b.useRef(t);(0,b.useEffect)(()=>{if(n.current){L=e;const t=(0,s.TW)(e.current?e.current[0]:void 0);!x((0,a.bq)(t),L.current)&&e.current&&R(e.current)}n.current=!1},[e])}(c,l),(0,b.useEffect)(()=>{const e=(0,a.bq)((0,s.TW)(c.current?c.current[0]:void 0));let t=null;if(x(e,c.current)){for(let n of F.traverse())n.scopeRef&&x(e,n.scopeRef.current)&&(t=n);t===F.getTreeNode(c)&&(L=t.scopeRef)}},[c]),(0,r.N)(()=>()=>{var e,t,n;let r=null!==(n=null===(t=F.getTreeNode(c))||void 0===t||null===(e=t.parent)||void 0===e?void 0:e.scopeRef)&&void 0!==n?n:null;c!==L&&!O(c,L)||r&&!F.getTreeNode(r)||(L=r),F.removeTreeNode(c)},[c]);let p=(0,b.useMemo)(()=>function(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:o,accept:l}=t;var u;let d=r||(0,a.bq)((0,s.TW)(null!==(u=n[0])&&void 0!==u?u:void 0)),c=n[0].previousElementSibling,h=H(k(n),{tabbable:i,accept:l},n);h.currentNode=x(d,n)?d:c;let m=h.nextNode();return!m&&o&&(h.currentNode=c,m=h.nextNode()),m&&A(m,!0),m},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:o,accept:l}=t;var u;let d=r||(0,a.bq)((0,s.TW)(null!==(u=n[0])&&void 0!==u?u:void 0)),c=n[n.length-1].nextElementSibling,h=H(k(n),{tabbable:i,accept:l},n);h.currentNode=x(d,n)?d:c;let m=h.previousNode();return!m&&o&&(h.currentNode=c,m=h.previousNode()),m&&A(m,!0),m},focusFirst(t={}){let n=e.current,{tabbable:r,accept:a}=t,s=H(k(n),{tabbable:r,accept:a},n);s.currentNode=n[0].previousElementSibling;let i=s.nextNode();return i&&A(i,!0),i},focusLast(t={}){let n=e.current,{tabbable:r,accept:a}=t,s=H(k(n),{tabbable:r,accept:a},n);s.currentNode=n[n.length-1].nextElementSibling;let i=s.previousNode();return i&&A(i,!0),i}}}(c),[]),f=(0,b.useMemo)(()=>({focusManager:p,parentNode:m}),[m,p]);return b.createElement(M.Provider,{value:f},b.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:u}),t,b.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:d}))}function k(e){return e[0].parentElement}function D(e){let t=F.getTreeNode(L);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function T(e){return Y(e)}function x(e,t){return!!e&&(!!t&&t.some(t=>t.contains(e)))}function Y(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of F.traverse(F.getTreeNode(t)))if(n&&x(e,n.current))return!0;return!1}function E(e){return Y(e,L)}function O(e,t){var n;let r=null===(n=F.getTreeNode(t))||void 0===n?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function A(e,t=!1){if(null==e||t){if(null!=e)try{e.focus()}catch{}}else try{(0,v.l)(e)}catch{}}function C(e,t=!0){let n=e[0].previousElementSibling,r=k(e),a=H(r,{tabbable:t},e);a.currentNode=n;let s=a.nextNode();return t&&!s&&(r=k(e),a=H(r,{tabbable:!1},e),a.currentNode=n,s=a.nextNode()),s}function R(e,t=!0){A(C(e,t))}function P(e){let t=F.getTreeNode(L);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(null==t?void 0:t.scopeRef)===e}function j(e){e.dispatchEvent(new CustomEvent(w,{bubbles:!0,cancelable:!0}))&&A(e)}function H(e,t,n){let r=(null==t?void 0:t.tabbable)?m:h,a=(null==e?void 0:e.nodeType)===Node.ELEMENT_NODE?e:null,i=(0,s.TW)(a),o=g(i,e||i,NodeFilter.SHOW_ELEMENT,{acceptNode(e){var a;if(null==t||null===(a=t.from)||void 0===a?void 0:a.contains(e))return NodeFilter.FILTER_REJECT;if((null==t?void 0:t.tabbable)&&"INPUT"===e.tagName&&"radio"===e.getAttribute("type")){if(!function(e){if(e.checked)return!0;let t=[];if(e.form){var n,r;let a=null===(r=e.form)||void 0===r||null===(n=r.elements)||void 0===n?void 0:n.namedItem(e.name);t=[...null!=a?a:[]]}else t=[...(0,s.TW)(e).querySelectorAll(`input[type="radio"][name="${CSS.escape(e.name)}"]`)].filter(e=>!e.form);return!!t&&!t.some(e=>e.checked)}(e))return NodeFilter.FILTER_REJECT;if("INPUT"===o.currentNode.tagName&&"radio"===o.currentNode.type&&o.currentNode.name===e.name)return NodeFilter.FILTER_REJECT}return!r(e)||n&&!x(e,n)||(null==t?void 0:t.accept)&&!t.accept(e)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT}});return(null==t?void 0:t.from)&&(o.currentNode=t.from),o}class N{get size(){return this.fastMap.size}getTreeNode(e){return this.fastMap.get(e)}addTreeNode(e,t,n){let r=this.fastMap.get(null!=t?t:null);if(!r)return;let a=new I({scopeRef:e});r.addChild(a),a.parent=r,this.fastMap.set(e,a),n&&(a.nodeToRestore=n)}addNode(e){this.fastMap.set(e.scopeRef,e)}removeTreeNode(e){if(null===e)return;let t=this.fastMap.get(e);if(!t)return;let n=t.parent;for(let e of this.traverse())e!==t&&t.nodeToRestore&&e.nodeToRestore&&t.scopeRef&&t.scopeRef.current&&x(e.nodeToRestore,t.scopeRef.current)&&(e.nodeToRestore=t.nodeToRestore);let r=t.children;n&&(n.removeChild(t),r.size>0&&r.forEach(e=>n&&n.addChild(e))),this.fastMap.delete(t.scopeRef)}*traverse(e=this.root){if(null!=e.scopeRef&&(yield e),e.children.size>0)for(let t of e.children)yield*this.traverse(t)}clone(){var e;let t=new N;var n;for(let r of this.traverse())t.addTreeNode(r.scopeRef,null!==(n=null===(e=r.parent)||void 0===e?void 0:e.scopeRef)&&void 0!==n?n:null,r.nodeToRestore);return t}constructor(){this.fastMap=new Map,this.root=new I({scopeRef:null}),this.fastMap.set(null,this.root)}}class I{addChild(e){this.children.add(e),e.parent=this}removeChild(e){this.children.delete(e),e.parent=void 0}constructor(e){this.children=new Set,this.contain=!1,this.scopeRef=e.scopeRef}}let F=new N},1906:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},1944:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},1966:function(e,t,n){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(2689))},2077:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)>=0},2086:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},2103:function(e,t,n){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2162:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(694);function a(e){var t=function(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=(0,r.A)(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==(0,r.A)(t)?t:t+""}},2179:function(e,t,n){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2180:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2192:(e,t,n)=>{"use strict";var r=n(5959),a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,s={},u=null,d=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(d=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===s[r]&&(s[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:d,props:s,_owner:o.current}}t.jsx=u},2206:function(e,t,n){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(2689))},2231:function(e,t,n){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(2689))},2245:(e,t,n)=>{"use strict";n.d(t,{zL:()=>a});var r=n(6145),a=(e=>(e[e.dontHide=0]="dontHide",e[e.hideLabel=1]="hideLabel",e[e.hideVariable=2]="hideVariable",e))(a||{});r.rw},2305:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},2366:function(e,t,n){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(2689))},2419:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},2453:function(e,t,n){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},2455:function(e,t,n){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2540:(e,t,n)=>{"use strict";e.exports=n(2192)},2548:(e,t,n)=>{e.exports=n(9482).default,e.exports.utils=n(414),e.exports.Responsive=n(4636).default,e.exports.Responsive.utils=n(544),e.exports.WidthProvider=n(6805).default},2607:function(e,t,n){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2655:function(e,t,n){!function(e){"use strict";function t(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,n){var r=this._calendarEl[e],a=n&&n.hours();return t(r)&&(r=r.apply(n)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(2689))},2688:(e,t,n)=>{e.exports=n(362)()},2689:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function s(e){t=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(l(e,t))return!1;return!0}function d(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function m(e,t){var n,r=[],a=e.length;for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,N=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,I={},F={};function W(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(F[e]=a),t&&(F[t[0]]=function(){return j(a.apply(this,arguments),t[1],t[2])}),n&&(F[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function V(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function z(e){var t,n,r=e.match(H);for(t=0,n=r.length;t=0&&N.test(e);)e=e.replace(N,r),N.lastIndex=0,n-=1;return e}var U={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function q(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(H).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])}var G="Invalid date";function J(){return this._invalidDate}var K="%d",Q=/\d{1,2}/;function Z(e){return this._ordinal.replace("%d",e)}var X={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ee(e,t,n,r){var a=this._relativeTime[n];return E(a)?a(e,t,n,r):a.replace(/%d/i,e)}function te(e,t){var n=this._relativeTime[e>0?"future":"past"];return E(n)?n(t):n.replace(/%s/i,t)}var ne={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function re(e){return"string"==typeof e?ne[e]||ne[e.toLowerCase()]:void 0}function ae(e){var t,n,r={};for(n in e)l(e,n)&&(t=re(n))&&(r[t]=e[n]);return r}var se={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function ie(e){var t,n=[];for(t in e)l(e,t)&&n.push({unit:t,priority:se[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}var oe,le=/\d/,ue=/\d\d/,de=/\d{3}/,ce=/\d{4}/,he=/[+-]?\d{6}/,me=/\d\d?/,pe=/\d\d\d\d?/,fe=/\d\d\d\d\d\d?/,_e=/\d{1,3}/,ge=/\d{1,4}/,ye=/[+-]?\d{1,6}/,ve=/\d+/,be=/[+-]?\d+/,Me=/Z|[+-]\d\d:?\d\d/gi,we=/Z|[+-]\d\d(?::?\d\d)?/gi,Le=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ke=/^[1-9]\d?/,De=/^([1-9]\d|\d)/;function Te(e,t,n){oe[e]=E(t)?t:function(e,r){return e&&n?n:t}}function xe(e,t){return l(oe,e)?oe[e](t._strict,t._locale):new RegExp(Ye(e))}function Ye(e){return Ee(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,a){return t||n||r||a}))}function Ee(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Oe(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function Ae(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=Oe(t)),n}oe={};var Ce={};function Re(e,t){var n,r,a=t;for("string"==typeof e&&(e=[e]),c(t)&&(a=function(e,n){n[t]=Ae(e)}),r=e.length,n=0;n68?1900:2e3)};var Ge,Je=Qe("FullYear",!0);function Ke(){return He(this.year())}function Qe(e,t){return function(n){return null!=n?(Xe(this,e,n),a.updateOffset(this,t),this):Ze(this,e)}}function Ze(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function Xe(e,t,n){var r,a,s,i,o;if(e.isValid()&&!isNaN(n)){switch(r=e._d,a=e._isUTC,t){case"Milliseconds":return void(a?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(a?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(a?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(a?r.setUTCHours(n):r.setHours(n));case"Date":return void(a?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}s=n,i=e.month(),o=29!==(o=e.date())||1!==i||He(s)?o:28,a?r.setUTCFullYear(s,i,o):r.setFullYear(s,i,o)}}function et(e){return E(this[e=re(e)])?this[e]():this}function tt(e,t){if("object"==typeof e){var n,r=ie(e=ae(e)),a=r.length;for(n=0;n=0?(o=new Date(e+400,t,n,r,a,s,i),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,s,i),o}function bt(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Mt(e,t,n){var r=7+t-n;return-(7+bt(e,0,r).getUTCDay()-t)%7+r-1}function wt(e,t,n,r,a){var s,i,o=1+7*(t-1)+(7+n-r)%7+Mt(e,r,a);return o<=0?i=qe(s=e-1)+o:o>qe(e)?(s=e+1,i=o-qe(e)):(s=e,i=o),{year:s,dayOfYear:i}}function Lt(e,t,n){var r,a,s=Mt(e.year(),t,n),i=Math.floor((e.dayOfYear()-s-1)/7)+1;return i<1?r=i+St(a=e.year()-1,t,n):i>St(e.year(),t,n)?(r=i-St(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function St(e,t,n){var r=Mt(e,t,n),a=Mt(e+1,t,n);return(qe(e)-r+a)/7}function kt(e){return Lt(e,this._week.dow,this._week.doy).week}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),Te("w",me,ke),Te("ww",me,ue),Te("W",me,ke),Te("WW",me,ue),Pe(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=Ae(e)});var Dt={dow:0,doy:6};function Tt(){return this._week.dow}function xt(){return this._week.doy}function Yt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Et(e){var t=Lt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Ot(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function At(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ct(e,t){return e.slice(t,7).concat(e.slice(0,t))}W("d",0,"do","day"),W("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),W("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),W("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),Te("d",me),Te("e",me),Te("E",me),Te("dd",function(e,t){return t.weekdaysMinRegex(e)}),Te("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Te("dddd",function(e,t){return t.weekdaysRegex(e)}),Pe(["dd","ddd","dddd"],function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:g(n).invalidWeekday=e}),Pe(["d","e","E"],function(e,t,n,r){t[r]=Ae(e)});var Rt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Pt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),jt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ht=Se,Nt=Se,It=Se;function Ft(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ct(n,this._week.dow):e?n[e.day()]:n}function Wt(e){return!0===e?Ct(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Vt(e){return!0===e?Ct(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function zt(e,t,n){var r,a,s,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)s=f([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(s,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=Ge.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Ge.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._shortWeekdaysParse,i))||-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Ge.call(this._shortWeekdaysParse,i))||-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._minWeekdaysParse,i))?a:null:-1!==(a=Ge.call(this._minWeekdaysParse,i))||-1!==(a=Ge.call(this._weekdaysParse,i))||-1!==(a=Ge.call(this._shortWeekdaysParse,i))?a:null}function $t(e,t,n){var r,a,s;if(this._weekdaysParseExact)return zt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=f([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(s="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(s.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Bt(e){if(!this.isValid())return null!=e?this:NaN;var t=Ze(this,"Day");return null!=e?(e=Ot(e,this.localeData()),this.add(e-t,"d")):t}function Ut(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function qt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=At(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Gt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Jt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Nt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Kt(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Qt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=It),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qt(){function e(e,t){return t.length-e.length}var t,n,r,a,s,i=[],o=[],l=[],u=[];for(t=0;t<7;t++)n=f([2e3,1]).day(t),r=Ee(this.weekdaysMin(n,"")),a=Ee(this.weekdaysShort(n,"")),s=Ee(this.weekdays(n,"")),i.push(r),o.push(a),l.push(s),u.push(r),u.push(a),u.push(s);i.sort(e),o.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Zt(){return this.hours()%12||12}function Xt(){return this.hours()||24}function en(e,t){W(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tn(e,t){return t._meridiemParse}function nn(e){return"p"===(e+"").toLowerCase().charAt(0)}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Zt),W("k",["kk",2],0,Xt),W("hmm",0,0,function(){return""+Zt.apply(this)+j(this.minutes(),2)}),W("hmmss",0,0,function(){return""+Zt.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+j(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)}),en("a",!0),en("A",!1),Te("a",tn),Te("A",tn),Te("H",me,De),Te("h",me,ke),Te("k",me,ke),Te("HH",me,ue),Te("hh",me,ue),Te("kk",me,ue),Te("hmm",pe),Te("hmmss",fe),Te("Hmm",pe),Te("Hmmss",fe),Re(["H","HH"],We),Re(["k","kk"],function(e,t,n){var r=Ae(e);t[We]=24===r?0:r}),Re(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),Re(["h","hh"],function(e,t,n){t[We]=Ae(e),g(n).bigHour=!0}),Re("hmm",function(e,t,n){var r=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r)),g(n).bigHour=!0}),Re("hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r,2)),t[ze]=Ae(e.substr(a)),g(n).bigHour=!0}),Re("Hmm",function(e,t,n){var r=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r))}),Re("Hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Ae(e.substr(0,r)),t[Ve]=Ae(e.substr(r,2)),t[ze]=Ae(e.substr(a))});var rn=/[ap]\.?m?\.?/i,an=Qe("Hours",!0);function sn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var on,ln={calendar:R,longDateFormat:U,invalidDate:G,ordinal:K,dayOfMonthOrdinalParse:Q,relativeTime:X,months:at,monthsShort:st,week:Dt,weekdays:Rt,weekdaysMin:jt,weekdaysShort:Pt,meridiemParse:rn},un={},dn={};function cn(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=fn(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&cn(a,n)>=t-1)break;t--}s++}return on}function pn(e){return!(!e||!e.match("^[^/\\\\]*$"))}function fn(t){var r=null;if(void 0===un[t]&&e&&e.exports&&pn(t))try{r=on._abbr,n(1738)("./"+t),_n(r)}catch(e){un[t]=null}return un[t]}function _n(e,t){var n;return e&&((n=d(t)?vn(e):gn(e,t))?on=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),on._abbr}function gn(e,t){if(null!==t){var n,r=ln;if(t.abbr=e,null!=un[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=un[e]._config;else if(null!=t.parentLocale)if(null!=un[t.parentLocale])r=un[t.parentLocale]._config;else{if(null==(n=fn(t.parentLocale)))return dn[t.parentLocale]||(dn[t.parentLocale]=[]),dn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return un[e]=new C(A(r,t)),dn[e]&&dn[e].forEach(function(e){gn(e.name,e.config)}),_n(e),un[e]}return delete un[e],null}function yn(e,t){if(null!=t){var n,r,a=ln;null!=un[e]&&null!=un[e].parentLocale?un[e].set(A(un[e]._config,t)):(null!=(r=fn(e))&&(a=r._config),t=A(a,t),null==r&&(t.abbr=e),(n=new C(t)).parentLocale=un[e],un[e]=n),_n(e)}else null!=un[e]&&(null!=un[e].parentLocale?(un[e]=un[e].parentLocale,e===_n()&&_n(e)):null!=un[e]&&delete un[e]);return un[e]}function vn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return on;if(!i(e)){if(t=fn(e))return t;e=[e]}return mn(e)}function bn(){return T(un)}function Mn(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[Ie]<0||n[Ie]>11?Ie:n[Fe]<1||n[Fe]>rt(n[Ne],n[Ie])?Fe:n[We]<0||n[We]>24||24===n[We]&&(0!==n[Ve]||0!==n[ze]||0!==n[$e])?We:n[Ve]<0||n[Ve]>59?Ve:n[ze]<0||n[ze]>59?ze:n[$e]<0||n[$e]>999?$e:-1,g(e)._overflowDayOfYear&&(tFe)&&(t=Fe),g(e)._overflowWeeks&&-1===t&&(t=Be),g(e)._overflowWeekday&&-1===t&&(t=Ue),g(e).overflow=t),e}var wn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ln=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Sn=/Z|[+-]\d\d(?::?\d\d)?/,kn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Dn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Tn=/^\/?Date\((-?\d+)/i,xn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Yn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function En(e){var t,n,r,a,s,i,o=e._i,l=wn.exec(o)||Ln.exec(o),u=kn.length,d=Dn.length;if(l){for(g(e).iso=!0,t=0,n=u;tqe(s)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=bt(s,0,e._dayOfYear),e._a[Ie]=n.getUTCMonth(),e._a[Fe]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[We]&&0===e._a[Ve]&&0===e._a[ze]&&0===e._a[$e]&&(e._nextDay=!0,e._a[We]=0),e._d=(e._useUTC?bt:vt).apply(null,i),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[We]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(g(e).weekdayMismatch=!0)}}function Wn(e){var t,n,r,a,s,i,o,l,u;null!=(t=e._w).GG||null!=t.W||null!=t.E?(s=1,i=4,n=Nn(t.GG,e._a[Ne],Lt(Kn(),1,4).year),r=Nn(t.W,1),((a=Nn(t.E,1))<1||a>7)&&(l=!0)):(s=e._locale._week.dow,i=e._locale._week.doy,u=Lt(Kn(),s,i),n=Nn(t.gg,e._a[Ne],u.year),r=Nn(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+s,(t.e<0||t.e>6)&&(l=!0)):a=s),r<1||r>St(n,s,i)?g(e)._overflowWeeks=!0:null!=l?g(e)._overflowWeekday=!0:(o=wt(n,r,a,s,i),e._a[Ne]=o.year,e._dayOfYear=o.dayOfYear)}function Vn(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],g(e).empty=!0;var t,n,r,s,i,o,l,u=""+e._i,d=u.length,c=0;for(l=(r=B(e._f,e._locale).match(H)||[]).length,t=0;t0&&g(e).unusedInput.push(i),u=u.slice(u.indexOf(n)+n.length),c+=n.length),F[s]?(n?g(e).empty=!1:g(e).unusedTokens.push(s),je(s,n,e)):e._strict&&!n&&g(e).unusedTokens.push(s);g(e).charsLeftOver=d-c,u.length>0&&g(e).unusedInput.push(u),e._a[We]<=12&&!0===g(e).bigHour&&e._a[We]>0&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[We]=zn(e._locale,e._a[We],e._meridiem),null!==(o=g(e).era)&&(e._a[Ne]=e._locale.erasConvertYear(o,e._a[Ne])),Fn(e),Mn(e)}else jn(e);else En(e)}function zn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function $n(e){var t,n,r,a,s,i,o=!1,l=e._f.length;if(0===l)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:v()});function Xn(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Kn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Lr(){if(!d(this._isDSTShifted))return this._isDSTShifted;var e,t={};return w(t,this),(t=qn(t))._a?(e=t._isUTC?f(t._a):Kn(t._a),this._isDSTShifted=this.isValid()&&dr(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function Sr(){return!!this.isValid()&&!this._isUTC}function kr(){return!!this.isValid()&&this._isUTC}function Dr(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Tr=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,xr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Yr(e,t){var n,r,a,s=e,i=null;return lr(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(s={},t?s[t]=+e:s.milliseconds=+e):(i=Tr.exec(e))?(n="-"===i[1]?-1:1,s={y:0,d:Ae(i[Fe])*n,h:Ae(i[We])*n,m:Ae(i[Ve])*n,s:Ae(i[ze])*n,ms:Ae(ur(1e3*i[$e]))*n}):(i=xr.exec(e))?(n="-"===i[1]?-1:1,s={y:Er(i[2],n),M:Er(i[3],n),w:Er(i[4],n),d:Er(i[5],n),h:Er(i[6],n),m:Er(i[7],n),s:Er(i[8],n)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(a=Ar(Kn(s.from),Kn(s.to)),(s={}).ms=a.milliseconds,s.M=a.months),r=new or(s),lr(e)&&l(e,"_locale")&&(r._locale=e._locale),lr(e)&&l(e,"_isValid")&&(r._isValid=e._isValid),r}function Er(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Or(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ar(e,t){var n;return e.isValid()&&t.isValid()?(t=pr(t,e),e.isBefore(t)?n=Or(e,t):((n=Or(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Cr(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(Y(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Rr(this,Yr(n,r),e),this}}function Rr(e,t,n,r){var s=t._milliseconds,i=ur(t._days),o=ur(t._months);e.isValid()&&(r=null==r||r,o&&mt(e,Ze(e,"Month")+o*n),i&&Xe(e,"Date",Ze(e,"Date")+i*n),s&&e._d.setTime(e._d.valueOf()+s*n),r&&a.updateOffset(e,i||o))}Yr.fn=or.prototype,Yr.invalid=ir;var Pr=Cr(1,"add"),jr=Cr(-1,"subtract");function Hr(e){return"string"==typeof e||e instanceof String}function Nr(e){return S(e)||h(e)||Hr(e)||c(e)||Fr(e)||Ir(e)||null==e}function Ir(e){var t,n,r=o(e)&&!u(e),a=!1,s=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],i=s.length;for(t=0;tn.valueOf():n.valueOf()9999?$(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",$(n,"Z")):$(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ta(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,a="moment",s="";return this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",s="Z"),e="["+a+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=s+'[")]',this.format(e+t+n+r)}function na(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=$(this,e);return this.localeData().postformat(t)}function ra(e,t){return this.isValid()&&(S(e)&&e.isValid()||Kn(e).isValid())?Yr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function aa(e){return this.from(Kn(),e)}function sa(e,t){return this.isValid()&&(S(e)&&e.isValid()||Kn(e).isValid())?Yr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ia(e){return this.to(Kn(),e)}function oa(e){var t;return void 0===e?this._locale._abbr:(null!=(t=vn(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var la=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function ua(){return this._locale}var da=1e3,ca=60*da,ha=60*ca,ma=3506328*ha;function pa(e,t){return(e%t+t)%t}function fa(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-ma:new Date(e,t,n).valueOf()}function _a(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-ma:Date.UTC(e,t,n)}function ga(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_a:fa,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=pa(t+(this._isUTC?0:this.utcOffset()*ca),ha);break;case"minute":t=this._d.valueOf(),t-=pa(t,ca);break;case"second":t=this._d.valueOf(),t-=pa(t,da)}return this._d.setTime(t),a.updateOffset(this,!0),this}function ya(e){var t,n;if(void 0===(e=re(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?_a:fa,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=ha-pa(t+(this._isUTC?0:this.utcOffset()*ca),ha)-1;break;case"minute":t=this._d.valueOf(),t+=ca-pa(t,ca)-1;break;case"second":t=this._d.valueOf(),t+=da-pa(t,da)-1}return this._d.setTime(t),a.updateOffset(this,!0),this}function va(){return this._d.valueOf()-6e4*(this._offset||0)}function ba(){return Math.floor(this.valueOf()/1e3)}function Ma(){return new Date(this.valueOf())}function wa(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function La(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Sa(){return this.isValid()?this.toISOString():null}function ka(){return y(this)}function Da(){return p({},g(this))}function Ta(){return g(this).overflow}function xa(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ya(e,t){var n,r,s,i=this._eras||vn("en")._eras;for(n=0,r=i.length;n=0)return l[r]}function Oa(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n}function Aa(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e(s=St(e,r,a))&&(t=s),Za.call(this,e,t,n,r,a))}function Za(e,t,n,r,a){var s=wt(e,t,n,r,a),i=bt(s.year,0,s.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}function Xa(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}W("N",0,0,"eraAbbr"),W("NN",0,0,"eraAbbr"),W("NNN",0,0,"eraAbbr"),W("NNNN",0,0,"eraName"),W("NNNNN",0,0,"eraNarrow"),W("y",["y",1],"yo","eraYear"),W("y",["yy",2],0,"eraYear"),W("y",["yyy",3],0,"eraYear"),W("y",["yyyy",4],0,"eraYear"),Te("N",Ia),Te("NN",Ia),Te("NNN",Ia),Te("NNNN",Fa),Te("NNNNN",Wa),Re(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?g(n).era=a:g(n).invalidEra=e}),Te("y",ve),Te("yy",ve),Te("yyy",ve),Te("yyyy",ve),Te("yo",Va),Re(["y","yy","yyy","yyyy"],Ne),Re(["yo"],function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[Ne]=n._locale.eraYearOrdinalParse(e,a):t[Ne]=parseInt(e,10)}),W(0,["gg",2],0,function(){return this.weekYear()%100}),W(0,["GG",2],0,function(){return this.isoWeekYear()%100}),$a("gggg","weekYear"),$a("ggggg","weekYear"),$a("GGGG","isoWeekYear"),$a("GGGGG","isoWeekYear"),Te("G",be),Te("g",be),Te("GG",me,ue),Te("gg",me,ue),Te("GGGG",ge,ce),Te("gggg",ge,ce),Te("GGGGG",ye,he),Te("ggggg",ye,he),Pe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=Ae(e)}),Pe(["gg","GG"],function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)}),W("Q",0,"Qo","quarter"),Te("Q",le),Re("Q",function(e,t){t[Ie]=3*(Ae(e)-1)}),W("D",["DD",2],"Do","date"),Te("D",me,ke),Te("DD",me,ue),Te("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),Re(["D","DD"],Fe),Re("Do",function(e,t){t[Fe]=Ae(e.match(me)[0])});var es=Qe("Date",!0);function ts(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}W("DDD",["DDDD",3],"DDDo","dayOfYear"),Te("DDD",_e),Te("DDDD",de),Re(["DDD","DDDD"],function(e,t,n){n._dayOfYear=Ae(e)}),W("m",["mm",2],0,"minute"),Te("m",me,De),Te("mm",me,ue),Re(["m","mm"],Ve);var ns=Qe("Minutes",!1);W("s",["ss",2],0,"second"),Te("s",me,De),Te("ss",me,ue),Re(["s","ss"],ze);var rs,as,ss=Qe("Seconds",!1);for(W("S",0,0,function(){return~~(this.millisecond()/100)}),W(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),W(0,["SSS",3],0,"millisecond"),W(0,["SSSS",4],0,function(){return 10*this.millisecond()}),W(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),W(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),W(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),W(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),W(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Te("S",_e,le),Te("SS",_e,ue),Te("SSS",_e,de),rs="SSSS";rs.length<=9;rs+="S")Te(rs,ve);function is(e,t){t[$e]=Ae(1e3*("0."+e))}for(rs="S";rs.length<=9;rs+="S")Re(rs,is);function os(){return this._isUTC?"UTC":""}function ls(){return this._isUTC?"Coordinated Universal Time":""}as=Qe("Milliseconds",!1),W("z",0,0,"zoneAbbr"),W("zz",0,0,"zoneName");var us=L.prototype;function ds(e){return Kn(1e3*e)}function cs(){return Kn.apply(null,arguments).parseZone()}function hs(e){return e}us.add=Pr,us.calendar=zr,us.clone=$r,us.diff=Qr,us.endOf=ya,us.format=na,us.from=ra,us.fromNow=aa,us.to=sa,us.toNow=ia,us.get=et,us.invalidAt=Ta,us.isAfter=Br,us.isBefore=Ur,us.isBetween=qr,us.isSame=Gr,us.isSameOrAfter=Jr,us.isSameOrBefore=Kr,us.isValid=ka,us.lang=la,us.locale=oa,us.localeData=ua,us.max=Zn,us.min=Qn,us.parsingFlags=Da,us.set=tt,us.startOf=ga,us.subtract=jr,us.toArray=wa,us.toObject=La,us.toDate=Ma,us.toISOString=ea,us.inspect=ta,"undefined"!=typeof Symbol&&null!=Symbol.for&&(us[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),us.toJSON=Sa,us.toString=Xr,us.unix=ba,us.valueOf=va,us.creationData=xa,us.eraName=Aa,us.eraNarrow=Ca,us.eraAbbr=Ra,us.eraYear=Pa,us.year=Je,us.isLeapYear=Ke,us.weekYear=Ba,us.isoWeekYear=Ua,us.quarter=us.quarters=Xa,us.month=pt,us.daysInMonth=ft,us.week=us.weeks=Yt,us.isoWeek=us.isoWeeks=Et,us.weeksInYear=Ja,us.weeksInWeekYear=Ka,us.isoWeeksInYear=qa,us.isoWeeksInISOWeekYear=Ga,us.date=es,us.day=us.days=Bt,us.weekday=Ut,us.isoWeekday=qt,us.dayOfYear=ts,us.hour=us.hours=an,us.minute=us.minutes=ns,us.second=us.seconds=ss,us.millisecond=us.milliseconds=as,us.utcOffset=_r,us.utc=yr,us.local=vr,us.parseZone=br,us.hasAlignedHourOffset=Mr,us.isDST=wr,us.isLocal=Sr,us.isUtcOffset=kr,us.isUtc=Dr,us.isUTC=Dr,us.zoneAbbr=os,us.zoneName=ls,us.dates=D("dates accessor is deprecated. Use date instead.",es),us.months=D("months accessor is deprecated. Use month instead",pt),us.years=D("years accessor is deprecated. Use year instead",Je),us.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",gr),us.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Lr);var ms=C.prototype;function ps(e,t,n,r){var a=vn(),s=f().set(r,t);return a[n](s,e)}function fs(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return ps(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=ps(e,r,n,"month");return a}function _s(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,s=vn(),i=e?s._week.dow:0,o=[];if(null!=n)return ps(t,(n+i)%7,r,"day");for(a=0;a<7;a++)o[a]=ps(t,(a+i)%7,r,"day");return o}function gs(e,t){return fs(e,t,"months")}function ys(e,t){return fs(e,t,"monthsShort")}function vs(e,t,n){return _s(e,t,n,"weekdays")}function bs(e,t,n){return _s(e,t,n,"weekdaysShort")}function Ms(e,t,n){return _s(e,t,n,"weekdaysMin")}ms.calendar=P,ms.longDateFormat=q,ms.invalidDate=J,ms.ordinal=Z,ms.preparse=hs,ms.postformat=hs,ms.relativeTime=ee,ms.pastFuture=te,ms.set=O,ms.eras=Ya,ms.erasParse=Ea,ms.erasConvertYear=Oa,ms.erasAbbrRegex=Ha,ms.erasNameRegex=ja,ms.erasNarrowRegex=Na,ms.months=ut,ms.monthsShort=dt,ms.monthsParse=ht,ms.monthsRegex=gt,ms.monthsShortRegex=_t,ms.week=kt,ms.firstDayOfYear=xt,ms.firstDayOfWeek=Tt,ms.weekdays=Ft,ms.weekdaysMin=Vt,ms.weekdaysShort=Wt,ms.weekdaysParse=$t,ms.weekdaysRegex=Gt,ms.weekdaysShortRegex=Jt,ms.weekdaysMinRegex=Kt,ms.isPM=nn,ms.meridiem=sn,_n("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===Ae(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=D("moment.lang is deprecated. Use moment.locale instead.",_n),a.langData=D("moment.langData is deprecated. Use moment.localeData instead.",vn);var ws=Math.abs;function Ls(){var e=this._data;return this._milliseconds=ws(this._milliseconds),this._days=ws(this._days),this._months=ws(this._months),e.milliseconds=ws(e.milliseconds),e.seconds=ws(e.seconds),e.minutes=ws(e.minutes),e.hours=ws(e.hours),e.months=ws(e.months),e.years=ws(e.years),this}function Ss(e,t,n,r){var a=Yr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function ks(e,t){return Ss(this,e,t,1)}function Ds(e,t){return Ss(this,e,t,-1)}function Ts(e){return e<0?Math.floor(e):Math.ceil(e)}function xs(){var e,t,n,r,a,s=this._milliseconds,i=this._days,o=this._months,l=this._data;return s>=0&&i>=0&&o>=0||s<=0&&i<=0&&o<=0||(s+=864e5*Ts(Es(o)+i),i=0,o=0),l.milliseconds=s%1e3,e=Oe(s/1e3),l.seconds=e%60,t=Oe(e/60),l.minutes=t%60,n=Oe(t/60),l.hours=n%24,i+=Oe(n/24),o+=a=Oe(Ys(i)),i-=Ts(Es(a)),r=Oe(o/12),o%=12,l.days=i,l.months=o,l.years=r,this}function Ys(e){return 4800*e/146097}function Es(e){return 146097*e/4800}function Os(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=re(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Ys(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Es(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function As(e){return function(){return this.as(e)}}var Cs=As("ms"),Rs=As("s"),Ps=As("m"),js=As("h"),Hs=As("d"),Ns=As("w"),Is=As("M"),Fs=As("Q"),Ws=As("y"),Vs=Cs;function zs(){return Yr(this)}function $s(e){return e=re(e),this.isValid()?this[e+"s"]():NaN}function Bs(e){return function(){return this.isValid()?this._data[e]:NaN}}var Us=Bs("milliseconds"),qs=Bs("seconds"),Gs=Bs("minutes"),Js=Bs("hours"),Ks=Bs("days"),Qs=Bs("months"),Zs=Bs("years");function Xs(){return Oe(this.days()/7)}var ei=Math.round,ti={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ni(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function ri(e,t,n,r){var a=Yr(e).abs(),s=ei(a.as("s")),i=ei(a.as("m")),o=ei(a.as("h")),l=ei(a.as("d")),u=ei(a.as("M")),d=ei(a.as("w")),c=ei(a.as("y")),h=s<=n.ss&&["s",s]||s0,h[4]=r,ni.apply(null,h)}function ai(e){return void 0===e?ei:"function"==typeof e&&(ei=e,!0)}function si(e,t){return void 0!==ti[e]&&(void 0===t?ti[e]:(ti[e]=t,"s"===e&&(ti.ss=t-1),!0))}function ii(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,s=ti;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(s=Object.assign({},ti,t),null!=t.s&&null==t.ss&&(s.ss=t.s-1)),r=ri(this,!a,s,n=this.localeData()),a&&(r=n.pastFuture(+this,r)),n.postformat(r)}var oi=Math.abs;function li(e){return(e>0)-(e<0)||+e}function ui(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,s,i,o,l=oi(this._milliseconds)/1e3,u=oi(this._days),d=oi(this._months),c=this.asSeconds();return c?(e=Oe(l/60),t=Oe(e/60),l%=60,e%=60,n=Oe(d/12),d%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",a=c<0?"-":"",s=li(this._months)!==li(c)?"-":"",i=li(this._days)!==li(c)?"-":"",o=li(this._milliseconds)!==li(c)?"-":"",a+"P"+(n?s+n+"Y":"")+(d?s+d+"M":"")+(u?i+u+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+r+"S":"")):"P0D"}var di=or.prototype;return di.isValid=sr,di.abs=Ls,di.add=ks,di.subtract=Ds,di.as=Os,di.asMilliseconds=Cs,di.asSeconds=Rs,di.asMinutes=Ps,di.asHours=js,di.asDays=Hs,di.asWeeks=Ns,di.asMonths=Is,di.asQuarters=Fs,di.asYears=Ws,di.valueOf=Vs,di._bubble=xs,di.clone=zs,di.get=$s,di.milliseconds=Us,di.seconds=qs,di.minutes=Gs,di.hours=Js,di.days=Ks,di.weeks=Xs,di.months=Qs,di.years=Zs,di.humanize=ii,di.toISOString=ui,di.toString=ui,di.toJSON=ui,di.locale=oa,di.localeData=ua,di.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ui),di.lang=la,W("X",0,0,"unix"),W("x",0,0,"valueOf"),Te("x",be),Te("X",Le),Re("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),Re("x",function(e,t,n){n._d=new Date(Ae(e))}),a.version="2.30.1",s(Kn),a.fn=us,a.min=er,a.max=tr,a.now=nr,a.utc=f,a.unix=ds,a.months=gs,a.isDate=h,a.locale=_n,a.invalid=v,a.duration=Yr,a.isMoment=S,a.weekdays=vs,a.parseZone=cs,a.localeData=vn,a.isDuration=lr,a.monthsShort=ys,a.weekdaysMin=Ms,a.defineLocale=gn,a.updateLocale=yn,a.locales=bn,a.weekdaysShort=bs,a.normalizeUnits=re,a.relativeTimeRounding=ai,a.relativeTimeThreshold=si,a.calendarFormat=Vr,a.prototype=us,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()},2727:function(e,t,n){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},2801:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n)=>{const a=new r(e,n),s=new r(t,n);return a.compare(s)||a.compareBuild(s)}},2808:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2837:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=u,t.addEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,a):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&u(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){const n=o(e,t,"px");return{[(0,a.browserPrefixToKey)("transform",a.default)]:n}},t.createSVGTransform=function(e,t){return o(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,r.findInArray)(e.targetTouches,e=>t===e.identifier)||e.changedTouches&&(0,r.findInArray)(e.changedTouches,e=>t===e.identifier)},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.getTranslation=o,t.innerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingTop),t-=(0,r.int)(n.paddingBottom),t},t.innerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingLeft),t-=(0,r.int)(n.paddingRight),t},t.matchesSelector=i,t.matchesSelectorAndParentsTo=function(e,t,n){let r=e;do{if(i(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){const r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),a=(e.clientX+t.scrollLeft-r.left)/n,s=(e.clientY+t.scrollTop-r.top)/n;return{x:a,y:s}},t.outerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderTopWidth),t+=(0,r.int)(n.borderBottomWidth),t},t.outerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderLeftWidth),t+=(0,r.int)(n.borderRightWidth),t},t.removeClassName=d,t.removeEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.scheduleRemoveUserSelectStyles=function(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{l(e)}):l(e)};var r=n(6732),a=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(7350));let s="";function i(e,t){return s||(s=(0,r.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(t){return(0,r.isFunction)(e[t])})),!!(0,r.isFunction)(e[s])&&e[s](t)}function o(e,t,n){let{x:r,y:a}=e,s=`translate(${r}${n},${a}${n})`;if(t){s=`translate(${`${"string"==typeof t.x?t.x:t.x+n}`}, ${`${"string"==typeof t.y?t.y:t.y+n}`})`+s}return s}function l(e){if(e)try{if(e.body&&d(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(e){}}function u(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function d(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}},2862:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(t,e,n)},2934:function(e,t,n){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},2966:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).major},3002:function(e,t,n){!function(e){"use strict";var t=["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],n=["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],r=["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],a=["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],s=["Do","Lu","Má","Cé","Dé","A","Sa"];e.defineLocale("ga",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},3003:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(5959);const a="undefined"!=typeof document?r.useLayoutEffect:()=>{}},3010:function(e,t,n){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"}function r(e,t,n,r){return t?s(n)[0]:r?s(n)[1]:s(n)[2]}function a(e){return e%10==0||e>10&&e<20}function s(e){return t[e].split("_")}function i(e,t,n,i){var o=e+" ";return 1===e?o+r(e,t,n[0],i):t?o+(a(e)?s(n)[1]:s(n)[0]):i?o+s(n)[1]:o+(a(e)?s(n)[1]:s(n)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,ss:i,m:r,mm:i,h:r,hh:i,d:r,dd:i,M:r,MM:i,y:r,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(2689))},3049:(e,t,n)=>{"use strict";n.d(t,{A:()=>o,z:()=>l});var r=n(5959);const a=r.createContext({}),s=!0;function i({baseColor:e,highlightColor:t,width:n,height:r,borderRadius:a,circle:i,direction:o,duration:l,enableAnimation:u=s,customHighlightBackground:d}){const c={};return"rtl"===o&&(c["--animation-direction"]="reverse"),"number"==typeof l&&(c["--animation-duration"]=`${l}s`),u||(c["--pseudo-element-display"]="none"),"string"!=typeof n&&"number"!=typeof n||(c.width=n),"string"!=typeof r&&"number"!=typeof r||(c.height=r),"string"!=typeof a&&"number"!=typeof a||(c.borderRadius=a),i&&(c.borderRadius="50%"),void 0!==e&&(c["--base-color"]=e),void 0!==t&&(c["--highlight-color"]=t),"string"==typeof d&&(c["--custom-highlight-background"]=d),c}function o({count:e=1,wrapper:t,className:n,containerClassName:o,containerTestId:l,circle:u=!1,style:d,...c}){var h,m,p;const f=r.useContext(a),_={...c};for(const[e,t]of Object.entries(c))void 0===t&&delete _[e];const g={...f,..._,circle:u},y={...d,...i(g)};let v="react-loading-skeleton";n&&(v+=` ${n}`);const b=null!==(h=g.inline)&&void 0!==h&&h,M=[],w=Math.ceil(e);for(let t=0;te&&t===w-1){const t=null!==(m=n.width)&&void 0!==m?m:"100%",r=e%1,a="number"==typeof t?t*r:`calc(${t} * ${r})`;n={...n,width:a}}const a=r.createElement("span",{className:v,style:n,key:t},"‌");b?M.push(a):M.push(r.createElement(r.Fragment,{key:t},a,r.createElement("br",null)))}return r.createElement("span",{className:o,"data-testid":l,"aria-live":"polite","aria-busy":null!==(p=g.enableAnimation)&&void 0!==p?p:s},t?M.map((e,n)=>r.createElement(t,{key:n},e)):M)}function l({children:e,...t}){return r.createElement(a.Provider,{value:t},e)}},3179:function(e,t,n){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(2689))},3239:function(e,t,n){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(2689))},3310:function(e,t,n){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(2689))},3315:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"минута":"минуту":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[r],+e)}var r=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,w:"неделя",ww:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(2689))},3350:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},3369:function(e,t,n){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},3419:function(e,t,n){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10,a=e%100-r,s=e>=100?100:null;return e+(t[r]||t[a]||t[s])}},week:{dow:1,doy:7}})}(n(2689))},3480:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(2689))},3489:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395),s=n(144);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!s(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}}),!i||n&&!s(n,i)||(n=i)}return n&&e.test(n)?n:null}},3518:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(5959);const a=function(e){(0,r.useEffect)(e,[])};const s=function(e){a(function(){e()})}},3727:function(e,t,n){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(2689))},3811:(e,t,n)=>{"use strict";const r=n(6909),a=n(7659),s=n(144),i=n(2077),o=n(599),l=n(7092);e.exports=(e,t,n,u)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,u);case"!=":return a(e,n,u);case">":return s(e,n,u);case">=":return i(e,n,u);case"<":return o(e,n,u);case"<=":return l(e,n,u);default:throw new TypeError(`Invalid operator: ${t}`)}}},4031:e=>{"use strict";const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:en(t,e)}},4197:function(e,t,n){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,s,i){var o=n(t),l=r[e][n(t)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,t)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4266:(e,t,n)=>{"use strict";const r=n(5463);e.exports=(e,t,n)=>r(e,t,"<",n)},4379:function(e,t,n){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},4449:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(t,n,s,i){var o=r(t),l=a[e][r(t)];return 2===o&&(l=l[n?0:1]),l.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4452:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e="",t=0;t=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,s,i){var o=t(r),l=n[e][t(r)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(2689))},4568:(e,t,n)=>{"use strict";n.d(t,{e:()=>p});var r=n(1893),a=n(5959),s=n(1099),i=n(1570);function o(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:o}=e,u=(0,a.useRef)({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),d=(0,s.J)(e=>{n&&l(e,t)&&(o&&o(e),u.current.isPointerDown=!0)}),c=(0,s.J)(e=>{n&&n(e)});(0,a.useEffect)(()=>{let e=u.current;if(r)return;const n=t.current,a=(0,i.TW)(n);if("undefined"!=typeof PointerEvent){let n=n=>{e.isPointerDown&&l(n,t)&&c(n),e.isPointerDown=!1};return a.addEventListener("pointerdown",d,!0),a.addEventListener("click",n,!0),()=>{a.removeEventListener("pointerdown",d,!0),a.removeEventListener("click",n,!0)}}},[t,r,d,c])}function l(e,t){if(e.button>0)return!1;if(e.target){const t=e.target.ownerDocument;if(!t||!t.documentElement.contains(e.target))return!1;if(e.target.closest("[data-react-aria-top-layer]"))return!1}return!!t.current&&!e.composedPath().includes(t.current)}var u=n(8952);function d(){let e=(0,a.useRef)(new Map),t=(0,a.useCallback)((t,n,r,a)=>{let s=(null==a?void 0:a.once)?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,fn:s,options:a}),t.addEventListener(n,s,a)},[]),n=(0,a.useCallback)((t,n,r,a)=>{var s;let i=(null===(s=e.current.get(r))||void 0===s?void 0:s.fn)||r;t.removeEventListener(n,i,a),e.current.delete(r)},[]),r=(0,a.useCallback)(()=>{e.current.forEach((e,t)=>{n(e.eventTarget,e.type,t,e.options)})},[n]);return(0,a.useEffect)(()=>r,[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}var c=n(9070);function h(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:s}=e,o=(0,a.useRef)({isFocusWithin:!1}),{addGlobalListener:l,removeAllGlobalListeners:h}=d(),m=(0,a.useCallback)(e=>{e.currentTarget.contains(e.target)&&o.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(o.current.isFocusWithin=!1,h(),n&&n(e),s&&s(!1))},[n,s,o,h]),p=(0,u.yB)(m),f=(0,a.useCallback)(e=>{if(!e.currentTarget.contains(e.target))return;const t=(0,i.TW)(e.target),n=(0,c.bq)(t);if(!o.current.isFocusWithin&&n===(0,c.wt)(e.nativeEvent)){r&&r(e),s&&s(!0),o.current.isFocusWithin=!0,p(e);let n=e.currentTarget;l(t,"focus",e=>{if(o.current.isFocusWithin&&!(0,c.sD)(n,e.target)){let r=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});(0,u.o1)(r,n);let a=(0,u.eg)(r);m(a)}},{capture:!0})}},[r,s,p,l,m]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:f,onBlur:m}}}const m=[];function p(e,t){let{onClose:n,shouldCloseOnBlur:s,isOpen:i,isDismissable:l=!1,isKeyboardDismissDisabled:u=!1,shouldCloseOnInteractOutside:d}=e;(0,a.useEffect)(()=>{if(i&&!m.includes(t))return m.push(t),()=>{let e=m.indexOf(t);e>=0&&m.splice(e,1)}},[i,t]);let c=()=>{m[m.length-1]===t&&n&&n()};o({ref:t,onInteractOutside:l&&i?e=>{d&&!d(e.target)||(m[m.length-1]===t&&(e.stopPropagation(),e.preventDefault()),c())}:void 0,onInteractOutsideStart:e=>{d&&!d(e.target)||m[m.length-1]===t&&(e.stopPropagation(),e.preventDefault())}});let{focusWithinProps:p}=h({isDisabled:!s,onBlurWithin:e=>{e.relatedTarget&&!(0,r.Pu)(e.relatedTarget)&&(d&&!d(e.relatedTarget)||null==n||n())}});return{overlayProps:{onKeyDown:e=>{"Escape"!==e.key||u||e.nativeEvent.isComposing||(e.stopPropagation(),e.preventDefault(),c())},...p},underlayProps:{onPointerDown:e=>{e.target===e.currentTarget&&e.preventDefault()}}}}},4636:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=c(n(2688)),i=c(n(7842)),o=n(414),l=n(544),u=c(n(9482)),d=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(){return m=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _(e){for(var t=1;t=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(2689))},4825:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(4942),a=n.n(r),s=n(278),i=n.n(s)()(a());i.push([e.id,".rc-drawer {\n inset: 0;\n position: fixed;\n z-index: 1050;\n pointer-events: none;\n}\n.rc-drawer-inline {\n position: absolute;\n}\n.rc-drawer-mask {\n inset: 0;\n position: absolute;\n z-index: 1050;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: auto;\n}\n.rc-drawer-content-wrapper {\n position: absolute;\n z-index: 1050;\n overflow: hidden;\n transition: transform 0.3s;\n}\n.rc-drawer-content-wrapper-hidden {\n display: none;\n}\n.rc-drawer-left .rc-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n}\n.rc-drawer-right .rc-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n}\n.rc-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n","",{version:3,sources:["webpack://./../node_modules/rc-drawer/assets/index.css"],names:[],mappings:"AAAA;EACE,QAAQ;EACR,eAAe;EACf,aAAa;EACb,oBAAoB;AACtB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,8BAA8B;EAC9B,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,gBAAgB;EAChB,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,MAAM;EACN,SAAS;EACT,OAAO;AACT;AACA;EACE,MAAM;EACN,QAAQ;EACR,SAAS;AACX;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,oBAAoB;AACtB",sourcesContent:[".rc-drawer {\n inset: 0;\n position: fixed;\n z-index: 1050;\n pointer-events: none;\n}\n.rc-drawer-inline {\n position: absolute;\n}\n.rc-drawer-mask {\n inset: 0;\n position: absolute;\n z-index: 1050;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: auto;\n}\n.rc-drawer-content-wrapper {\n position: absolute;\n z-index: 1050;\n overflow: hidden;\n transition: transform 0.3s;\n}\n.rc-drawer-content-wrapper-hidden {\n display: none;\n}\n.rc-drawer-left .rc-drawer-content-wrapper {\n top: 0;\n bottom: 0;\n left: 0;\n}\n.rc-drawer-right .rc-drawer-content-wrapper {\n top: 0;\n right: 0;\n bottom: 0;\n}\n.rc-drawer-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n background: #fff;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const o=i},4914:function(e,t,n){!function(e){"use strict";var t=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],r=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],a=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],s=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];e.defineLocale("gd",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},4942:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(a," */");return[t].concat([s]).join("\n")}return[t].join("\n")}},5027:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5059:function(e,t,n){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,t,n,r){var s="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":s=r?"sekunnin":"sekuntia";break;case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=a(e,r)+" "+s}function a(e,r){return e<10?r?n[e]:t[e]:e}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5192:function(e,t,n){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}function s(e,t){return t?"dažas sekundes":"dažām sekundēm"}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s,ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5198:function(e,t,n){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(2689))},5225:(e,t,n)=>{"use strict";n.d(t,{c:()=>V});var r=n(7405),a=n(8102),s=n(9089),i=n(7850),o=n(9644);var l=n(5959),u=n(8398),d=n(8083),c=l.useLayoutEffect,h=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],m=function(){};var p=function(e){e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme;var t=(0,o.A)(e,h);return(0,r.A)({},t)},f=function(e,t,n){var r=e.cx,a=e.getStyles,s=e.getClassNames,i=e.className;return{css:a(t,e),className:r(null!=n?n:{},s(t,e),i)}};var _={get passive(){return!0}},g="undefined"!=typeof window?window:{};g.addEventListener&&g.removeEventListener&&(g.addEventListener("p",m,_),g.removeEventListener("p",m,!1));var y=["children","innerProps"],v=["children","innerProps"];var b,M=function(e){return"auto"===e?"bottom":e},w=(0,l.createContext)(null),L=function(e){var t=e.children,n=e.innerRef,r=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"menu",{menu:!0}),{ref:n},r),t)},S=["size"],k=["innerProps","isRtl","size"];var D,T,x={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},Y=function(e){var t=e.size,n=(0,o.A)(e,S);return(0,s.jsx)("svg",(0,a.A)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:x},n))},E=function(e){return(0,s.jsx)(Y,(0,a.A)({size:20},e),(0,s.jsx)("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},O=function(e){return(0,s.jsx)(Y,(0,a.A)({size:20},e),(0,s.jsx)("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},A=(0,s.keyframes)(b||(D=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],T||(T=D.slice(0)),b=Object.freeze(Object.defineProperties(D,{raw:{value:Object.freeze(T)}})))),C=function(e){var t=e.delay,n=e.offset;return(0,s.jsx)("span",{css:(0,s.css)({animation:"".concat(A," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},R=function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,i=e.innerRef,o=e.innerProps,l=e.menuIsOpen;return(0,s.jsx)("div",(0,a.A)({ref:i},f(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":r,"control--menu-is-open":l}),o,{"aria-disabled":n||void 0}),t)},P=["data"],j=function(e){var t=e.children,n=e.cx,r=e.getStyles,i=e.getClassNames,o=e.Heading,l=e.headingProps,u=e.innerProps,d=e.label,c=e.theme,h=e.selectProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"group",{group:!0}),u),(0,s.jsx)(o,(0,a.A)({},l,{selectProps:h,theme:c,getStyles:r,getClassNames:i,cx:n}),d),(0,s.jsx)("div",null,t))},H=["innerRef","isDisabled","isHidden","inputClassName"],N={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},I=((0,r.A)({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},N),function(e){return(0,r.A)({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},N)}),F=function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",n,t)};var W=function(e){var t=e.children,n=e.components,a=e.data,i=e.innerProps,o=e.isDisabled,l=e.removeProps,u=e.selectProps,d=n.Container,c=n.Label,h=n.Remove;return(0,s.jsx)(d,{data:a,innerProps:(0,r.A)((0,r.A)({},f(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":o})),i),selectProps:u},(0,s.jsx)(c,{data:a,innerProps:(0,r.A)({},f(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:u},t),(0,s.jsx)(h,{data:a,innerProps:(0,r.A)((0,r.A)({},f(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},l),selectProps:u}))},V={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||(0,s.jsx)(E,null))},Control:R,DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||(0,s.jsx)(O,null))},DownChevron:O,CrossIcon:E,Group:j,GroupHeading:function(e){var t=p(e);t.data;var n=(0,o.A)(t,P);return(0,s.jsx)("div",(0,a.A)({},f(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return(0,s.jsx)("span",(0,a.A)({},t,f(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,r=p(e),i=r.innerRef,l=r.isDisabled,u=r.isHidden,d=r.inputClassName,c=(0,o.A)(r,H);return(0,s.jsx)("div",(0,a.A)({},f(e,"input",{"input-container":!0}),{"data-value":n||""}),(0,s.jsx)("input",(0,a.A)({className:t({input:!0},d),ref:i,style:I(u),disabled:l},c)))},LoadingIndicator:function(e){var t=e.innerProps,n=e.isRtl,i=e.size,l=void 0===i?4:i,u=(0,o.A)(e,k);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},u),{},{innerProps:t,isRtl:n,size:l}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),(0,s.jsx)(C,{delay:0,offset:n}),(0,s.jsx)(C,{delay:160,offset:!0}),(0,s.jsx)(C,{delay:320,offset:!n}))},Menu:L,MenuList:function(e){var t=e.children,n=e.innerProps,r=e.innerRef,i=e.isMulti;return(0,s.jsx)("div",(0,a.A)({},f(e,"menuList",{"menu-list":!0,"menu-list--is-multi":i}),{ref:r},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,o=e.controlElement,h=e.innerProps,m=e.menuPlacement,p=e.menuPosition,_=(0,l.useRef)(null),g=(0,l.useRef)(null),y=(0,l.useState)(M(m)),v=(0,i.A)(y,2),b=v[0],L=v[1],S=(0,l.useMemo)(function(){return{setPortalPlacement:L}},[]),k=(0,l.useState)(null),D=(0,i.A)(k,2),T=D[0],x=D[1],Y=(0,l.useCallback)(function(){if(o){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(o),t="fixed"===p?0:window.pageYOffset,n=e[b]+t;n===(null==T?void 0:T.offset)&&e.left===(null==T?void 0:T.rect.left)&&e.width===(null==T?void 0:T.rect.width)||x({offset:n,rect:e})}},[o,p,b,null==T?void 0:T.offset,null==T?void 0:T.rect.left,null==T?void 0:T.rect.width]);c(function(){Y()},[Y]);var E=(0,l.useCallback)(function(){"function"==typeof g.current&&(g.current(),g.current=null),o&&_.current&&(g.current=(0,d.ll)(o,_.current,Y,{elementResize:"ResizeObserver"in window}))},[o,Y]);c(function(){E()},[E]);var O=(0,l.useCallback)(function(e){_.current=e,E()},[E]);if(!t&&"fixed"!==p||!T)return null;var A=(0,s.jsx)("div",(0,a.A)({ref:O},f((0,r.A)((0,r.A)({},e),{},{offset:T.offset,position:p,rect:T.rect}),"menuPortal",{"menu-portal":!0}),h),n);return(0,s.jsx)(w.Provider,{value:S},t?(0,u.createPortal)(A,t):A)},LoadingMessage:function(e){var t=e.children,n=void 0===t?"Loading...":t,i=e.innerProps,l=(0,o.A)(e,v);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},l),{},{children:n,innerProps:i}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),i),n)},NoOptionsMessage:function(e){var t=e.children,n=void 0===t?"No options":t,i=e.innerProps,l=(0,o.A)(e,y);return(0,s.jsx)("div",(0,a.A)({},f((0,r.A)((0,r.A)({},l),{},{children:n,innerProps:i}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),i),n)},MultiValue:W,MultiValueContainer:F,MultiValueLabel:F,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({role:"button"},n),t||(0,s.jsx)(E,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,i=e.isSelected,o=e.innerRef,l=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":r,"option--is-selected":i}),{ref:o,"aria-disabled":n},l),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,r=e.isDisabled,i=e.isRtl;return(0,s.jsx)("div",(0,a.A)({},f(e,"container",{"--is-disabled":r,"--is-rtl":i}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,r=e.innerProps;return(0,s.jsx)("div",(0,a.A)({},f(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),r),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,r=e.isMulti,i=e.hasValue;return(0,s.jsx)("div",(0,a.A)({},f(e,"valueContainer",{"value-container":!0,"value-container--is-multi":r,"value-container--has-value":i}),n),t)}}},5251:function(e,t,n){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(2689))},5292:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r1?e.substring(e.length-2):"";return 12==n||13==n||"2"!=t&&"3"!=t&&"50"!=n&&"70"!=t&&"80"!=t?"ê":"yê"}e.defineLocale("ku-kmr",{months:"Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar".split("_"),monthsShort:"Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber".split("_"),monthsParseExact:!0,weekdays:"Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî".split("_"),weekdaysShort:"Yek_Du_Sê_Çar_Pên_În_Şem".split("_"),weekdaysMin:"Ye_Du_Sê_Ça_Pê_În_Şe".split("_"),meridiem:function(e,t,n){return e<12?n?"bn":"BN":n?"pn":"PN"},meridiemParse:/bn|BN|pn|PN/,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM[a] YYYY[an]",LLL:"Do MMMM[a] YYYY[an] HH:mm",LLLL:"dddd, Do MMMM[a] YYYY[an] HH:mm",ll:"Do MMM[.] YYYY[an]",lll:"Do MMM[.] YYYY[an] HH:mm",llll:"ddd[.], Do MMM[.] YYYY[an] HH:mm"},calendar:{sameDay:"[Îro di saet] LT [de]",nextDay:"[Sibê di saet] LT [de]",nextWeek:"dddd [di saet] LT [de]",lastDay:"[Duh di saet] LT [de]",lastWeek:"dddd[a borî di saet] LT [de]",sameElse:"L"},relativeTime:{future:"di %s de",past:"berî %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,w:t,ww:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(?:yê|ê|\.)/,ordinal:function(e,t){var r=t.toLowerCase();return r.includes("w")||r.includes("m")?e+".":e+n(e)},week:{dow:1,doy:4}})}(n(2689))},5334:(e,t,n)=>{"use strict";const r=n(7944),a=n(5860),{safeRe:s,t:i}=n(6850);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){const r=t.includePrerelease?s[i.COERCERTLFULL]:s[i.COERCERTL];let a;for(;(a=r.exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&a.index+a[0].length===n.index+n[0].length||(n=a),r.lastIndex=a.index+a[1].length+a[2].length;r.lastIndex=-1}else n=e.match(t.includePrerelease?s[i.COERCEFULL]:s[i.COERCE]);if(null===n)return null;const o=n[2],l=n[3]||"0",u=n[4]||"0",d=t.includePrerelease&&n[5]?`-${n[5]}`:"",c=t.includePrerelease&&n[6]?`+${n[6]}`:"";return a(`${o}.${l}.${u}${d}${c}`,t)}},5363:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var s,i=t.words[r];return 1===r.length?"y"===r&&n?"jedna godina":a||n?i[0]:i[1]:(s=t.correctGrammaticalCase(e,i),"yy"===r&&n&&"godinu"===s?e+" godina":e+" "+s)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5380:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},5387:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(2689))},5460:(e,t,n)=>{"use strict";n.d(t,{ME:()=>v});var r=n(8952),a=n(7176);var s=n(1570);n(5959);let i=null,o=new Set,l=new Map,u=!1,d=!1;function c(e,t){for(let n of o)n(e,t)}function h(e){u=!0,function(e){return!(e.metaKey||!(0,a.cX)()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key)}(e)&&(i="keyboard",c("keyboard",e))}function m(e){i="pointer","mousedown"!==e.type&&"pointerdown"!==e.type||(u=!0,c("pointer",e))}function p(e){var t;(0===(t=e).mozInputSource&&t.isTrusted||((0,a.m0)()&&t.pointerType?"click"===t.type&&1===t.buttons:0===t.detail&&!t.pointerType))&&(u=!0,i="virtual")}function f(e){e.target!==window&&e.target!==document&&!r.lR&&e.isTrusted&&(u||d||(i="virtual",c("virtual",e)),u=!1,d=!1)}function _(){r.lR||(u=!1,d=!0)}function g(e){if("undefined"==typeof window||"undefined"==typeof document||l.get((0,s.mD)(e)))return;const t=(0,s.mD)(e),n=(0,s.TW)(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){u=!0,r.apply(this,arguments)},n.addEventListener("keydown",h,!0),n.addEventListener("keyup",h,!0),n.addEventListener("click",p,!0),t.addEventListener("focus",f,!0),t.addEventListener("blur",_,!1),"undefined"!=typeof PointerEvent&&(n.addEventListener("pointerdown",m,!0),n.addEventListener("pointermove",m,!0),n.addEventListener("pointerup",m,!0)),t.addEventListener("beforeunload",()=>{y(e)},{once:!0}),l.set(t,{focus:r})}const y=(e,t)=>{const n=(0,s.mD)(e),r=(0,s.TW)(e);t&&r.removeEventListener("DOMContentLoaded",t),l.has(n)&&(n.HTMLElement.prototype.focus=l.get(n).focus,r.removeEventListener("keydown",h,!0),r.removeEventListener("keyup",h,!0),r.removeEventListener("click",p,!0),n.removeEventListener("focus",f,!0),n.removeEventListener("blur",_,!1),"undefined"!=typeof PointerEvent&&(r.removeEventListener("pointerdown",m,!0),r.removeEventListener("pointermove",m,!0),r.removeEventListener("pointerup",m,!0)),l.delete(n))};function v(){return i}"undefined"!=typeof document&&function(e){const t=(0,s.TW)(e);let n;"loading"!==t.readyState?g(e):(n=()=>{g(e)},t.addEventListener("DOMContentLoaded",n))}();new Set(["checkbox","radio","range","color","file","image","button","submit","reset"])},5463:(e,t,n)=>{"use strict";const r=n(7944),a=n(9524),{ANY:s}=a,i=n(8395),o=n(1722),l=n(144),u=n(599),d=n(7092),c=n(2077);e.exports=(e,t,n,h)=>{let m,p,f,_,g;switch(e=new r(e,h),t=new i(t,h),n){case">":m=l,p=d,f=u,_=">",g=">=";break;case"<":m=u,p=c,f=l,_="<",g="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(o(e,t,h))return!1;for(let n=0;n{e.semver===s&&(e=new a(">=0.0.0")),i=i||e,o=o||e,m(e.semver,i.semver,h)?i=e:f(e.semver,o.semver,h)&&(o=e)}),i.operator===_||i.operator===g)return!1;if((!o.operator||o.operator===_)&&p(e,o.semver))return!1;if(o.operator===g&&f(e,o.semver))return!1}return!0}},5540:(e,t,n)=>{"use strict";n.d(t,{w:()=>a});var r=n(5959);function a(e){const{ref:t,box:n,onResize:a}=e;(0,r.useEffect)(()=>{let e=null==t?void 0:t.current;if(e){if(void 0===window.ResizeObserver)return window.addEventListener("resize",a,!1),()=>{window.removeEventListener("resize",a,!1)};{const t=new window.ResizeObserver(e=>{e.length&&a()});return t.observe(e,{box:n}),()=>{e&&t.unobserve(e)}}}},[a,t,n])}},5565:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(2689))},5662:function(e,t,n){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},5718:function(e,t,n){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5730:(e,t,n)=>{"use strict";n.d(t,{Y:()=>a});var r=n(116);const a=[{code:r.MB,name:"English"},{code:r.NY,name:"Français"},{code:r.d_,name:"Español"},{code:r.rT,name:"Deutsch"},{code:r.fY,name:"中文(简体)"},{code:r.jQ,name:"Português Brasileiro"},{code:r.AY,name:"中文(繁體)"},{code:r.bE,name:"Italiano"},{code:r.Hp,name:"日本語"},{code:r.IP,name:"Bahasa Indonesia"},{code:r.y6,name:"한국어"},{code:r.k8,name:"Русский"},{code:r.w2,name:"Čeština"},{code:r.wQ,name:"Nederlands"},{code:r.tv,name:"Magyar"},{code:r.LE,name:"Português"},{code:r.tS,name:"Polski"},{code:r.$0,name:"Svenska"},{code:r.mz,name:"Türkçe"}]},5755:(e,t,n)=>{"use strict";n.d(t,{s:()=>E});var r=n(3003),a=n(1099),s=n(5959);function i(e){let[t,n]=(0,s.useState)(e),i=(0,s.useRef)(null),o=(0,a.J)(()=>{if(!i.current)return;let e=i.current.next();e.done?i.current=null:t===e.value?o():n(e.value)});(0,r.N)(()=>{i.current&&o()});let l=(0,a.J)(e=>{i.current=e(t),o()});return[t,l]}const o={prefix:String(Math.round(1e10*Math.random())),current:0},l=s.createContext(o),u=s.createContext(!1);Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);let d=new WeakMap;function c(e=!1){let t=(0,s.useContext)(l),n=(0,s.useRef)(null);if(null===n.current&&!e){var r,a;let e=null===(a=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===a||null===(r=a.ReactCurrentOwner)||void 0===r?void 0:r.current;if(e){let n=d.get(e);null==n?d.set(e,{id:t.current,state:e.memoizedState}):e.memoizedState!==n.state&&(t.current=n.id,d.delete(e))}n.current=++t.current}return n.current}const h="function"==typeof s.useId?function(e){let t=s.useId(),[n]=(0,s.useState)("function"==typeof s.useSyncExternalStore?s.useSyncExternalStore(f,m,p):(0,s.useContext)(u));return e||`${n?"react-aria":`react-aria${o.prefix}`}-${t}`}:function(e){let t=(0,s.useContext)(l),n=c(!!e),r=`react-aria${t.prefix}`;return e||`${r}-${n}`};function m(){return!1}function p(){return!0}function f(e){return()=>{}}let _,g=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),y=new Map;function v(e=[]){let t=function(e){let[t,n]=(0,s.useState)(e),a=(0,s.useRef)(null),i=h(t),o=(0,s.useRef)(null);if(_&&_.register(o,i),g){const e=y.get(i);e&&!e.includes(a)?e.push(a):y.set(i,[a])}return(0,r.N)(()=>{let e=i;return()=>{_&&_.unregister(o),y.delete(e)}},[i]),(0,s.useEffect)(()=>{let e=a.current;return e&&n(e),()=>{e&&(a.current=null)}}),i}(),[n,a]=i(t),o=(0,s.useCallback)(()=>{a(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,a]);return(0,r.N)(o,[t,o,...e]),n}"undefined"!=typeof FinalizationRegistry&&(_=new FinalizationRegistry(e=>{y.delete(e)}));const b=new Set(["id"]),M=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),w=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),L=new Set(["dir","lang","hidden","inert","translate"]),S=new Set(["onClick","onAuxClick","onContextMenu","onDoubleClick","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onGotPointerCapture","onLostPointerCapture","onScroll","onWheel","onAnimationStart","onAnimationEnd","onAnimationIteration","onTransitionCancel","onTransitionEnd","onTransitionRun","onTransitionStart"]),k=/^(data-.*)$/;function D(e,t={}){let{labelable:n,isLink:r,global:a,events:s=a,propNames:i}=t,o={};for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(b.has(t)||n&&M.has(t)||r&&w.has(t)||a&&L.has(t)||s&&S.has(t)||t.endsWith("Capture")&&S.has(t.slice(0,-7))||(null==i?void 0:i.has(t))||k.test(t))&&(o[t]=e[t]);return o}var T=n(5780);n(8398);const x=s.createContext(null);function Y(){let e=(0,s.useContext)(x),t=null==e?void 0:e.setContain;(0,r.N)(()=>{null==t||t(!0)},[t])}function E(e,t){let{role:n="dialog"}=e,r=v();r=e["aria-label"]?void 0:r;let a=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{if(t.current&&!t.current.contains(document.activeElement)){(0,T.l)(t.current);let e=setTimeout(()=>{document.activeElement===t.current&&(a.current=!0,t.current&&(t.current.blur(),(0,T.l)(t.current)),a.current=!1)},500);return()=>{clearTimeout(e)}}},[t]),Y(),{dialogProps:{...D(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:e=>{a.current&&e.stopPropagation()}},titleProps:{id:r}}}},5780:(e,t,n)=>{"use strict";n.d(t,{l:()=>h});var r=n(5460),a=n(1570),s=n(9070);let i=new Map,o=new Set;function l(){if("undefined"==typeof window)return;function e(e){return"propertyName"in e}let t=n=>{if(!e(n)||!n.target)return;let r=i.get(n.target);if(r&&(r.delete(n.propertyName),0===r.size&&(n.target.removeEventListener("transitioncancel",t),i.delete(n.target)),0===i.size)){for(let e of o)e();o.clear()}};document.body.addEventListener("transitionrun",n=>{if(!e(n)||!n.target)return;let r=i.get(n.target);r||(r=new Set,i.set(n.target,r),n.target.addEventListener("transitioncancel",t,{once:!0})),r.add(n.propertyName)}),document.body.addEventListener("transitionend",t)}function u(e){requestAnimationFrame(()=>{!function(){for(const[e]of i)"isConnected"in e&&!e.isConnected&&i.delete(e)}(),0===i.size?e():o.add(e)})}function d(e){if(function(){if(null==c){c=!1;try{document.createElement("div").focus({get preventScroll(){return c=!0,!0}})}catch{}}return c}())e.focus({preventScroll:!0});else{let t=function(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight{(0,s.bq)(t)===r&&e.isConnected&&d(e)})}else d(e)}},5860:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n=!1)=>{if(e instanceof r)return e;try{return new r(e,t)}catch(e){if(!n)return null;throw e}}},5865:function(e,t,n){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10,r=e%100-n,a=e>=100?100:null;return e+(t[n]||t[r]||t[a])},week:{dow:1,doy:7}})}(n(2689))},5887:function(e,t,n){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},5955:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t,n,a,s)=>{"string"==typeof n&&(s=a,a=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,a,s).version}catch(e){return null}}},5961:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){if("m"===n)return t?"jedna minuta":r?"jednu minutu":"jedne minute"}function n(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return"jedan sat";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:n,m:t,mm:n,h:n,hh:n,d:"dan",dd:n,M:"mjesec",MM:n,y:"godinu",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5964:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},5986:(e,t,n)=>{"use strict";const r=n(7944);e.exports=(e,t)=>new r(e,t).minor},6033:(e,t,n)=>{"use strict";const r=n(2801);e.exports=(e,t)=>e.sort((e,n)=>r(n,e,t))},6080:function(e,t,n){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(2689))},6087:(e,t)=>{"use strict";var n,r=Symbol.for("react.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),_=Symbol.for("react.offscreen");function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case s:case o:case i:case h:case m:return e;default:switch(e=e&&e.$$typeof){case d:case u:case c:case f:case p:case l:return e;default:return t}}case a:return t}}}n=Symbol.for("react.module.reference"),t.ForwardRef=c,t.isMemo=function(e){return g(e)===p}},6118:function(e,t,n){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),r=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function s(e,t,n){var r=e+" ";switch(n){case"ss":return r+(a(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(a(e)?"godziny":"godzin");case"ww":return r+(a(e)?"tygodnie":"tygodni");case"MM":return r+(a(e)?"miesiące":"miesięcy");case"yy":return r+(a(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:s,m:s,mm:s,h:s,hh:s,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:s,M:"miesiąc",MM:s,y:"rok",yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6145:(e,t,n)=>{"use strict";n.d(t,{CO:()=>a,rw:()=>r,yV:()=>s});const r={allowCustomValue:!0,includeAll:!1,multi:!1,options:[],skipUrlSync:!1};var a=(e=>(e[e.never=0]="never",e[e.onDashboardLoad=1]="onDashboardLoad",e[e.onTimeRangeChanged=2]="onTimeRangeChanged",e))(a||{});var s=(e=>(e[e.Crosshair=1]="Crosshair",e[e.Off=0]="Off",e[e.Tooltip=2]="Tooltip",e))(s||{})},6152:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2689))},6317:function(e,t,n){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(2689))},6333:(e,t,n)=>{"use strict";t.__esModule=!0,t.resizableProps=void 0;var r,a=(r=n(2688))&&r.__esModule?r:{default:r};n(8230);var s={axis:a.default.oneOf(["both","x","y","none"]),className:a.default.string,children:a.default.element.isRequired,draggableOpts:a.default.shape({allowAnyClick:a.default.bool,cancel:a.default.string,children:a.default.node,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:a.default.node,grid:a.default.arrayOf(a.default.number),handle:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n1&&e<5}function a(e,t,n,a){var s=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?s+(r(e)?"sekundy":"sekúnd"):s+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?s+(r(e)?"minúty":"minút"):s+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?s+(r(e)?"hodiny":"hodín"):s+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?s+(r(e)?"dni":"dní"):s+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?s+(r(e)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?s+(r(e)?"roky":"rokov"):s+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6438:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7451);function a(e,t){if(e){if("string"==typeof e)return(0,r.A)(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.A)(e,t):void 0}}},6441:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6474:function(e,t,n){!function(e){"use strict";function t(e,t,n){return e+" "+a({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}function n(e){switch(r(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}function r(e){return e>9?r(e%10):e}function a(e,t){return 2===t?s(e):e}function s(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}var i=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],o=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,l=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,u=/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,d=[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],c=[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],h=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:h,fullWeekdaysParse:d,shortWeekdaysParse:c,minWeekdaysParse:h,monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:l,monthsShortStrictRegex:u,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(2689))},6492:function(e,t,n){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6544:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},6557:function(e,t,n){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6601:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6609:(e,t,n)=>{"use strict";t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=a?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(r,s,i):r[s]=e[s]}r.default=e,n&&n.set(e,r);return r}(n(5959)),a=l(n(2688)),s=l(n(1794)),i=n(6333),o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,o);return r.createElement(s.default,{axis:p,draggableOpts:l,handle:t,handleSize:n,height:this.state.height,lockAspectRatio:m,maxConstraints:c,minConstraints:u,onResizeStart:a,onResize:this.onResize,onResizeStop:i,resizeHandles:f,transformScale:g,width:this.state.width},r.createElement("div",d({},y,{style:h(h({},_),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},a}(r.Component);t.default=f,f.propTypes=h(h({},i.resizableProps),{},{children:a.default.element})},6627:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвіліна":"хвіліну":"h"===r?n?"гадзіна":"гадзіну":e+" "+t({ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[r],+e)}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(2689))},6711:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(2689))},6732:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)},t.findInArray=function(e,t){for(let n=0,r=e.length;n{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=function(e){var t;return t=function(t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(u,t);var n,s,l=(n=u,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,t=p(n);if(s){var a=p(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,e)});function u(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var t=arguments.length,n=new Array(t),r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(t,o);return n&&!this.mounted?a.createElement("div",{className:(0,i.default)(this.props.className,_),style:this.props.style,ref:this.elementRef}):a.createElement(e,d({innerRef:this.elementRef},r,this.state))}}]),u}(a.Component),f(t,"defaultProps",{measureBeforeMount:!1}),f(t,"propTypes",{measureBeforeMount:s.default.bool}),t};var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=l(n(2688)),i=l(n(7256)),o=["measureBeforeMount"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign||function(e){for(var t=1;t{"use strict";const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:s}=n(9630),i=n(9796),o=(t=e.exports={}).re=[],l=t.safeRe=[],u=t.src=[],d=t.safeSrc=[],c=t.t={};let h=0;const m="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",s],[m,a]],f=(e,t,n)=>{const r=(e=>{for(const[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),a=h++;i(e,a,t),c[e]=a,u[a]=t,d[a]=r,o[a]=new RegExp(t,n?"g":void 0),l[a]=new RegExp(r,n?"g":void 0)};f("NUMERICIDENTIFIER","0|[1-9]\\d*"),f("NUMERICIDENTIFIERLOOSE","\\d+"),f("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),f("MAINVERSION",`(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})\\.(${u[c.NUMERICIDENTIFIER]})`),f("MAINVERSIONLOOSE",`(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})\\.(${u[c.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASEIDENTIFIER",`(?:${u[c.NONNUMERICIDENTIFIER]}|${u[c.NUMERICIDENTIFIER]})`),f("PRERELEASEIDENTIFIERLOOSE",`(?:${u[c.NONNUMERICIDENTIFIER]}|${u[c.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASE",`(?:-(${u[c.PRERELEASEIDENTIFIER]}(?:\\.${u[c.PRERELEASEIDENTIFIER]})*))`),f("PRERELEASELOOSE",`(?:-?(${u[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[c.PRERELEASEIDENTIFIERLOOSE]})*))`),f("BUILDIDENTIFIER",`${m}+`),f("BUILD",`(?:\\+(${u[c.BUILDIDENTIFIER]}(?:\\.${u[c.BUILDIDENTIFIER]})*))`),f("FULLPLAIN",`v?${u[c.MAINVERSION]}${u[c.PRERELEASE]}?${u[c.BUILD]}?`),f("FULL",`^${u[c.FULLPLAIN]}$`),f("LOOSEPLAIN",`[v=\\s]*${u[c.MAINVERSIONLOOSE]}${u[c.PRERELEASELOOSE]}?${u[c.BUILD]}?`),f("LOOSE",`^${u[c.LOOSEPLAIN]}$`),f("GTLT","((?:<|>)?=?)"),f("XRANGEIDENTIFIERLOOSE",`${u[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),f("XRANGEIDENTIFIER",`${u[c.NUMERICIDENTIFIER]}|x|X|\\*`),f("XRANGEPLAIN",`[v=\\s]*(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:\\.(${u[c.XRANGEIDENTIFIER]})(?:${u[c.PRERELEASE]})?${u[c.BUILD]}?)?)?`),f("XRANGEPLAINLOOSE",`[v=\\s]*(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[c.XRANGEIDENTIFIERLOOSE]})(?:${u[c.PRERELEASELOOSE]})?${u[c.BUILD]}?)?)?`),f("XRANGE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAIN]}$`),f("XRANGELOOSE",`^${u[c.GTLT]}\\s*${u[c.XRANGEPLAINLOOSE]}$`),f("COERCEPLAIN",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?`),f("COERCE",`${u[c.COERCEPLAIN]}(?:$|[^\\d])`),f("COERCEFULL",u[c.COERCEPLAIN]+`(?:${u[c.PRERELEASE]})?`+`(?:${u[c.BUILD]})?(?:$|[^\\d])`),f("COERCERTL",u[c.COERCE],!0),f("COERCERTLFULL",u[c.COERCEFULL],!0),f("LONETILDE","(?:~>?)"),f("TILDETRIM",`(\\s*)${u[c.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",f("TILDE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAIN]}$`),f("TILDELOOSE",`^${u[c.LONETILDE]}${u[c.XRANGEPLAINLOOSE]}$`),f("LONECARET","(?:\\^)"),f("CARETTRIM",`(\\s*)${u[c.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",f("CARET",`^${u[c.LONECARET]}${u[c.XRANGEPLAIN]}$`),f("CARETLOOSE",`^${u[c.LONECARET]}${u[c.XRANGEPLAINLOOSE]}$`),f("COMPARATORLOOSE",`^${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]})$|^$`),f("COMPARATOR",`^${u[c.GTLT]}\\s*(${u[c.FULLPLAIN]})$|^$`),f("COMPARATORTRIM",`(\\s*)${u[c.GTLT]}\\s*(${u[c.LOOSEPLAIN]}|${u[c.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",f("HYPHENRANGE",`^\\s*(${u[c.XRANGEPLAIN]})\\s+-\\s+(${u[c.XRANGEPLAIN]})\\s*$`),f("HYPHENRANGELOOSE",`^\\s*(${u[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[c.XRANGEPLAINLOOSE]})\\s*$`),f("STAR","(<|>)?=?\\s*\\*"),f("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),f("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},6884:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},6909:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>0===r(e,t,n)},7020:function(e,t,n){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pzt_Sal_Çar_Per_Cum_Cmt".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10,a=e%100-r,s=e>=100?100:null;return e+(t[r]||t[a]||t[s])}},week:{dow:1,doy:7}})}(n(2689))},7023:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t)=>r(e,t,!0)},7057:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},7092:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>r(e,t,n)<=0},7095:e=>{"use strict";const t=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?t:e:n},7101:function(e,t,n){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(2689))},7104:function(e,t,n){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(2689))},7151:e=>{e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},7176:(e,t,n)=>{"use strict";function r(e){var t;if("undefined"==typeof window||null==window.navigator)return!1;let n=null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.brands;return Array.isArray(n)&&n.some(t=>e.test(t.brand))||e.test(window.navigator.userAgent)}function a(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function s(e){let t=null;return()=>(null==t&&(t=e()),t)}n.d(t,{H8:()=>d,cX:()=>i,m0:()=>c});const i=s(function(){return a(/^Mac/i)}),o=s(function(){return a(/^iPhone/i)}),l=s(function(){return a(/^iPad/i)||i()&&navigator.maxTouchPoints>1}),u=s(function(){return o()||l()}),d=(s(function(){return i()||u()}),s(function(){return r(/AppleWebKit/i)&&!d()}),s(function(){return r(/Chrome/i)})),c=s(function(){return r(/Android/i)});s(function(){return r(/Firefox/i)})},7186:(e,t,n)=>{"use strict";n.d(t,{Tp:()=>c});var r=n(8449);function a(e,t="latest"){return s(e,t.replace(/\-.*/,""))}function s(e,t){const n={};for(const[r,a]of Object.entries(e))i(a)?n[r]=s(a,t):(l(a,r),n[r]=o(a,t));return n}function i(e){if("object"==typeof e){const[t]=Object.keys(e);return!(0,r.valid)(t)}return!1}function o(e,t){let n,a=Object.keys(e).sort(r.compare);if("latest"===t)return e[a[a.length-1]];for(const e of a)(0,r.gte)(t,e)&&(n=e);return n||(n=a[a.length-1]),e[n]}function l(e,t){if(!Object.keys(e).every(e=>(0,r.valid)(e)))throw new Error(`Invalid semver version: '${t}'`)}const u="8.5.0",d={RadioButton:{container:{"10.2.3":"data-testid radio-button"}},Breadcrumbs:{breadcrumb:{"9.4.0":e=>`data-testid ${e} breadcrumb`}},CanvasGridAddActions:{addPanel:{"12.1.0":"data-testid CanvasGridAddActions add-panel"},groupPanels:{"12.1.0":"data-testid CanvasGridAddActions group-panels"},ungroup:{"12.1.0":"data-testid CanvasGridAddActions ungroup"},addRow:{"12.1.0":"data-testid CanvasGridAddActions add-row"},pasteRow:{"12.1.0":"data-testid CanvasGridAddActions paste-row"},addTab:{"12.1.0":"data-testid CanvasGridAddActions add-tab"},pasteTab:{"12.1.0":"data-testid CanvasGridAddActions paste-tab"}},DashboardEditPaneSplitter:{primaryBody:{"12.1.0":"data-testid DashboardEditPaneSplitter primary body"}},EditPaneHeader:{deleteButton:{"12.1.0":"data-testid EditPaneHeader delete panel"},copyDropdown:{"12.1.0":"data-testid EditPaneHeader copy dropdown"},copy:{"12.1.0":"data-testid EditPaneHeader copy"},duplicate:{"12.1.0":"data-testid EditPaneHeader duplicate"},backButton:{"12.1.0":"data-testid EditPaneHeader back"}},TimePicker:{openButton:{[u]:"data-testid TimePicker Open Button"},overlayContent:{"10.2.3":"data-testid TimePicker Overlay Content"},fromField:{"10.2.3":"data-testid Time Range from field",[u]:"Time Range from field"},toField:{"10.2.3":"data-testid Time Range to field",[u]:"Time Range to field"},applyTimeRange:{[u]:"data-testid TimePicker submit button"},copyTimeRange:{"10.4.0":"data-testid TimePicker copy button"},pasteTimeRange:{"10.4.0":"data-testid TimePicker paste button"},calendar:{label:{"10.2.3":"data-testid Time Range calendar",[u]:"Time Range calendar"},openButton:{"10.2.3":"data-testid Open time range calendar",[u]:"Open time range calendar"},closeButton:{"10.2.3":"data-testid Close time range Calendar",[u]:"Close time range Calendar"}},absoluteTimeRangeTitle:{[u]:"data-testid-absolute-time-range-narrow"}},DataSourcePermissions:{form:{"9.5.0":()=>'form[name="addPermission"]'},roleType:{"9.5.0":"Role to add new permission to"},rolePicker:{"9.5.0":"Built-in role picker"},permissionLevel:{"12.0.0":"Permission level","9.5.0":"Permission Level"}},DateTimePicker:{input:{"10.2.3":"data-testid date-time-input"}},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:{[u]:"Test Data Query scenario select container"},scenarioSelect:{[u]:"Test Data Query scenario select"},max:{[u]:"TestData max"},min:{[u]:"TestData min"},noise:{[u]:"TestData noise"},seriesCount:{[u]:"TestData series count"},spread:{[u]:"TestData spread"},startValue:{[u]:"TestData start value"},drop:{[u]:"TestData drop values"}}},DataSourceHttpSettings:{urlInput:{"10.4.0":"data-testid Datasource HTTP settings url",[u]:"Datasource HTTP settings url"}},Jaeger:{traceIDInput:{[u]:"Trace ID"}},Prometheus:{configPage:{connectionSettings:{[u]:"Data source connection URL"},manageAlerts:{"10.4.0":"prometheus-alerts-manager"},allowAsRecordingRulesTarget:{"12.1.0":"prometheus-recording-rules-target"},scrapeInterval:{"10.4.0":"data-testid scrape interval"},queryTimeout:{"10.4.0":"data-testid query timeout"},defaultEditor:{"10.4.0":"data-testid default editor"},disableMetricLookup:{"10.4.0":"disable-metric-lookup"},prometheusType:{"10.4.0":"data-testid prometheus type"},prometheusVersion:{"10.4.0":"data-testid prometheus version"},cacheLevel:{"10.4.0":"data-testid cache level"},incrementalQuerying:{"10.4.0":"prometheus-incremental-querying"},queryOverlapWindow:{"10.4.0":"data-testid query overlap window"},disableRecordingRules:{"10.4.0":"disable-recording-rules"},customQueryParameters:{"10.4.0":"data-testid custom query parameters"},httpMethod:{"10.4.0":"data-testid http method"},exemplarsAddButton:{"10.3.0":"data-testid Add exemplar config button",[u]:"Add exemplar config button"},internalLinkSwitch:{"10.3.0":"data-testid Internal link switch",[u]:"Internal link switch"},codeModeMetricNamesSuggestionLimit:{"11.1.0":"data-testid code mode metric names suggestion limit"},seriesLimit:{"12.0.2":"data-testid maximum series limit"}},queryEditor:{explain:{"10.4.0":"data-testid prometheus explain switch wrapper"},editorToggle:{"10.4.0":"data-testid QueryEditorModeToggle"},options:{"10.4.0":"data-testid prometheus options"},legend:{"10.4.0":"data-testid prometheus legend wrapper"},format:{"10.4.0":"data-testid prometheus format"},step:{"10.4.0":"data-testid prometheus-step"},type:{"10.4.0":"data-testid prometheus type"},exemplars:{"10.4.0":"data-testid prometheus-exemplars"},builder:{metricSelect:{"10.4.0":"data-testid metric select"},hints:{"10.4.0":"data-testid prometheus hints"},metricsExplorer:{"10.4.0":"data-testid metrics explorer"},queryAdvisor:{"10.4.0":"data-testid query advisor"}},code:{queryField:{"10.4.0":"data-testid prometheus query field"},metricsCountInfo:{"11.1.0":"data-testid metrics count disclaimer"},metricsBrowser:{openButton:{"10.4.0":"data-testid open metrics browser"},selectMetric:{"10.4.0":"data-testid select a metric"},seriesLimit:{"10.3.1":"data-testid series limit"},metricList:{"10.4.0":"data-testid metric list"},labelNamesFilter:{"10.4.0":"data-testid label names filter"},labelValuesFilter:{"10.4.0":"data-testid label values filter"},useQuery:{"10.4.0":"data-testid use query"},useAsRateQuery:{"10.4.0":"data-testid use as rate query"},validateSelector:{"10.4.0":"data-testid validate selector"},clear:{"10.4.0":"data-testid clear"}}}},exemplarMarker:{"10.3.0":"data-testid Exemplar marker",[u]:"Exemplar marker"},variableQueryEditor:{queryType:{"10.4.0":"data-testid query type"},labelnames:{metricRegex:{"10.4.0":"data-testid label names metric regex"}},labelValues:{labelSelect:{"10.4.0":"data-testid label values label select"}},metricNames:{metricRegex:{"10.4.0":"data-testid metric names metric regex"}},varQueryResult:{"10.4.0":"data-testid variable query result"},seriesQuery:{"10.4.0":"data-testid prometheus series query"},classicQuery:{"10.4.0":"data-testid prometheus classic query"}},annotations:{minStep:{"10.4.0":"data-testid prometheus-annotation-min-step"},title:{"10.4.0":"data-testid prometheus annotation title"},tags:{"10.4.0":"data-testid prometheus annotation tags"},text:{"10.4.0":"data-testid prometheus annotation text"},seriesValueAsTimestamp:{"10.4.0":"data-testid prometheus annotation series value as timestamp"}}}},Menu:{MenuComponent:{[u]:e=>`${e} menu`},MenuGroup:{[u]:e=>`${e} menu group`},MenuItem:{[u]:e=>`${e} menu item`},SubMenu:{container:{"10.3.0":"data-testid SubMenu container",[u]:"SubMenu container"},icon:{"10.3.0":"data-testid SubMenu icon",[u]:"SubMenu icon"}}},Panels:{Panel:{title:{[u]:e=>`data-testid Panel header ${e}`},content:{"11.1.0":"data-testid panel content"},headerContainer:{"9.5.0":"data-testid header-container"},headerItems:{"10.2.0":e=>`data-testid Panel header item ${e}`},menuItems:{"9.5.0":e=>`data-testid Panel menu item ${e}`},menu:{"9.5.0":e=>`data-testid Panel menu ${e}`},containerByTitle:{[u]:e=>`${e} panel`},headerCornerInfo:{[u]:e=>`Panel header ${e}`},status:{"10.2.0":e=>`data-testid Panel status ${e}`,[u]:e=>"Panel status"},loadingBar:{"10.0.0":()=>"Panel loading bar"},HoverWidget:{container:{"10.1.0":"data-testid hover-header-container",[u]:"hover-header-container"},dragIcon:{"10.0.0":"data-testid drag-icon"}},PanelDataErrorMessage:{"10.4.0":"data-testid Panel data error message"}},Visualization:{Graph:{container:{"9.5.0":"Graph container"},VisualizationTab:{legendSection:{[u]:"Legend section"}},Legend:{legendItemAlias:{[u]:e=>`gpl alias ${e}`},showLegendSwitch:{[u]:"gpl show legend"}},xAxis:{labels:{[u]:()=>"div.flot-x-axis > div.flot-tick-label"}}},BarGauge:{valueV2:{[u]:"data-testid Bar gauge value"}},PieChart:{svgSlice:{"10.3.0":"data testid Pie Chart Slice"}},Text:{container:{[u]:()=>".markdown-html"}},Table:{header:{[u]:"table header"},footer:{[u]:"table-footer"},body:{"10.2.0":"data-testid table body"}}}},VizLegend:{seriesName:{"10.3.0":e=>`data-testid VizLegend series ${e}`}},Drawer:{General:{title:{[u]:e=>`Drawer title ${e}`},expand:{[u]:"Drawer expand"},contract:{[u]:"Drawer contract"},close:{"10.3.0":"data-testid Drawer close",[u]:"Drawer close"},rcContentWrapper:{"9.4.0":()=>".rc-drawer-content-wrapper"},subtitle:{"10.4.0":"data-testid drawer subtitle"}},DashboardSaveDrawer:{saveButton:{"11.1.0":"data-testid Save dashboard drawer button"},saveAsButton:{"11.1.0":"data-testid Save as dashboard drawer button"},saveAsTitleInput:{"11.1.0":"Save dashboard title field"}}},PanelEditor:{General:{content:{"11.1.0":"data-testid Panel editor content","8.0.0":"Panel editor content"}},OptionsPane:{content:{"11.1.0":"data-testid Panel editor option pane content",[u]:"Panel editor option pane content"},select:{[u]:"Panel editor option pane select"},fieldLabel:{[u]:e=>`${e} field property editor`},fieldInput:{"11.0.0":e=>`data-testid Panel editor option pane field input ${e}`}},DataPane:{content:{"11.1.0":"data-testid Panel editor data pane content",[u]:"Panel editor data pane content"}},applyButton:{"9.2.0":"data-testid Apply changes and go back to dashboard","9.1.0":"Apply changes and go back to dashboard","8.0.0":"panel editor apply"},toggleVizPicker:{"10.0.0":"data-testid toggle-viz-picker","8.0.0":"toggle-viz-picker"},toggleVizOptions:{"10.1.0":"data-testid toggle-viz-options",[u]:"toggle-viz-options"},toggleTableView:{"11.1.0":"data-testid toggle-table-view",[u]:"toggle-table-view"},showZoomField:{"10.2.0":"Map controls Show zoom control field property editor"},showAttributionField:{"10.2.0":"Map controls Show attribution field property editor"},showScaleField:{"10.2.0":"Map controls Show scale field property editor"},showMeasureField:{"10.2.0":"Map controls Show measure tools field property editor"},showDebugField:{"10.2.0":"Map controls Show debug field property editor"},measureButton:{"12.1.0":"data-testid panel-editor-measure-button","9.2.0":"show measure tools"},Outline:{section:{"12.0.0":"data-testid Outline section"},node:{"12.0.0":e=>`data-testid outline node ${e}`},item:{"12.0.0":e=>`data-testid outline item ${e}`}},ElementEditPane:{variableType:{"12.0.0":e=>`data-testid variable type ${e}`},addVariableButton:{"12.0.0":"data-testid add variable button"},variableNameInput:{"12.0.0":"data-testid variable name input"},variableLabelInput:{"12.0.0":"data-testid variable label input"},AutoGridLayout:{minColumnWidth:{"12.1.0":"data-testid min column width selector"},customMinColumnWidth:{"12.1.0":"data-testid custom min column width input"},clearCustomMinColumnWidth:{"12.1.0":"data-testid clear custom min column width input"},maxColumns:{"12.1.0":"data-testid max columns selector"},rowHeight:{"12.1.0":"data-testid row height selector"},customRowHeight:{"12.1.0":"data-testid custom row height input"},clearCustomRowHeight:{"12.1.0":"data-testid clear custom row height input"},fillScreen:{"12.1.0":"data-testid fill screen switch"}}}},PanelInspector:{Data:{content:{[u]:"Panel inspector Data content"}},Stats:{content:{[u]:"Panel inspector Stats content"}},Json:{content:{"11.1.0":"data-testid Panel inspector Json content",[u]:"Panel inspector Json content"}},Query:{content:{[u]:"Panel inspector Query content"},refreshButton:{[u]:"Panel inspector Query refresh button"},jsonObjectKeys:{[u]:()=>".json-formatter-key"}}},Tab:{title:{"11.2.0":e=>`data-testid Tab ${e}`},active:{[u]:()=>'[class*="-activeTabStyle"]'}},RefreshPicker:{runButtonV2:{[u]:"data-testid RefreshPicker run button"},intervalButtonV2:{[u]:"data-testid RefreshPicker interval button"}},QueryTab:{content:{[u]:"Query editor tab content"},queryInspectorButton:{[u]:"Query inspector button"},queryHistoryButton:{"10.2.0":"data-testid query-history-button",[u]:"query-history-button"},addQuery:{"10.2.0":"data-testid query-tab-add-query",[u]:"Query editor add query button"},addQueryFromLibrary:{"11.5.0":"data-testid query-tab-add-query-from-library"},queryGroupTopSection:{"11.2.0":"data-testid query group top section"},addExpression:{"11.2.0":"data-testid query-tab-add-expression"}},QueryHistory:{queryText:{"9.0.0":"Query text"}},QueryEditorRows:{rows:{[u]:"Query editor row"}},QueryEditorRow:{actionButton:{"10.4.0":e=>`data-testid ${e}`},title:{[u]:e=>`Query editor row title ${e}`},container:{[u]:e=>`Query editor row ${e}`}},AlertTab:{content:{"10.2.3":"data-testid Alert editor tab content",[u]:"Alert editor tab content"}},AlertRules:{groupToggle:{"11.0.0":"data-testid group-collapse-toggle"},toggle:{"11.0.0":"data-testid collapse-toggle"},expandedContent:{"11.0.0":"data-testid expanded-content"},previewButton:{"11.1.0":"data-testid alert-rule preview-button"},ruleNameField:{"11.1.0":"data-testid alert-rule name-field"},newFolderButton:{"11.1.0":"data-testid alert-rule new-folder-button"},newFolderNameField:{"11.1.0":"data-testid alert-rule name-folder-name-field"},newFolderNameCreateButton:{"11.1.0":"data-testid alert-rule name-folder-name-create-button"},newEvaluationGroupButton:{"11.1.0":"data-testid alert-rule new-evaluation-group-button"},newEvaluationGroupName:{"11.1.0":"data-testid alert-rule new-evaluation-group-name"},newEvaluationGroupInterval:{"11.1.0":"data-testid alert-rule new-evaluation-group-interval"},newEvaluationGroupCreate:{"11.1.0":"data-testid alert-rule new-evaluation-group-create-button"},step:{"11.5.0":e=>`data-testid alert-rule step-${e}`},stepAdvancedModeSwitch:{"11.5.0":e=>`data-testid advanced-mode-switch step-${e}`}},Alert:{alertV2:{[u]:e=>`data-testid Alert ${e}`}},TransformTab:{content:{"10.1.0":"data-testid Transform editor tab content",[u]:"Transform editor tab content"},newTransform:{"10.1.0":e=>`data-testid New transform ${e}`},transformationEditor:{"10.1.0":e=>`data-testid Transformation editor ${e}`},transformationEditorDebugger:{"10.1.0":e=>`data-testid Transformation editor debugger ${e}`}},Transforms:{card:{"10.1.0":e=>`data-testid New transform ${e}`},disableTransformationButton:{"10.4.0":"data-testid Disable transformation button"},Reduce:{modeLabel:{"10.2.3":"data-testid Transform mode label",[u]:"Transform mode label"},calculationsLabel:{"10.2.3":"data-testid Transform calculations label",[u]:"Transform calculations label"}},SpatialOperations:{actionLabel:{"9.1.2":"root Action field property editor"},locationLabel:{"10.2.0":"root Location Mode field property editor"},location:{autoOption:{"9.1.2":"Auto location option"},coords:{option:{"9.1.2":"Coords location option"},latitudeFieldLabel:{"9.1.2":"root Latitude field field property editor"},longitudeFieldLabel:{"9.1.2":"root Longitude field field property editor"}},geohash:{option:{"9.1.2":"Geohash location option"},geohashFieldLabel:{"9.1.2":"root Geohash field field property editor"}},lookup:{option:{"9.1.2":"Lookup location option"},lookupFieldLabel:{"9.1.2":"root Lookup field field property editor"},gazetteerFieldLabel:{"9.1.2":"root Gazetteer field property editor"}}}},searchInput:{"10.2.3":"data-testid search transformations",[u]:"search transformations"},noTransformationsMessage:{"10.2.3":"data-testid no transformations message"},addTransformationButton:{"10.1.0":"data-testid add transformation button",[u]:"add transformation button"},removeAllTransformationsButton:{"10.4.0":"data-testid remove all transformations button"}},NavBar:{Configuration:{button:{"9.5.0":"Configuration"}},Toggle:{button:{"10.2.3":"data-testid Toggle menu",[u]:"Toggle menu"}},Reporting:{button:{"9.5.0":"Reporting"}}},NavMenu:{Menu:{"10.2.3":"data-testid navigation mega-menu"},item:{"9.5.0":"data-testid Nav menu item"}},NavToolbar:{container:{"9.4.0":"data-testid Nav toolbar"},commandPaletteTrigger:{"11.5.0":"data-testid Command palette trigger"},shareDashboard:{"11.1.0":"data-testid Share dashboard"},markAsFavorite:{"11.1.0":"data-testid Mark as favorite"},editDashboard:{editButton:{"11.1.0":"data-testid Edit dashboard button"},saveButton:{"11.1.0":"data-testid Save dashboard button"},exitButton:{"11.1.0":"data-testid Exit edit mode button"},settingsButton:{"11.1.0":"data-testid Dashboard settings"},addRowButton:{"11.1.0":"data-testid Add row button"},addLibraryPanelButton:{"11.1.0":"data-testid Add a panel from the panel library button"},addVisualizationButton:{"11.1.0":"data-testid Add new visualization menu item"},pastePanelButton:{"11.1.0":"data-testid Paste panel button"},discardChangesButton:{"11.1.0":"data-testid Discard changes button"},discardLibraryPanelButton:{"11.1.0":"data-testid Discard library panel button"},unlinkLibraryPanelButton:{"11.1.0":"data-testid Unlink library panel button"},saveLibraryPanelButton:{"11.1.0":"data-testid Save library panel button"},backToDashboardButton:{"11.1.0":"data-testid Back to dashboard button"}}},PageToolbar:{container:{[u]:()=>".page-toolbar"},item:{[u]:e=>`${e}`},itemButton:{"9.5.0":e=>`data-testid ${e}`}},QueryEditorToolbarItem:{button:{[u]:e=>`QueryEditor toolbar item button ${e}`}},BackButton:{backArrow:{"10.3.0":"data-testid Go Back",[u]:"Go Back"}},OptionsGroup:{group:{"11.1.0":e=>e?`data-testid Options group ${e}`:"data-testid Options group",[u]:e=>e?`Options group ${e}`:"Options group"},toggle:{"11.1.0":e=>e?`data-testid Options group ${e} toggle`:"data-testid Options group toggle",[u]:e=>e?`Options group ${e} toggle`:"Options group toggle"}},PluginVisualization:{item:{[u]:e=>`Plugin visualization item ${e}`},current:{[u]:()=>'[class*="-currentVisualizationItem"]'}},Select:{menu:{"11.5.0":"data-testid Select menu",[u]:"Select options menu"},option:{"11.1.0":"data-testid Select option",[u]:"Select option"},toggleAllOptions:{"11.3.0":"data-testid toggle all options"},input:{[u]:()=>'input[id*="time-options-input"]'},singleValue:{[u]:()=>'div[class*="-singleValue"]'}},FieldConfigEditor:{content:{[u]:"Field config editor content"}},OverridesConfigEditor:{content:{[u]:"Field overrides editor content"}},FolderPicker:{containerV2:{[u]:"data-testid Folder picker select container"},input:{"10.4.0":"data-testid folder-picker-input"}},ReadonlyFolderPicker:{container:{[u]:"data-testid Readonly folder picker select container"}},DataSourcePicker:{container:{"10.0.0":"data-testid Data source picker select container","8.0.0":"Data source picker select container"},inputV2:{"10.1.0":"data-testid Select a data source",[u]:"Select a data source"},dataSourceList:{"10.4.0":"data-testid Data source list dropdown"},advancedModal:{dataSourceList:{"10.4.0":"data-testid Data source list"},builtInDataSourceList:{"10.4.0":"data-testid Built in data source list"}}},TimeZonePicker:{containerV2:{[u]:"data-testid Time zone picker select container"},changeTimeSettingsButton:{"11.0.0":"data-testid Time zone picker Change time settings button"}},WeekStartPicker:{containerV2:{[u]:"data-testid Choose starting day of the week"},placeholder:{[u]:"Choose starting day of the week"}},TraceViewer:{spanBar:{"9.0.0":"data-testid SpanBar--wrapper"}},QueryField:{container:{"10.3.0":"data-testid Query field",[u]:"Query field"}},QueryBuilder:{queryPatterns:{"10.3.0":"data-testid Query patterns",[u]:"Query patterns"},labelSelect:{"10.3.0":"data-testid Select label",[u]:"Select label"},inputSelect:{"11.1.0":"data-testid Select label-input"},valueSelect:{"10.3.0":"data-testid Select value",[u]:"Select value"},matchOperatorSelect:{"10.3.0":"data-testid Select match operator",[u]:"Select match operator"}},ValuePicker:{button:{"10.3.0":e=>`data-testid Value picker button ${e}`},select:{"10.3.0":e=>`data-testid Value picker select ${e}`}},Search:{sectionV2:{[u]:"data-testid Search section"},itemsV2:{[u]:"data-testid Search items"},cards:{[u]:"data-testid Search cards"},collapseFolder:{[u]:e=>`data-testid Collapse folder ${e}`},expandFolder:{[u]:e=>`data-testid Expand folder ${e}`},dashboardItem:{[u]:e=>`data-testid Dashboard search item ${e}`},dashboardCard:{[u]:e=>`data-testid Search card ${e}`},folderHeader:{"9.3.0":e=>`data-testid Folder header ${e}`},folderContent:{"9.3.0":e=>`data-testid Folder content ${e}`},dashboardItems:{[u]:"data-testid Dashboard search item"}},DashboardLinks:{container:{[u]:"data-testid Dashboard link container"},dropDown:{[u]:"data-testid Dashboard link dropdown"},link:{[u]:"data-testid Dashboard link"}},LoadingIndicator:{icon:{"10.4.0":"data-testid Loading indicator",[u]:"Loading indicator"}},CallToActionCard:{buttonV2:{[u]:e=>`data-testid Call to action button ${e}`}},DataLinksContextMenu:{singleLink:{"10.3.0":"data-testid Data link",[u]:"Data link"}},DataLinksActionsTooltip:{tooltipWrapper:{"12.1.0":"data-testid Data links actions tooltip wrapper"}},CodeEditor:{container:{"10.2.3":"data-testid Code editor container",[u]:"Code editor container"}},ReactMonacoEditor:{editorLazy:{"11.1.0":"data-testid ReactMonacoEditor editorLazy"}},DashboardImportPage:{textarea:{[u]:"data-testid-import-dashboard-textarea"},submit:{[u]:"data-testid-load-dashboard"}},ImportDashboardForm:{name:{[u]:"data-testid-import-dashboard-title"},submit:{[u]:"data-testid-import-dashboard-submit"}},PanelAlertTabContent:{content:{"10.2.3":"data-testid Unified alert editor tab content",[u]:"Unified alert editor tab content"}},VisualizationPreview:{card:{[u]:e=>`data-testid suggestion-${e}`}},ColorSwatch:{name:{[u]:"data-testid-colorswatch"}},DashboardRow:{title:{[u]:e=>`data-testid dashboard-row-title-${e}`}},UserProfile:{profileSaveButton:{[u]:"data-testid-user-profile-save"},preferencesSaveButton:{[u]:"data-testid-shared-prefs-save"},orgsTable:{[u]:"data-testid-user-orgs-table"},sessionsTable:{[u]:"data-testid-user-sessions-table"},extensionPointTabs:{"10.2.3":"data-testid-extension-point-tabs"},extensionPointTab:{"10.2.3":e=>`data-testid-extension-point-tab-${e}`}},FileUpload:{inputField:{"9.0.0":"data-testid-file-upload-input-field"},fileNameSpan:{"9.0.0":"data-testid-file-upload-file-name"}},DebugOverlay:{wrapper:{"9.2.0":"debug-overlay"}},OrgRolePicker:{input:{"9.5.0":"Role"}},AnalyticsToolbarButton:{button:{"9.5.0":"Dashboard insights"}},Variables:{variableOption:{"9.5.0":"data-testid variable-option"},variableLinkWrapper:{"11.1.1":"data-testid variable-link-wrapper"}},Annotations:{annotationsTypeInput:{"11.1.0":"data-testid annotations-type-input",[u]:"annotations-type-input"},annotationsChoosePanelInput:{"11.1.0":"data-testid choose-panels-input",[u]:"choose-panels-input"},editor:{testButton:{"11.0.0":"data-testid annotations-test-button"},resultContainer:{"11.0.0":"data-testid annotations-query-result-container"}}},Tooltip:{container:{"10.2.0":"data-testid tooltip"}},ReturnToPrevious:{buttonGroup:{"11.0.0":"data-testid dismissable button group"},backButton:{"11.0.0":"data-testid back"},dismissButton:{"11.0.0":"data-testid dismiss"}},SQLQueryEditor:{selectColumn:{"11.0.0":"data-testid select-column"},selectColumnInput:{"11.0.0":"data-testid select-column-input"},selectFunctionParameter:{"11.0.0":e=>`data-testid select-function-parameter-${e}`},selectAggregation:{"11.0.0":"data-testid select-aggregation"},selectAggregationInput:{"11.0.0":"data-testid select-aggregation-input"},selectAlias:{"11.0.0":"data-testid select-alias"},selectAliasInput:{"11.0.0":"data-testid select-alias-input"},selectInputParameter:{"11.0.0":"data-testid select-input-parameter"},filterConjunction:{"11.0.0":"data-testid filter-conjunction"},filterField:{"11.0.0":"data-testid filter-field"},filterOperator:{"11.0.0":"data-testid filter-operator"},headerTableSelector:{"11.0.0":"data-testid header-table-selector"},headerFilterSwitch:{"11.0.0":"data-testid header-filter-switch"},headerGroupSwitch:{"11.0.0":"data-testid header-group-switch"},headerOrderSwitch:{"11.0.0":"data-testid header-order-switch"},headerPreviewSwitch:{"11.0.0":"data-testid header-preview-switch"}},EntityNotFound:{container:{"11.2.0":"data-testid entity-not-found"}},Portal:{container:{"11.5.0":"data-testid portal-container"}}},c={pages:a({Alerting:{AddAlertRule:{url:{"10.1.0":"/alerting/new/alerting",[u]:"/alerting/new"}},EditAlertRule:{url:{[u]:e=>`alerting/${e}/edit`}}},Login:{url:{[u]:"/login"},username:{"10.2.3":"data-testid Username input field",[u]:"Username input field"},password:{"10.2.3":"data-testid Password input field",[u]:"Password input field"},submit:{"10.2.3":"data-testid Login button",[u]:"Login button"},skip:{"10.2.3":"data-testid Skip change password button"}},PasswordlessLogin:{url:{[u]:"/login/passwordless/authenticate"},email:{"10.2.3":"data-testid Email input field",[u]:"Email input field"},submit:{"10.2.3":"data-testid PasswordlessLogin button",[u]:"PasswordlessLogin button"}},Home:{url:{[u]:"/"}},DataSource:{name:{"10.3.0":"data-testid Data source settings page name input field",[u]:"Data source settings page name input field"},delete:{[u]:"Data source settings page Delete button"},readOnly:{"10.3.0":"data-testid Data source settings page read only message",[u]:"Data source settings page read only message"},saveAndTest:{"10.0.0":"data-testid Data source settings page Save and Test button",[u]:"Data source settings page Save and Test button"},alert:{"10.3.0":"data-testid Data source settings page Alert",[u]:"Data source settings page Alert"}},DataSources:{url:{[u]:"/datasources"},dataSources:{[u]:e=>`Data source list item ${e}`}},EditDataSource:{url:{"9.5.0":e=>`/datasources/edit/${e}`},settings:{"9.5.0":"Datasource settings page basic settings"}},AddDataSource:{url:{[u]:"/datasources/new"},dataSourcePluginsV2:{"9.3.1":e=>`Add new data source ${e}`,[u]:e=>`Data source plugin item ${e}`}},ConfirmModal:{delete:{"10.0.0":"data-testid Confirm Modal Danger Button",[u]:"Confirm Modal Danger Button"}},AddDashboard:{url:{[u]:"/dashboard/new"},itemButton:{"9.5.0":e=>`data-testid ${e}`},addNewPanel:{"11.1.0":"data-testid Add new panel","8.0.0":"Add new panel",[u]:"Add new panel"},itemButtonAddViz:{[u]:"Add new visualization menu item"},addNewRow:{"11.1.0":"data-testid Add new row",[u]:"Add new row"},addNewPanelLibrary:{"11.1.0":"data-testid Add new panel from panel library",[u]:"Add new panel from panel library"},Settings:{Annotations:{List:{url:{[u]:"/dashboard/new?orgId=1&editview=annotations"}},Edit:{url:{[u]:e=>`/dashboard/new?editview=annotations&editIndex=${e}`}}},Variables:{List:{url:{"11.3.0":"/dashboard/new?orgId=1&editview=variables",[u]:"/dashboard/new?orgId=1&editview=templating"}},Edit:{url:{"11.3.0":e=>`/dashboard/new?orgId=1&editview=variables&editIndex=${e}`,[u]:e=>`/dashboard/new?orgId=1&editview=templating&editIndex=${e}`}}}}},ImportDashboard:{url:{[u]:"/dashboard/import"}},Dashboard:{url:{[u]:e=>`/d/${e}`},DashNav:{nav:{[u]:"Dashboard navigation"},navV2:{[u]:"data-testid Dashboard navigation"},publicDashboardTag:{"9.1.0":"data-testid public dashboard tag"},shareButton:{"10.4.0":"data-testid share-button"},scrollContainer:{"11.1.0":"data-testid Dashboard canvas scroll container"},newShareButton:{container:{"11.1.0":"data-testid new share button"},shareLink:{"11.1.0":"data-testid new share link-button"},arrowMenu:{"11.1.0":"data-testid new share button arrow menu"},menu:{container:{"11.1.0":"data-testid new share button menu"},shareInternally:{"11.1.0":"data-testid new share button share internally"},shareExternally:{"11.1.1":"data-testid new share button share externally"},shareSnapshot:{"11.2.0":"data-testid new share button share snapshot"}}},NewExportButton:{container:{"11.2.0":"data-testid new export button"},arrowMenu:{"11.2.0":"data-testid new export button arrow menu"},Menu:{container:{"11.2.0":"data-testid new export button menu"},exportAsJson:{"11.2.0":"data-testid new export button export as json"}}},playlistControls:{prev:{"11.0.0":"data-testid playlist previous dashboard button"},stop:{"11.0.0":"data-testid playlist stop dashboard button"},next:{"11.0.0":"data-testid playlist next dashboard button"}}},Controls:{"11.1.0":"data-testid dashboard controls"},SubMenu:{submenu:{[u]:"Dashboard submenu"},submenuItem:{[u]:"data-testid template variable"},submenuItemLabels:{[u]:e=>`data-testid Dashboard template variables submenu Label ${e}`},submenuItemValueDropDownValueLinkTexts:{[u]:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`},submenuItemValueDropDownDropDown:{[u]:"Variable options"},submenuItemValueDropDownOptionTexts:{[u]:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`},Annotations:{annotationsWrapper:{"10.0.0":"data-testid annotation-wrapper"},annotationLabel:{"10.0.0":e=>`data-testid Dashboard annotations submenu Label ${e}`},annotationToggle:{"10.0.0":e=>`data-testid Dashboard annotations submenu Toggle ${e}`}}},Settings:{Actions:{close:{"9.5.0":"data-testid dashboard-settings-close"}},General:{deleteDashBoard:{"11.1.0":"data-testid Dashboard settings page delete dashboard button"},sectionItems:{[u]:e=>`Dashboard settings section item ${e}`},saveDashBoard:{[u]:"Dashboard settings aside actions Save button"},saveAsDashBoard:{[u]:"Dashboard settings aside actions Save As button"},title:{"11.2.0":"General"}},Annotations:{Edit:{urlParams:{[u]:e=>`editview=annotations&editIndex=${e}`}},List:{url:{[u]:e=>`/d/${e}?editview=annotations`},addAnnotationCTAV2:{[u]:"data-testid Call to action button Add annotation query"},annotations:{"10.4.0":"data-testid list-annotations"}},Settings:{name:{"11.1.0":"data-testid Annotations settings name input",[u]:"Annotations settings name input"}},NewAnnotation:{panelFilterSelect:{"10.0.0":"data-testid annotations-panel-filter"},showInLabel:{"11.1.0":"data-testid show-in-label"},previewInDashboard:{"10.0.0":"data-testid annotations-preview"},delete:{"10.4.0":"data-testid annotations-delete"},apply:{"10.4.0":"data-testid annotations-apply"},enable:{"10.4.0":"data-testid annotation-enable"},hide:{"10.4.0":"data-testid annotation-hide"}}},Variables:{List:{url:{"11.3.0":e=>`/d/${e}?editview=variables`,[u]:e=>`/d/${e}?editview=templating`},addVariableCTAV2:{[u]:"data-testid Call to action button Add variable"},newButton:{[u]:"Variable editor New variable button"},table:{[u]:"Variable editor Table"},tableRowNameFields:{[u]:e=>`Variable editor Table Name field ${e}`},tableRowDefinitionFields:{"10.1.0":e=>`Variable editor Table Definition field ${e}`},tableRowArrowUpButtons:{[u]:e=>`Variable editor Table ArrowUp button ${e}`},tableRowArrowDownButtons:{[u]:e=>`Variable editor Table ArrowDown button ${e}`},tableRowDuplicateButtons:{[u]:e=>`Variable editor Table Duplicate button ${e}`},tableRowRemoveButtons:{[u]:e=>`Variable editor Table Remove button ${e}`}},Edit:{urlParams:{"11.3.0":e=>`editview=variables&editIndex=${e}`,[u]:e=>`editview=templating&editIndex=${e}`},General:{headerLink:{[u]:"Variable editor Header link"},modeLabelNew:{[u]:"Variable editor Header mode New"},modeLabelEdit:{[u]:"Variable editor Header mode Edit"},generalNameInput:{[u]:"Variable editor Form Name field"},generalNameInputV2:{[u]:"data-testid Variable editor Form Name field"},generalTypeSelect:{[u]:"Variable editor Form Type select"},generalTypeSelectV2:{[u]:"data-testid Variable editor Form Type select"},generalLabelInput:{[u]:"Variable editor Form Label field"},generalLabelInputV2:{[u]:"data-testid Variable editor Form Label field"},generalHideSelect:{[u]:"Variable editor Form Hide select"},generalHideSelectV2:{[u]:"data-testid Variable editor Form Hide select"},selectionOptionsAllowCustomValueSwitch:{[u]:"data-testid Variable editor Form Allow Custom Value switch"},selectionOptionsMultiSwitch:{"10.4.0":"data-testid Variable editor Form Multi switch",[u]:"Variable editor Form Multi switch"},selectionOptionsIncludeAllSwitch:{"10.4.0":"data-testid Variable editor Form IncludeAll switch",[u]:"Variable editor Form IncludeAll switch"},selectionOptionsCustomAllInput:{"10.4.0":"data-testid Variable editor Form IncludeAll field",[u]:"Variable editor Form IncludeAll field"},previewOfValuesOption:{"10.4.0":"data-testid Variable editor Preview of Values option",[u]:"Variable editor Preview of Values option"},submitButton:{"10.4.0":"data-testid Variable editor Run Query button",[u]:"Variable editor Submit button"},applyButton:{"9.3.0":"data-testid Variable editor Apply button"}},QueryVariable:{closeButton:{[u]:"data-testid Query Variable editor close button"},editor:{[u]:"data-testid Query Variable editor"},previewButton:{[u]:"data-testid Query Variable editor preview button"},queryOptionsDataSourceSelect:{"10.4.0":"data-testid Select a data source","10.0.0":"data-testid Data source picker select container",[u]:"Data source picker select container"},queryOptionsOpenButton:{[u]:"data-testid Query Variable editor open button"},queryOptionsRefreshSelect:{[u]:"Variable editor Form Query Refresh select"},queryOptionsRefreshSelectV2:{[u]:"data-testid Variable editor Form Query Refresh select"},queryOptionsRegExInput:{[u]:"Variable editor Form Query RegEx field"},queryOptionsRegExInputV2:{[u]:"data-testid Variable editor Form Query RegEx field"},queryOptionsSortSelect:{[u]:"Variable editor Form Query Sort select"},queryOptionsSortSelectV2:{[u]:"data-testid Variable editor Form Query Sort select"},queryOptionsQueryInput:{"10.4.0":"data-testid Variable editor Form Default Variable Query Editor textarea"},valueGroupsTagsEnabledSwitch:{[u]:"Variable editor Form Query UseTags switch"},valueGroupsTagsTagsQueryInput:{[u]:"Variable editor Form Query TagsQuery field"},valueGroupsTagsTagsValuesQueryInput:{[u]:"Variable editor Form Query TagsValuesQuery field"}},ConstantVariable:{constantOptionsQueryInput:{[u]:"Variable editor Form Constant Query field"},constantOptionsQueryInputV2:{[u]:"data-testid Variable editor Form Constant Query field"}},DatasourceVariable:{datasourceSelect:{[u]:"data-testid datasource variable datasource type"},nameFilter:{[u]:"data-testid datasource variable datasource name filter"}},TextBoxVariable:{textBoxOptionsQueryInput:{[u]:"Variable editor Form TextBox Query field"},textBoxOptionsQueryInputV2:{[u]:"data-testid Variable editor Form TextBox Query field"}},CustomVariable:{customValueInput:{[u]:"data-testid custom-variable-input"}},IntervalVariable:{intervalsValueInput:{[u]:"data-testid interval variable intervals input"},autoEnabledCheckbox:{"10.4.0":"data-testid interval variable auto value checkbox"},stepCountIntervalSelect:{"10.4.0":"data-testid interval variable step count input"},minIntervalInput:{"10.4.0":"data-testid interval variable mininum interval input"}},GroupByVariable:{dataSourceSelect:{"10.4.0":"data-testid Select a data source"},infoText:{"10.4.0":"data-testid group by variable info text"},modeToggle:{"10.4.0":"data-testid group by variable mode toggle"}},AdHocFiltersVariable:{datasourceSelect:{"10.4.0":"data-testid Select a data source"},infoText:{"10.4.0":"data-testid ad-hoc filters variable info text"},modeToggle:{"11.0.0":"data-testid ad-hoc filters variable mode toggle"}}}}},Annotations:{marker:{"10.0.0":"data-testid annotation-marker"}},Rows:{Repeated:{ConfigSection:{warningMessage:{"10.2.0":"data-testid Repeated rows warning message"}}}}},Dashboards:{url:{[u]:"/dashboards"},dashboards:{"10.2.0":e=>`Dashboard search item ${e}`},toggleView:{[u]:"data-testid radio-button"}},SaveDashboardAsModal:{newName:{"10.2.0":"Save dashboard title field"},save:{"10.2.0":"Save dashboard button"}},SaveDashboardModal:{save:{"10.2.0":"Dashboard settings Save Dashboard Modal Save button"},saveVariables:{"10.2.0":"Dashboard settings Save Dashboard Modal Save variables checkbox"},saveTimerange:{"10.2.0":"Dashboard settings Save Dashboard Modal Save timerange checkbox"},saveRefresh:{"11.1.0":"Dashboard settings Save Dashboard Modal Save refresh checkbox"}},SharePanelModal:{linkToRenderedImage:{[u]:"Link to rendered image"}},ShareDashboardModal:{PublicDashboard:{WillBePublicCheckbox:{"9.1.0":"data-testid public dashboard will be public checkbox"},LimitedDSCheckbox:{"9.1.0":"data-testid public dashboard limited datasources checkbox"},CostIncreaseCheckbox:{"9.1.0":"data-testid public dashboard cost may increase checkbox"},PauseSwitch:{"9.5.0":"data-testid public dashboard pause switch"},EnableAnnotationsSwitch:{"9.3.0":"data-testid public dashboard on off switch for annotations"},CreateButton:{"9.5.0":"data-testid public dashboard create button"},DeleteButton:{"9.3.0":"data-testid public dashboard delete button"},CopyUrlInput:{"9.1.0":"data-testid public dashboard copy url input"},CopyUrlButton:{"9.1.0":"data-testid public dashboard copy url button"},SettingsDropdown:{"10.1.0":"data-testid public dashboard settings dropdown"},TemplateVariablesWarningAlert:{"9.1.0":"data-testid public dashboard disabled template variables alert"},UnsupportedDataSourcesWarningAlert:{"9.5.0":"data-testid public dashboard unsupported data sources alert"},NoUpsertPermissionsWarningAlert:{"9.5.0":"data-testid public dashboard no upsert permissions alert"},EnableTimeRangeSwitch:{"9.4.0":"data-testid public dashboard on off switch for time range"},EmailSharingConfiguration:{Container:{"9.5.0":"data-testid email sharing config container"},ShareType:{"9.5.0":"data-testid public dashboard share type"},EmailSharingInput:{"9.5.0":"data-testid public dashboard email sharing input"},EmailSharingInviteButton:{"9.5.0":"data-testid public dashboard email sharing invite button"},EmailSharingList:{"9.5.0":"data-testid public dashboard email sharing list"},DeleteEmail:{"9.5.0":"data-testid public dashboard delete email button"},ReshareLink:{"9.5.0":"data-testid public dashboard reshare link button"}}},SnapshotScene:{url:{"11.1.0":e=>`/dashboard/snapshot/${e}`},PublishSnapshot:{"11.1.0":"data-testid publish snapshot button"},CopyUrlButton:{"11.1.0":"data-testid snapshot copy url button"},CopyUrlInput:{"11.1.0":"data-testid snapshot copy url input"}}},ShareDashboardDrawer:{ShareInternally:{container:{"11.3.0":"data-testid share internally drawer container"},lockTimeRangeSwitch:{"11.3.0":"data-testid share internally lock time range switch"},shortenUrlSwitch:{"11.3.0":"data-testid share internally shorten url switch"},copyUrlButton:{"11.3.0":"data-testid share internally copy url button"},SharePanel:{preview:{"11.5.0":"data-testid share panel internally image generation preview"},widthInput:{"11.5.0":"data-testid share panel internally width input"},heightInput:{"11.5.0":"data-testid share panel internally height input"},scaleFactorInput:{"11.5.0":"data-testid share panel internally scale factor input"},generateImageButton:{"11.5.0":"data-testid share panel internally generate image button"},downloadImageButton:{"11.5.0":"data-testid share panel internally download image button"}}},ShareExternally:{container:{"11.3.0":"data-testid share externally drawer container"},publicAlert:{"11.3.0":"data-testid public share alert"},emailSharingAlert:{"11.3.0":"data-testid email share alert"},shareTypeSelect:{"11.3.0":"data-testid share externally share type select"},Creation:{PublicShare:{createButton:{"11.3.0":"data-testid public share dashboard create button"},cancelButton:{"11.3.0":"data-testid public share dashboard cancel button"}},EmailShare:{createButton:{"11.3.0":"data-testid email share dashboard create button"},cancelButton:{"11.3.0":"data-testid email share dashboard cancel button"}},willBePublicCheckbox:{"11.3.0":"data-testid share dashboard will be public checkbox"}},Configuration:{enableTimeRangeSwitch:{"11.3.0":"data-testid share externally enable time range switch"},enableAnnotationsSwitch:{"11.3.0":"data-testid share externally enable annotations switch"},copyUrlButton:{"11.3.0":"data-testid share externally copy url button"},revokeAccessButton:{"11.3.0":"data-testid share externally revoke access button"},toggleAccessButton:{"11.3.0":"data-testid share externally pause or resume access button"}}},ShareSnapshot:{url:{"11.3.0":e=>`/dashboard/snapshot/${e}`},container:{"11.3.0":"data-testid share snapshot drawer container"},publishSnapshot:{"11.3.0":"data-testid share snapshot publish button"},copyUrlButton:{"11.3.0":"data-testid share snapshot copy url button"}}},ExportDashboardDrawer:{ExportAsJson:{container:{"11.3.0":"data-testid export as json drawer container"},codeEditor:{"11.3.0":"data-testid export as json code editor"},exportExternallyToggle:{"11.3.0":"data-testid export as json externally switch"},saveToFileButton:{"11.3.0":"data-testid export as json save to file button"},copyToClipboardButton:{"11.3.0":"data-testid export as json copy to clipboard button"},cancelButton:{"11.3.0":"data-testid export as json cancel button"}}},PublicDashboard:{page:{"9.5.0":"public-dashboard-page"},NotAvailable:{container:{"9.5.0":"public-dashboard-not-available"},title:{"9.5.0":"public-dashboard-title"},pausedDescription:{"9.5.0":"public-dashboard-paused-description"}},footer:{"11.0.0":"public-dashboard-footer"}},PublicDashboardScene:{loadingPage:{"11.0.0":"public-dashboard-scene-loading-page"},page:{"11.0.0":"public-dashboard-scene-page"},controls:{"11.0.0":"public-dashboard-controls"}},RequestViewAccess:{form:{"9.5.0":"request-view-access-form"},recipientInput:{"9.5.0":"request-view-access-recipient-input"},submitButton:{"9.5.0":"request-view-access-submit-button"}},PublicDashboardConfirmAccess:{submitButton:{"10.2.0":"data-testid confirm-access-submit-button"}},Explore:{url:{[u]:"/explore"},General:{container:{[u]:"data-testid Explore"},graph:{[u]:"Explore Graph"},table:{[u]:"Explore Table"},scrollView:{"9.0.0":"data-testid explorer scroll view"},addFromQueryLibrary:{"11.5.0":"data-testid explore add from query library button"}},QueryHistory:{container:{"11.1.0":"data-testid QueryHistory"}}},SoloPanel:{url:{[u]:e=>`/d-solo/${e}`}},PluginsList:{page:{[u]:"Plugins list page"},list:{[u]:"Plugins list"},listItem:{[u]:"Plugins list item"},signatureErrorNotice:{"10.3.0":"data-testid Unsigned plugins notice",[u]:"Unsigned plugins notice"}},PluginPage:{page:{[u]:"Plugin page"},signatureInfo:{"10.3.0":"data-testid Plugin signature info",[u]:"Plugin signature info"},disabledInfo:{"10.3.0":"data-testid Plugin disabled info",[u]:"Plugin disabled info"}},PlaylistForm:{name:{[u]:"Playlist name"},interval:{[u]:"Playlist interval"},itemDelete:{"10.2.0":"data-testid playlist-form-delete-item"}},BrowseDashboards:{table:{body:{"10.2.0":"data-testid browse-dashboards-table"},row:{"10.2.0":e=>`data-testid browse dashboards row ${e}`},checkbox:{"10.0.0":e=>`data-testid ${e} checkbox`}},NewFolderForm:{form:{"10.2.0":"data-testid new folder form"},nameInput:{"10.2.0":"data-testid new-folder-name-input"},createButton:{"10.2.0":"data-testid new-folder-create-button"}}},SearchDashboards:{table:{"10.2.0":"Search results table"}},Search:{url:{"9.3.0":"/?search=openn"},FolderView:{url:{"9.3.0":"/?search=open&layout=folders"}}},PublicDashboards:{ListItem:{linkButton:{"9.3.0":"public-dashboard-link-button"},configButton:{"9.3.0":"public-dashboard-configuration-button"},trashcanButton:{"9.3.0":"public-dashboard-remove-button"},pauseSwitch:{"10.1.0":"data-testid public dashboard pause switch"}}},UserListPage:{tabs:{allUsers:{"10.0.0":"data-testid all-users-tab"},orgUsers:{"10.0.0":"data-testid org-users-tab"},anonUserDevices:{"10.2.3":"data-testid anon-user-devices-tab"},publicDashboardsUsers:{"10.0.0":"data-testid public-dashboards-users-tab"},users:{"10.0.0":"data-testid users-tab"}},org:{url:{"10.2.0":"/admin/users","9.5.0":"/org/users"}},admin:{url:{"9.5.0":"/admin/users"}},publicDashboards:{container:{"11.1.0":"data-testid public-dashboards-users-list"}},UserListAdminPage:{container:{"10.0.0":"data-testid user-list-admin-page"}},UsersListPage:{container:{"10.0.0":"data-testid users-list-page"}},UserAnonListPage:{container:{"10.4.0":"data-testid user-anon-list-page"}},UsersListPublicDashboardsPage:{container:{"10.0.0":"data-testid users-list-public-dashboards-page"},DashboardsListModal:{listItem:{"10.0.0":e=>`data-testid dashboards-list-item-${e}`}}}},ProfilePage:{url:{"10.2.0":"/profile"}},Plugin:{url:{[u]:e=>`/plugins/${e}`}},MigrateToCloud:{url:{"11.2.0":"/admin/migrate-to-cloud"}}}),components:a(d)}},7203:function(e,t,n){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(n(2689))},7222:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resizeHandleType=t.resizeHandleAxesType=t.default=void 0;var r=s(n(2688)),a=s(n(5959));function s(e){return e&&e.__esModule?e:{default:e}}var i=r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"]));t.resizeHandleAxesType=i;var o=r.default.oneOfType([r.default.node,r.default.func]);t.resizeHandleType=o;var l={className:r.default.string,style:r.default.object,width:r.default.number,autoSize:r.default.bool,cols:r.default.number,draggableCancel:r.default.string,draggableHandle:r.default.string,verticalCompact:function(e){e.verticalCompact,0},compactType:r.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&n(414).validateLayout(t,"layout")},margin:r.default.arrayOf(r.default.number),containerPadding:r.default.arrayOf(r.default.number),rowHeight:r.default.number,maxRows:r.default.number,isBounded:r.default.bool,isDraggable:r.default.bool,isResizable:r.default.bool,allowOverlap:r.default.bool,preventCollision:r.default.bool,useCSSTransforms:r.default.bool,transformScale:r.default.number,isDroppable:r.default.bool,resizeHandles:i,resizeHandle:o,onLayoutChange:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onDragStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,onResizeStop:r.default.func,onDrop:r.default.func,droppingItem:r.default.shape({i:r.default.string.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired}),children:function(e,t){var n=e[t],r={};a.default.Children.forEach(n,function(e){if(null!=(null==e?void 0:e.key)){if(r[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');r[e.key]=!0}})},innerRef:r.default.any};t.default=l},7228:function(e,t,n){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(2689))},7243:function(e,t,n){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},7244:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(2689))},7256:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta,default:()=>s});const s=a},7260:function(e,t,n){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(2689))},7270:function(e,t,n){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},7308:function(e,t,n){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},7350:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=a,t.browserPrefixToStyle=function(e,t){return t?`-${t.toLowerCase()}-${e}`:e},t.default=void 0,t.getPrefix=r;const n=["Moz","Webkit","O","ms"];function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window)return"";const t=window.document?.documentElement?.style;if(!t)return"";if(e in t)return"";for(let r=0;r=10;)e/=10;return a(e)}return a(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:r,s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},7405:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1705);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{e.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}},7451:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nr})},7462:function(e,t,n){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(2689))},7493:function(e,t,n){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(2689))},7494:(e,t,n)=>{"use strict";const r=n(8395);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},7645:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},7659:(e,t,n)=>{"use strict";const r=n(5380);e.exports=(e,t,n)=>0!==r(e,t,n)},7705:function(e,t,n){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(2689))},7786:function(e,t,n){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(n(2689))},7840:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395);e.exports=(e,t,n)=>{let s=null,i=null,o=null;try{o=new a(t,n)}catch(e){return null}return e.forEach(e=>{o.test(e)&&(s&&-1!==i.compare(e)||(s=e,i=new r(s,n)))}),s}},7842:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",i="[object Array]",o="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",c="[object Map]",h="[object Number]",m="[object Object]",p="[object Promise]",f="[object RegExp]",_="[object Set]",g="[object String]",y="[object Symbol]",v="[object WeakMap]",b="[object ArrayBuffer]",M="[object DataView]",w=/^\[object .+?Constructor\]$/,L=/^(?:0|[1-9]\d*)$/,S={};S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S[s]=S[i]=S[b]=S[o]=S[M]=S[l]=S[u]=S[d]=S[c]=S[h]=S[m]=S[f]=S[_]=S[g]=S[v]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,D="object"==typeof self&&self&&self.Object===Object&&self,T=k||D||Function("return this")(),x=t&&!t.nodeType&&t,Y=x&&e&&!e.nodeType&&e,E=Y&&Y.exports===x,O=E&&k.process,A=function(){try{return O&&O.binding&&O.binding("util")}catch(e){}}(),C=A&&A.isTypedArray;function R(e,t){for(var n=-1,r=null==e?0:e.length;++no))return!1;var u=s.get(e);if(u&&s.get(t))return u==t;var d=-1,c=!0,h=2&n?new be:void 0;for(s.set(e,t),s.set(t,e);++d-1},ye.prototype.set=function(e,t){var n=this.__data__,r=Le(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},ve.prototype.clear=function(){this.size=0,this.__data__={hash:new ge,map:new(se||ye),string:new ge}},ve.prototype.delete=function(e){var t=Oe(this,e).delete(e);return this.size-=t?1:0,t},ve.prototype.get=function(e){return Oe(this,e).get(e)},ve.prototype.has=function(e){return Oe(this,e).has(e)},ve.prototype.set=function(e,t){var n=Oe(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},be.prototype.add=be.prototype.push=function(e){return this.__data__.set(e,r),this},be.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.clear=function(){this.__data__=new ye,this.size=0},Me.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ye){var r=n.__data__;if(!se||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ve(r)}return n.set(e,t),this.size=n.size,this};var Ce=te?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=a}function ze(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function $e(e){return null!=e&&"object"==typeof e}var Be=C?function(e){return function(t){return e(t)}}(C):function(e){return $e(e)&&Ve(e.length)&&!!S[Se(e)]};function Ue(e){return null!=(t=e)&&Ve(t.length)&&!We(t)?we(e):xe(e);var t}e.exports=function(e,t){return De(e,t)}},7850:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6438);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,s,i,o=[],l=!0,u=!1;try{if(s=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=s.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return o}}(e,t)||(0,r.A)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},7871:(e,t,n)=>{"use strict";const r=n(5463);e.exports=(e,t,n)=>r(e,t,">",n)},7891:function(e,t,n){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},7893:function(e,t,n){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},7899:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(2689))},7930:(e,t,n)=>{"use strict";const r=n(7944),a=n(8395);e.exports=(e,t,n)=>{let s=null,i=null,o=null;try{o=new a(t,n)}catch(e){return null}return e.forEach(e=>{o.test(e)&&(s&&1!==i.compare(e)||(s=e,i=new r(s,n)))}),s}},7944:(e,t,n)=>{"use strict";const r=n(9796),{MAX_LENGTH:a,MAX_SAFE_INTEGER:s}=n(9630),{safeRe:i,t:o}=n(6850),l=n(7095),{compareIdentifiers:u}=n(4031);class d{constructor(e,t){if(t=l(t),e instanceof d){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[o.LOOSE]:i[o.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);if(-1===r){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let r=[t,e];!1===n&&(r=[t]),0===u(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=d},7988:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){0}},7994:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},7997:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},8015:(e,t,n)=>{"use strict";n.d(t,{B1:()=>T,C0:()=>c,Dz:()=>_,Jx:()=>o,LI:()=>s,RI:()=>i,Sg:()=>h,T9:()=>a,TV:()=>f,WJ:()=>y,_3:()=>d,bV:()=>k,jk:()=>r,lP:()=>S,nI:()=>D,sq:()=>m,w7:()=>g});const r=Math.min,a=Math.max,s=Math.round,i=Math.floor,o=e=>({x:e,y:e}),l={left:"right",right:"left",bottom:"top",top:"bottom"},u={start:"end",end:"start"};function d(e,t){return"function"==typeof e?e(t):e}function c(e){return e.split("-")[0]}function h(e){return e.split("-")[1]}function m(e){return"y"===e?"height":"width"}const p=new Set(["top","bottom"]);function f(e){return p.has(c(e))?"y":"x"}function _(e){return"x"===f(e)?"y":"x"}function g(e,t,n){void 0===n&&(n=!1);const r=h(e),a=_(e),s=m(a);let i="x"===a?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=k(i)),[i,k(i)]}function y(e){const t=k(e);return[v(e),t,v(t)]}function v(e){return e.replace(/start|end/g,e=>u[e])}const b=["left","right"],M=["right","left"],w=["top","bottom"],L=["bottom","top"];function S(e,t,n,r){const a=h(e);let s=function(e,t,n){switch(e){case"top":case"bottom":return n?t?M:b:t?b:M;case"left":case"right":return t?w:L;default:return[]}}(c(e),"start"===n,r);return a&&(s=s.map(e=>e+"-"+a),t&&(s=s.concat(s.map(v)))),s}function k(e){return e.replace(/left|right|bottom|top/g,e=>l[e])}function D(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function T(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}},8026:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8030:function(e,t,n){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},8083:(e,t,n)=>{"use strict";n.d(t,{ll:()=>k,rD:()=>Y,UU:()=>T,cY:()=>D,Ej:()=>x});var r=n(8015);function a(e,t,n){let{reference:a,floating:s}=e;const i=(0,r.TV)(t),o=(0,r.Dz)(t),l=(0,r.sq)(o),u=(0,r.C0)(t),d="y"===i,c=a.x+a.width/2-s.width/2,h=a.y+a.height/2-s.height/2,m=a[l]/2-s[l]/2;let p;switch(u){case"top":p={x:c,y:a.y-s.height};break;case"bottom":p={x:c,y:a.y+a.height};break;case"right":p={x:a.x+a.width,y:h};break;case"left":p={x:a.x-s.width,y:h};break;default:p={x:a.x,y:a.y}}switch((0,r.Sg)(t)){case"start":p[o]-=m*(n&&d?-1:1);break;case"end":p[o]+=m*(n&&d?-1:1)}return p}async function s(e,t){var n;void 0===t&&(t={});const{x:a,y:s,platform:i,rects:o,elements:l,strategy:u}=e,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:h="floating",altBoundary:m=!1,padding:p=0}=(0,r._3)(t,e),f=(0,r.nI)(p),_=l[m?"floating"===h?"reference":"floating":h],g=(0,r.B1)(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(_)))||n?_:_.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:c,strategy:u})),y="floating"===h?{x:a,y:s,width:o.floating.width,height:o.floating.height}:o.reference,v=await(null==i.getOffsetParent?void 0:i.getOffsetParent(l.floating)),b=await(null==i.isElement?void 0:i.isElement(v))&&await(null==i.getScale?void 0:i.getScale(v))||{x:1,y:1},M=(0,r.B1)(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:v,strategy:u}):y);return{top:(g.top-M.top+f.top)/b.y,bottom:(M.bottom-g.bottom+f.bottom)/b.y,left:(g.left-M.left+f.left)/b.x,right:(M.right-g.right+f.right)/b.x}}const i=new Set(["left","top"]);var o=n(977);function l(e){const t=(0,o.L9)(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const s=(0,o.sb)(e),i=s?e.offsetWidth:n,l=s?e.offsetHeight:a,u=(0,r.LI)(n)!==i||(0,r.LI)(a)!==l;return u&&(n=i,a=l),{width:n,height:a,$:u}}function u(e){return(0,o.vq)(e)?e:e.contextElement}function d(e){const t=u(e);if(!(0,o.sb)(t))return(0,r.Jx)(1);const n=t.getBoundingClientRect(),{width:a,height:s,$:i}=l(t);let d=(i?(0,r.LI)(n.width):n.width)/a,c=(i?(0,r.LI)(n.height):n.height)/s;return d&&Number.isFinite(d)||(d=1),c&&Number.isFinite(c)||(c=1),{x:d,y:c}}const c=(0,r.Jx)(0);function h(e){const t=(0,o.zk)(e);return(0,o.Tc)()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:c}function m(e,t,n,a){void 0===t&&(t=!1),void 0===n&&(n=!1);const s=e.getBoundingClientRect(),i=u(e);let l=(0,r.Jx)(1);t&&(a?(0,o.vq)(a)&&(l=d(a)):l=d(e));const c=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==(0,o.zk)(e))&&t}(i,n,a)?h(i):(0,r.Jx)(0);let m=(s.left+c.x)/l.x,p=(s.top+c.y)/l.y,f=s.width/l.x,_=s.height/l.y;if(i){const e=(0,o.zk)(i),t=a&&(0,o.vq)(a)?(0,o.zk)(a):a;let n=e,r=(0,o._m)(n);for(;r&&a&&t!==n;){const e=d(r),t=r.getBoundingClientRect(),a=(0,o.L9)(r),s=t.left+(r.clientLeft+parseFloat(a.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(a.paddingTop))*e.y;m*=e.x,p*=e.y,f*=e.x,_*=e.y,m+=s,p+=i,n=(0,o.zk)(r),r=(0,o._m)(n)}}return(0,r.B1)({width:f,height:_,x:m,y:p})}function p(e,t){const n=(0,o.CP)(e).scrollLeft;return t?t.left+n:m((0,o.ep)(e)).left+n}function f(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:p(e,r)),y:r.top+t.scrollTop}}const _=new Set(["absolute","fixed"]);function g(e,t,n){let a;if("viewport"===t)a=function(e,t){const n=(0,o.zk)(e),r=(0,o.ep)(e),a=n.visualViewport;let s=r.clientWidth,i=r.clientHeight,l=0,u=0;if(a){s=a.width,i=a.height;const e=(0,o.Tc)();(!e||e&&"fixed"===t)&&(l=a.offsetLeft,u=a.offsetTop)}return{width:s,height:i,x:l,y:u}}(e,n);else if("document"===t)a=function(e){const t=(0,o.ep)(e),n=(0,o.CP)(e),a=e.ownerDocument.body,s=(0,r.T9)(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),i=(0,r.T9)(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let l=-n.scrollLeft+p(e);const u=-n.scrollTop;return"rtl"===(0,o.L9)(a).direction&&(l+=(0,r.T9)(t.clientWidth,a.clientWidth)-s),{width:s,height:i,x:l,y:u}}((0,o.ep)(e));else if((0,o.vq)(t))a=function(e,t){const n=m(e,!0,"fixed"===t),a=n.top+e.clientTop,s=n.left+e.clientLeft,i=(0,o.sb)(e)?d(e):(0,r.Jx)(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:s*i.x,y:a*i.y}}(t,n);else{const n=h(e);a={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return(0,r.B1)(a)}function y(e,t){const n=(0,o.$4)(e);return!(n===t||!(0,o.vq)(n)||(0,o.eu)(n))&&("fixed"===(0,o.L9)(n).position||y(n,t))}function v(e,t,n){const a=(0,o.sb)(t),s=(0,o.ep)(t),i="fixed"===n,l=m(e,!0,i,t);let u={scrollLeft:0,scrollTop:0};const d=(0,r.Jx)(0);function c(){d.x=p(s)}if(a||!a&&!i)if(("body"!==(0,o.mq)(t)||(0,o.ZU)(s))&&(u=(0,o.CP)(t)),a){const e=m(t,!0,i,t);d.x=e.x+t.clientLeft,d.y=e.y+t.clientTop}else s&&c();i&&!a&&s&&c();const h=!s||a||i?(0,r.Jx)(0):f(s,u);return{x:l.left+u.scrollLeft-d.x-h.x,y:l.top+u.scrollTop-d.y-h.y,width:l.width,height:l.height}}function b(e){return"static"===(0,o.L9)(e).position}function M(e,t){if(!(0,o.sb)(e)||"fixed"===(0,o.L9)(e).position)return null;if(t)return t(e);let n=e.offsetParent;return(0,o.ep)(e)===n&&(n=n.ownerDocument.body),n}function w(e,t){const n=(0,o.zk)(e);if((0,o.Tf)(e))return n;if(!(0,o.sb)(e)){let t=(0,o.$4)(e);for(;t&&!(0,o.eu)(t);){if((0,o.vq)(t)&&!b(t))return t;t=(0,o.$4)(t)}return n}let r=M(e,t);for(;r&&(0,o.Lv)(r)&&b(r);)r=M(r,t);return r&&(0,o.eu)(r)&&b(r)&&!(0,o.sQ)(r)?n:r||(0,o.gJ)(e)||n}const L={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:a,strategy:s}=e;const i="fixed"===s,l=(0,o.ep)(a),u=!!t&&(0,o.Tf)(t.floating);if(a===l||u&&i)return n;let c={scrollLeft:0,scrollTop:0},h=(0,r.Jx)(1);const p=(0,r.Jx)(0),_=(0,o.sb)(a);if((_||!_&&!i)&&(("body"!==(0,o.mq)(a)||(0,o.ZU)(l))&&(c=(0,o.CP)(a)),(0,o.sb)(a))){const e=m(a);h=d(a),p.x=e.x+a.clientLeft,p.y=e.y+a.clientTop}const g=!l||_||i?(0,r.Jx)(0):f(l,c,!0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-c.scrollLeft*h.x+p.x+g.x,y:n.y*h.y-c.scrollTop*h.y+p.y+g.y}},getDocumentElement:o.ep,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:a,strategy:s}=e;const i=[..."clippingAncestors"===n?(0,o.Tf)(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=(0,o.v9)(e,[],!1).filter(e=>(0,o.vq)(e)&&"body"!==(0,o.mq)(e)),a=null;const s="fixed"===(0,o.L9)(e).position;let i=s?(0,o.$4)(e):e;for(;(0,o.vq)(i)&&!(0,o.eu)(i);){const t=(0,o.L9)(i),n=(0,o.sQ)(i);n||"fixed"!==t.position||(a=null),(s?!n&&!a:!n&&"static"===t.position&&a&&_.has(a.position)||(0,o.ZU)(i)&&!n&&y(e,i))?r=r.filter(e=>e!==i):a=t,i=(0,o.$4)(i)}return t.set(e,r),r}(t,this._c):[].concat(n),a],l=i[0],u=i.reduce((e,n)=>{const a=g(t,n,s);return e.top=(0,r.T9)(a.top,e.top),e.right=(0,r.jk)(a.right,e.right),e.bottom=(0,r.jk)(a.bottom,e.bottom),e.left=(0,r.T9)(a.left,e.left),e},g(t,l,s));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:w,getElementRects:async function(e){const t=this.getOffsetParent||w,n=this.getDimensions,r=await n(e.floating);return{reference:v(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=l(e);return{width:t,height:n}},getScale:d,isElement:o.vq,isRTL:function(e){return"rtl"===(0,o.L9)(e).direction}};function S(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function k(e,t,n,a){void 0===a&&(a={});const{ancestorScroll:s=!0,ancestorResize:i=!0,elementResize:l="function"==typeof ResizeObserver,layoutShift:d="function"==typeof IntersectionObserver,animationFrame:c=!1}=a,h=u(e),p=s||i?[...h?(0,o.v9)(h):[],...(0,o.v9)(t)]:[];p.forEach(e=>{s&&e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)});const f=h&&d?function(e,t){let n,a=null;const s=(0,o.ep)(e);function i(){var e;clearTimeout(n),null==(e=a)||e.disconnect(),a=null}return function o(l,u){void 0===l&&(l=!1),void 0===u&&(u=1),i();const d=e.getBoundingClientRect(),{left:c,top:h,width:m,height:p}=d;if(l||t(),!m||!p)return;const f={rootMargin:-(0,r.RI)(h)+"px "+-(0,r.RI)(s.clientWidth-(c+m))+"px "+-(0,r.RI)(s.clientHeight-(h+p))+"px "+-(0,r.RI)(c)+"px",threshold:(0,r.T9)(0,(0,r.jk)(1,u))||1};let _=!0;function g(t){const r=t[0].intersectionRatio;if(r!==u){if(!_)return o();r?o(!1,r):n=setTimeout(()=>{o(!1,1e-7)},1e3)}1!==r||S(d,e.getBoundingClientRect())||o(),_=!1}try{a=new IntersectionObserver(g,{...f,root:s.ownerDocument})}catch(e){a=new IntersectionObserver(g,f)}a.observe(e)}(!0),i}(h,n):null;let _,g=-1,y=null;l&&(y=new ResizeObserver(e=>{let[r]=e;r&&r.target===h&&y&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var e;null==(e=y)||e.observe(t)})),n()}),h&&!c&&y.observe(h),y.observe(t));let v=c?m(e):null;return c&&function t(){const r=m(e);v&&!S(v,r)&&n();v=r,_=requestAnimationFrame(t)}(),n(),()=>{var e;p.forEach(e=>{s&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)}),null==f||f(),null==(e=y)||e.disconnect(),y=null,c&&cancelAnimationFrame(_)}}const D=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:s,y:o,placement:l,middlewareData:u}=t,d=await async function(e,t){const{placement:n,platform:a,elements:s}=e,o=await(null==a.isRTL?void 0:a.isRTL(s.floating)),l=(0,r.C0)(n),u=(0,r.Sg)(n),d="y"===(0,r.TV)(n),c=i.has(l)?-1:1,h=o&&d?-1:1,m=(0,r._3)(t,e);let{mainAxis:p,crossAxis:f,alignmentAxis:_}="number"==typeof m?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return u&&"number"==typeof _&&(f="end"===u?-1*_:_),d?{x:f*h,y:p*c}:{x:p*c,y:f*h}}(t,e);return l===(null==(n=u.offset)?void 0:n.placement)&&null!=(a=u.arrow)&&a.alignmentOffset?{}:{x:s+d.x,y:o+d.y,data:{...d,placement:l}}}}},T=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,a;const{placement:i,middlewareData:o,rects:l,initialPlacement:u,platform:d,elements:c}=t,{mainAxis:h=!0,crossAxis:m=!0,fallbackPlacements:p,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:_="none",flipAlignment:g=!0,...y}=(0,r._3)(e,t);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const v=(0,r.C0)(i),b=(0,r.TV)(u),M=(0,r.C0)(u)===u,w=await(null==d.isRTL?void 0:d.isRTL(c.floating)),L=p||(M||!g?[(0,r.bV)(u)]:(0,r.WJ)(u)),S="none"!==_;!p&&S&&L.push(...(0,r.lP)(u,g,_,w));const k=[u,...L],D=await s(t,y),T=[];let x=(null==(a=o.flip)?void 0:a.overflows)||[];if(h&&T.push(D[v]),m){const e=(0,r.w7)(i,l,w);T.push(D[e[0]],D[e[1]])}if(x=[...x,{placement:i,overflows:T}],!T.every(e=>e<=0)){var Y,E;const e=((null==(Y=o.flip)?void 0:Y.index)||0)+1,t=k[e];if(t){if(!("alignment"===m&&b!==(0,r.TV)(t))||x.every(e=>e.overflows[0]>0&&(0,r.TV)(e.placement)===b))return{data:{index:e,overflows:x},reset:{placement:t}}}let n=null==(E=x.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:E.placement;if(!n)switch(f){case"bestFit":{var O;const e=null==(O=x.filter(e=>{if(S){const t=(0,r.TV)(e.placement);return t===b||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:O[0];e&&(n=e);break}case"initialPlacement":n=u}if(i!==n)return{reset:{placement:n}}}return{}}}},x=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,a;const{placement:i,rects:o,platform:l,elements:u}=t,{apply:d=()=>{},...c}=(0,r._3)(e,t),h=await s(t,c),m=(0,r.C0)(i),p=(0,r.Sg)(i),f="y"===(0,r.TV)(i),{width:_,height:g}=o.floating;let y,v;"top"===m||"bottom"===m?(y=m,v=p===(await(null==l.isRTL?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(v=m,y="end"===p?"top":"bottom");const b=g-h.top-h.bottom,M=_-h.left-h.right,w=(0,r.jk)(g-h[y],b),L=(0,r.jk)(_-h[v],M),S=!t.middlewareData.shift;let k=w,D=L;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(D=M),null!=(a=t.middlewareData.shift)&&a.enabled.y&&(k=b),S&&!p){const e=(0,r.T9)(h.left,0),t=(0,r.T9)(h.right,0),n=(0,r.T9)(h.top,0),a=(0,r.T9)(h.bottom,0);f?D=_-2*(0!==e||0!==t?e+t:(0,r.T9)(h.left,h.right)):k=g-2*(0!==n||0!==a?n+a:(0,r.T9)(h.top,h.bottom))}await d({...t,availableWidth:D,availableHeight:k});const T=await l.getDimensions(u.floating);return _!==T.width||g!==T.height?{reset:{rects:!0}}:{}}}},Y=(e,t,n)=>{const r=new Map,s={platform:L,...n},i={...s.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:s="absolute",middleware:i=[],platform:o}=n,l=i.filter(Boolean),u=await(null==o.isRTL?void 0:o.isRTL(t));let d=await o.getElementRects({reference:e,floating:t,strategy:s}),{x:c,y:h}=a(d,r,u),m=r,p={},f=0;for(let n=0;n{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=h(n(5959)),s=h(n(2688)),i=n(8230),o=n(936),l=n(414),u=n(906),d=n(7222),c=h(n(7256));function h(e){return e&&e.__esModule?e:{default:e}}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function p(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,n=this.props,r=n.usePercentages,a=n.containerWidth;return n.useCSSTransforms?t=(0,l.setTransform)(e):(t=(0,l.setTopLeft)(e),r&&(t.left=(0,l.perc)(e.left/a),t.width=(0,l.perc)(e.width/a))),t}},{key:"mixinDraggable",value:function(e,t){return a.default.createElement(i.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}},{key:"mixinResizable",value:function(e,t,n){var r=this.props,s=r.cols,i=r.x,l=r.minW,d=r.minH,c=r.maxW,h=r.maxH,m=r.transformScale,p=r.resizeHandles,f=r.resizeHandle,_=this.getPositionParams(),g=(0,u.calcGridItemPosition)(_,0,0,s-i,0).width,y=(0,u.calcGridItemPosition)(_,0,0,l,d),v=(0,u.calcGridItemPosition)(_,0,0,c,h),b=[y.width,y.height],M=[Math.min(v.width,g),Math.min(v.height,1/0)];return a.default.createElement(o.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:b,maxConstraints:M,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:m,resizeHandles:p,handle:f},e)}},{key:"onResizeHandler",value:function(e,t,n){var r=t.node,a=t.size,s=this.props[n];if(s){var i=this.props,o=i.cols,l=i.x,d=i.y,c=i.i,h=i.maxH,m=i.minH,p=this.props,f=p.minW,_=p.maxW,g=(0,u.calcWH)(this.getPositionParams(),a.width,a.height,l,d),y=g.w,v=g.h;f=Math.max(f,1),_=Math.min(_,o-l),y=(0,u.clamp)(y,f,_),v=(0,u.clamp)(v,m,h),this.setState({resizing:"onResizeStop"===n?null:a}),s.call(this,c,y,v,{e,node:r,size:a})}}},{key:"render",value:function(){var e=this.props,t=e.x,n=e.y,r=e.w,s=e.h,i=e.isDraggable,o=e.isResizable,l=e.droppingPosition,d=e.useCSSTransforms,h=(0,u.calcGridItemPosition)(this.getPositionParams(),t,n,r,s,this.state),m=a.default.Children.only(this.props.children),f=a.default.cloneElement(m,{ref:this.elementRef,className:(0,c.default)("react-grid-item",m.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":i,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(l),cssTransforms:d}),style:p(p(p({},this.props.style),m.props.style),this.createStyle(h))});return f=this.mixinResizable(f,h,o),f=this.mixinDraggable(f,i)}}],n&&f(t.prototype,n),r&&f(t,r),Object.defineProperty(t,"prototype",{writable:!1}),d}(a.default.Component);t.default=M,b(M,"propTypes",{children:s.default.element,cols:s.default.number.isRequired,containerWidth:s.default.number.isRequired,rowHeight:s.default.number.isRequired,margin:s.default.array.isRequired,maxRows:s.default.number.isRequired,containerPadding:s.default.array.isRequired,x:s.default.number.isRequired,y:s.default.number.isRequired,w:s.default.number.isRequired,h:s.default.number.isRequired,minW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("minWidth not Number"):n>e.w||n>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxWidth not Number"):ne.h||n>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxHeight not Number"):n{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},8230:(e,t,n)=>{"use strict";const{default:r,DraggableCore:a}=n(9111);e.exports=r,e.exports.default=r,e.exports.DraggableCore=a},8231:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8294:function(e,t,n){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"én time",hh:"%d timer",d:"én dag",dd:"%d dager",w:"én uke",ww:"%d uker",M:"én måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8373:(e,t,n)=>{"use strict";n.d(t,{Nf:()=>a});let r=!1;function a(){return r}},8377:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(2689))},8395:(e,t,n)=>{"use strict";const r=/\s+/g;class a{constructor(e,t){if(t=i(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(r," "),this.set=this.raw.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter(e=>!g(e[0])),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&y(e[0])){this.set=[e];break}}this.formatted=void 0}get range(){if(void 0===this.formatted){this.formatted="";for(let e=0;e0&&(this.formatted+="||");const t=this.set[e];for(let e=0;e0&&(this.formatted+=" "),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){const t=((this.options.includePrerelease&&f)|(this.options.loose&&_))+":"+e,n=s.get(t);if(n)return n;const r=this.options.loose,a=r?d[c.HYPHENRANGELOOSE]:d[c.HYPHENRANGE];e=e.replace(a,E(this.options.includePrerelease)),l("hyphen replace",e),e=e.replace(d[c.COMPARATORTRIM],h),l("comparator trim",e),e=e.replace(d[c.TILDETRIM],m),l("tilde trim",e),e=e.replace(d[c.CARETTRIM],p),l("caret trim",e);let i=e.split(" ").map(e=>b(e,this.options)).join(" ").split(/\s+/).map(e=>Y(e,this.options));r&&(i=i.filter(e=>(l("loose invalid filter",e,this.options),!!e.match(d[c.COMPARATORLOOSE])))),l("range list",i);const u=new Map,y=i.map(e=>new o(e,this.options));for(const e of y){if(g(e))return[e];u.set(e.value,e)}u.size>1&&u.has("")&&u.delete("");const v=[...u.values()];return s.set(t,v),v}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>v(n,t)&&e.set.some(e=>v(e,t)&&n.every(n=>e.every(e=>n.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,y=e=>""===e.value,v=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every(e=>a.intersects(e,t)),a=r.pop();return n},b=(e,t)=>(l("comp",e,t),e=S(e,t),l("caret",e),e=w(e,t),l("tildes",e),e=D(e,t),l("xrange",e),e=x(e,t),l("stars",e),e),M=e=>!e||"x"===e.toLowerCase()||"*"===e,w=(e,t)=>e.trim().split(/\s+/).map(e=>L(e,t)).join(" "),L=(e,t)=>{const n=t.loose?d[c.TILDELOOSE]:d[c.TILDE];return e.replace(n,(t,n,r,a,s)=>{let i;return l("tilde",e,t,n,r,a,s),M(n)?i="":M(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:M(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:s?(l("replaceTilde pr",s),i=`>=${n}.${r}.${a}-${s} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,l("tilde return",i),i})},S=(e,t)=>e.trim().split(/\s+/).map(e=>k(e,t)).join(" "),k=(e,t)=>{l("caret",e,t);const n=t.loose?d[c.CARETLOOSE]:d[c.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(t,n,a,s,i)=>{let o;return l("caret",e,t,n,a,s,i),M(n)?o="":M(a)?o=`>=${n}.0.0${r} <${+n+1}.0.0-0`:M(s)?o="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(l("replaceCaret pr",i),o="0"===n?"0"===a?`>=${n}.${a}.${s}-${i} <${n}.${a}.${+s+1}-0`:`>=${n}.${a}.${s}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${s}-${i} <${+n+1}.0.0-0`):(l("no pr"),o="0"===n?"0"===a?`>=${n}.${a}.${s}${r} <${n}.${a}.${+s+1}-0`:`>=${n}.${a}.${s}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${s} <${+n+1}.0.0-0`),l("caret return",o),o})},D=(e,t)=>(l("replaceXRanges",e,t),e.split(/\s+/).map(e=>T(e,t)).join(" ")),T=(e,t)=>{e=e.trim();const n=t.loose?d[c.XRANGELOOSE]:d[c.XRANGE];return e.replace(n,(n,r,a,s,i,o)=>{l("xRange",e,n,r,a,s,i,o);const u=M(a),d=u||M(s),c=d||M(i),h=c;return"="===r&&h&&(r=""),o=t.includePrerelease?"-0":"",u?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&h?(d&&(s=0),i=0,">"===r?(r=">=",d?(a=+a+1,s=0,i=0):(s=+s+1,i=0)):"<="===r&&(r="<",d?a=+a+1:s=+s+1),"<"===r&&(o="-0"),n=`${r+a}.${s}.${i}${o}`):d?n=`>=${a}.0.0${o} <${+a+1}.0.0-0`:c&&(n=`>=${a}.${s}.0${o} <${a}.${+s+1}.0-0`),l("xRange return",n),n})},x=(e,t)=>(l("replaceStars",e,t),e.trim().replace(d[c.STAR],"")),Y=(e,t)=>(l("replaceGTE0",e,t),e.trim().replace(d[t.includePrerelease?c.GTE0PRE:c.GTE0],"")),E=e=>(t,n,r,a,s,i,o,l,u,d,c,h)=>`${n=M(r)?"":M(a)?`>=${r}.0.0${e?"-0":""}`:M(s)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=M(u)?"":M(d)?`<${+u+1}.0.0-0`:M(c)?`<${u}.${+d+1}.0-0`:h?`<=${u}.${d}.${c}-${h}`:e?`<${u}.${d}.${+c+1}-0`:`<=${l}`}`.trim(),O=(e,t,n)=>{for(let n=0;n0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},8449:(e,t,n)=>{"use strict";const r=n(6850),a=n(9630),s=n(7944),i=n(4031),o=n(5860),l=n(7645),u=n(7994),d=n(5955),c=n(660),h=n(2966),m=n(5986),p=n(1617),f=n(9613),_=n(5380),g=n(2862),y=n(7023),v=n(2801),b=n(603),M=n(6033),w=n(144),L=n(599),S=n(6909),k=n(7659),D=n(2077),T=n(7092),x=n(3811),Y=n(5334),E=n(9524),O=n(8395),A=n(1722),C=n(651),R=n(7840),P=n(7930),j=n(3489),H=n(7494),N=n(5463),I=n(7871),F=n(4266),W=n(1112),V=n(1465),z=n(9252);e.exports={parse:o,valid:l,clean:u,inc:d,diff:c,major:h,minor:m,patch:p,prerelease:f,compare:_,rcompare:g,compareLoose:y,compareBuild:v,sort:b,rsort:M,gt:w,lt:L,eq:S,neq:k,gte:D,lte:T,cmp:x,coerce:Y,Comparator:E,Range:O,satisfies:A,toComparators:C,maxSatisfying:R,minSatisfying:P,minVersion:j,validRange:H,outside:N,gtr:I,ltr:F,intersects:W,simplifyRange:V,subset:z,SemVer:s,re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:a.SEMVER_SPEC_VERSION,RELEASE_TYPES:a.RELEASE_TYPES,compareIdentifiers:i.compareIdentifiers,rcompareIdentifiers:i.rcompareIdentifiers}},8473:function(e,t,n){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},8478:function(e,t,n){!function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){return"m"===r?n?"хвилина":"хвилину":"h"===r?n?"година":"годину":e+" "+t({ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[r],+e)}function r(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:r,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(2689))},8503:function(e,t,n){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(2689))},8512:function(e,t,n){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},8537:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(2689))},8588:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},8733:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(2689))},8784:e=>{function t(e){var n,r,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var s=e.length;for(n=0;n=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},8798:function(e,t,n){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(2689))},8944:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){return"D"===t?e+"वेर":e},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(2689))},8952:(e,t,n)=>{"use strict";n.d(t,{eg:()=>i,lR:()=>u,o1:()=>o,yB:()=>l});var r=n(3003),a=n(1099),s=n(5959);function i(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function o(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function l(e){let t=(0,s.useRef)({isFocused:!1,observer:null});(0,r.N)(()=>{const e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}},[]);let n=(0,a.J)(t=>{null==e||e(t)});return(0,s.useCallback)(e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=e.target,a=e=>{if(t.current.isFocused=!1,r.disabled){let t=i(e);n(t)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&r.disabled){var e;null===(e=t.current.observer)||void 0===e||e.disconnect();let n=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:n})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:n}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[n])}let u=!1},8974:function(e,t,n){!function(e){"use strict";e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"})},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(2689))},9070:(e,t,n)=>{"use strict";n.d(t,{bq:()=>i,sD:()=>s,wt:()=>o});var r=n(1570),a=n(8373);function s(e,t){if(!(0,a.Nf)())return!(!t||!e)&&e.contains(t);if(!e||!t)return!1;let n=t;for(;null!==n;){if(n===e)return!0;n="SLOT"===n.tagName&&n.assignedSlot?n.assignedSlot.parentNode:(0,r.Ng)(n)?n.host:n.parentNode}return!1}const i=(e=document)=>{var t;if(!(0,a.Nf)())return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&(null===(t=n.shadowRoot)||void 0===t?void 0:t.activeElement);)n=n.shadowRoot.activeElement;return n};function o(e){return(0,a.Nf)()&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}},9083:function(e,t,n){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(2689))},9088:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},9111:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?r:n){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(i,t,s):i[t]=e[t]);return i}(e,t)}(n(5959)),a=h(n(2688)),s=h(n(8398)),i=n(8784),o=n(2837),l=n(402),u=n(6732),d=h(n(1060)),c=h(n(7988));function h(e){return e&&e.__esModule?e:{default:e}}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t{(0,c.default)("Draggable: onDragStart: %j",t);if(!1===this.props.onStart(e,(0,l.createDraggableData)(this,t)))return!1;this.setState({dragging:!0,dragged:!0})}),p(this,"onDrag",(e,t)=>{if(!this.state.dragging)return!1;(0,c.default)("Draggable: onDrag: %j",t);const n=(0,l.createDraggableData)(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){const{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;const[a,s]=(0,l.getBoundPosition)(this,r.x,r.y);r.x=a,r.y=s,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(!1===this.props.onDrag(e,n))return!1;this.setState(r)}),p(this,"onDragStop",(e,t)=>{if(!this.state.dragging)return!1;if(!1===this.props.onStop(e,(0,l.createDraggableData)(this,t)))return!1;(0,c.default)("Draggable: onDragStop: %j",t);const n={dragging:!1,slackX:0,slackY:0};if(Boolean(this.props.position)){const{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)}),this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){void 0!==window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??s.default.findDOMNode(this)}render(){const{axis:e,bounds:t,children:n,defaultPosition:a,defaultClassName:s,defaultClassNameDragging:u,defaultClassNameDragged:c,position:h,positionOffset:p,scale:f,..._}=this.props;let g={},y=null;const v=!Boolean(h)||this.state.dragging,b=h||a,M={x:(0,l.canDragX)(this)&&v?this.state.x:b.x,y:(0,l.canDragY)(this)&&v?this.state.y:b.y};this.state.isElementSVG?y=(0,o.createSVGTransform)(M,p):g=(0,o.createCSSTransform)(M,p);const w=(0,i.clsx)(n.props.className||"",s,{[u]:this.state.dragging,[c]:this.state.dragged});return r.createElement(d.default,m({},_,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.cloneElement(r.Children.only(n),{className:w,style:{...n.props.style,...g},transform:y}))}}t.default=f,p(f,"displayName","Draggable"),p(f,"propTypes",{...d.default.propTypes,axis:a.default.oneOf(["both","x","y","none"]),bounds:a.default.oneOfType([a.default.shape({left:a.default.number,right:a.default.number,top:a.default.number,bottom:a.default.number}),a.default.string,a.default.oneOf([!1])]),defaultClassName:a.default.string,defaultClassNameDragging:a.default.string,defaultClassNameDragged:a.default.string,defaultPosition:a.default.shape({x:a.default.number,y:a.default.number}),positionOffset:a.default.shape({x:a.default.oneOfType([a.default.number,a.default.string]),y:a.default.oneOfType([a.default.number,a.default.string])}),position:a.default.shape({x:a.default.number,y:a.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),p(f,"defaultProps",{...d.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})},9133:function(e,t,n){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(2689))},9190:function(e,t,n){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}})}(n(2689))},9198:function(e,t,n){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9237:function(e,t,n){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(2689))},9252:(e,t,n)=>{"use strict";const r=n(8395),a=n(9524),{ANY:s}=a,i=n(1722),o=n(5380),l=[new a(">=0.0.0-0")],u=[new a(">=0.0.0")],d=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===s){if(1===t.length&&t[0].semver===s)return!0;e=n.includePrerelease?l:u}if(1===t.length&&t[0].semver===s){if(n.includePrerelease)return!0;t=u}const r=new Set;let a,d,m,p,f,_,g;for(const t of e)">"===t.operator||">="===t.operator?a=c(a,t,n):"<"===t.operator||"<="===t.operator?d=h(d,t,n):r.add(t.semver);if(r.size>1)return null;if(a&&d){if(m=o(a.semver,d.semver,n),m>0)return null;if(0===m&&(">="!==a.operator||"<="!==d.operator))return null}for(const e of r){if(a&&!i(e,String(a),n))return null;if(d&&!i(e,String(d),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let y=!(!d||n.includePrerelease||!d.semver.prerelease.length)&&d.semver,v=!(!a||n.includePrerelease||!a.semver.prerelease.length)&&a.semver;y&&1===y.prerelease.length&&"<"===d.operator&&0===y.prerelease[0]&&(y=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,_=_||"<"===e.operator||"<="===e.operator,a)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(p=c(a,e,n),p===e&&p!==a)return!1}else if(">="===a.operator&&!i(a.semver,String(e),n))return!1;if(d)if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),"<"===e.operator||"<="===e.operator){if(f=h(d,e,n),f===e&&f!==d)return!1}else if("<="===d.operator&&!i(d.semver,String(e),n))return!1;if(!e.operator&&(d||a)&&0!==m)return!1}return!(a&&_&&!d&&0!==m)&&(!(d&&g&&!a&&0!==m)&&(!v&&!y))},c=(e,t,n)=>{if(!e)return t;const r=o(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},h=(e,t,n)=>{if(!e)return t;const r=o(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=d(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},9338:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9343:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-ps",{months:"كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل".split("_"),monthsShort:"ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).split("").reverse().join("").replace(/[١٢](?![\u062a\u0643])/g,function(e){return n[e]}).split("").reverse().join("").replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},9383:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},9445:function(e,t,n){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},9482:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=s?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(a,i,o):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(5959)),s=c(n(7842)),i=c(n(7256)),o=n(414),l=n(906),u=c(n(8100)),d=c(n(7222));function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){var s=1/0,i=1/0;a.forEach(function(t){t.x>e.x&&(s=Math.min(s,t.x)),t.y>e.y&&(i=Math.min(i,t.y))}),Number.isFinite(s)&&(e.w=s-e.x),Number.isFinite(i)&&(e.h=i-e.y)}}return t||(e.w=n,e.h=r),e}),y=_(g,2),v=y[0],b=y[1];if(b){var M={w:b.w,h:b.h,x:b.x,y:b.y,static:!0,i:t};e.props.onResize(v,d,b,M,s,i),e.setState({layout:p?v:(0,o.compact)(v,(0,o.compactType)(e.props),h),activeDrag:M})}}),S(w(e),"onResizeStop",function(t,n,r,a){var s=a.e,i=a.node,l=e.state,u=l.layout,d=l.oldResizeItem,c=e.props,h=c.cols,m=c.allowOverlap,p=(0,o.getLayoutItem)(u,t);e.props.onResizeStop(u,d,p,null,s,i);var f=m?u:(0,o.compact)(u,(0,o.compactType)(e.props),h),_=e.state.oldLayout;e.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null}),e.onLayoutMaybeChanged(f,_)}),S(w(e),"onDragOver",function(t){var n;if(t.preventDefault(),t.stopPropagation(),D&&(null===(n=t.nativeEvent.target)||void 0===n||!n.classList.contains(k)))return!1;var r=e.props,s=r.droppingItem,i=r.onDropDragOver,o=r.margin,u=r.cols,d=r.rowHeight,c=r.maxRows,h=r.width,p=r.containerPadding,_=r.transformScale,g=null==i?void 0:i(t);if(!1===g)return e.state.droppingDOMNode&&e.removeDroppingPlaceholder(),!1;var y=f(f({},s),g),v=e.state.layout,b=t.nativeEvent,M=b.layerX,w=b.layerY,L={left:M/_,top:w/_,e:t};if(e.state.droppingDOMNode){if(e.state.droppingPosition){var S=e.state.droppingPosition,T=S.left,x=S.top;(T!=M||x!=w)&&e.setState({droppingPosition:L})}}else{var Y={cols:u,margin:o,maxRows:c,rowHeight:d,containerWidth:h,containerPadding:p||o},E=(0,l.calcXY)(Y,w,M,y.w,y.h);e.setState({droppingDOMNode:a.createElement("div",{key:y.i}),droppingPosition:L,layout:[].concat(m(v),[f(f({},y),{},{x:E.x,y:E.y,static:!1,isDraggable:!0})])})}}),S(w(e),"removeDroppingPlaceholder",function(){var t=e.props,n=t.droppingItem,r=t.cols,a=e.state.layout,s=(0,o.compact)(a.filter(function(e){return e.i!==n.i}),(0,o.compactType)(e.props),r);e.setState({layout:s,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),S(w(e),"onDragLeave",function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter--,0===e.dragEnterCounter&&e.removeDroppingPlaceholder()}),S(w(e),"onDragEnter",function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter++}),S(w(e),"onDrop",function(t){t.preventDefault(),t.stopPropagation();var n=e.props.droppingItem,r=e.state.layout,a=r.find(function(e){return e.i===n.i});e.dragEnterCounter=0,e.removeDroppingPlaceholder(),e.props.onDrop(r,a,t)}),e}return t=c,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n;return t.activeDrag?null:((0,s.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,o.childrenEqual)(e.children,t.children)||(n=t.layout):n=e.layout,n?{layout:(0,o.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,o.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(n=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,o.fastRGLPropsEqual)(this.props,e,s.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var n=this.state.layout,r=t.layout;this.onLayoutMaybeChanged(n,r)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,o.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,s.default)(t,e)||this.props.onLayoutChange(e)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,n=t.width,r=t.cols,s=t.margin,i=t.containerPadding,o=t.rowHeight,l=t.maxRows,d=t.useCSSTransforms,c=t.transformScale;return a.createElement(u.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:n,cols:r,margin:s,containerPadding:i||s,maxRows:l,rowHeight:o,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:d,transformScale:c},a.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var n=(0,o.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;var r=this.props,s=r.width,i=r.cols,l=r.margin,d=r.containerPadding,c=r.rowHeight,h=r.maxRows,m=r.isDraggable,p=r.isResizable,f=r.isBounded,_=r.useCSSTransforms,g=r.transformScale,y=r.draggableCancel,v=r.draggableHandle,b=r.resizeHandles,M=r.resizeHandle,w=this.state,L=w.mounted,S=w.droppingPosition,k="boolean"==typeof n.isDraggable?n.isDraggable:!n.static&&m,D="boolean"==typeof n.isResizable?n.isResizable:!n.static&&p,T=n.resizeHandles||b,x=k&&f&&!1!==n.isBounded;return a.createElement(u.default,{containerWidth:s,cols:i,margin:l,containerPadding:d||l,maxRows:h,rowHeight:c,cancel:y,handle:v,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:k,isResizable:D,isBounded:x,useCSSTransforms:_&&L,usePercentages:!L,transformScale:g,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:t?S:void 0,resizeHandles:T,resizeHandle:M},e)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.style,s=t.isDroppable,l=t.innerRef,u=(0,i.default)(k,n),d=f({height:this.containerHeight()},r);return a.createElement("div",{ref:l,className:u,style:d,onDrop:s?this.onDrop:o.noop,onDragLeave:s?this.onDragLeave:o.noop,onDragEnter:s?this.onDragEnter:o.noop,onDragOver:s?this.onDragOver:o.noop},a.Children.map(this.props.children,function(t){return e.processGridItem(t)}),s&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&v(t.prototype,n),r&&v(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(a.Component);t.default=T,S(T,"displayName","ReactGridLayout"),S(T,"propTypes",d.default),S(T,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:o.noop,onDragStart:o.noop,onDrag:o.noop,onDragStop:o.noop,onResizeStart:o.noop,onResize:o.noop,onResizeStop:o.noop,onDrop:o.noop,onDropDragOver:o.noop})},9524:(e,t,n)=>{"use strict";const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=s(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),u("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,u("comp",this)}parse(e){const t=this.options.loose?i[o.COMPARATORLOOSE]:i[o.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new d(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(u("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new d(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new c(e.value,t).test(this.value):""===e.operator?""===e.value||new c(this.value,t).test(e.semver):(!(t=s(t)).includePrerelease||"<0.0.0-0"!==this.value&&"<0.0.0-0"!==e.value)&&(!(!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0")))&&(!(!this.operator.startsWith(">")||!e.operator.startsWith(">"))||(!(!this.operator.startsWith("<")||!e.operator.startsWith("<"))||(!(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))||(!!(l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))||!!(l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))))))}}e.exports=a;const s=n(7095),{safeRe:i,t:o}=n(6850),l=n(3811),u=n(9796),d=n(7944),c=n(8395)},9555:(e,t,n)=>{"use strict";e.exports=n(6087)},9559:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(2689))},9570:function(e,t,n){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},9613:(e,t,n)=>{"use strict";const r=n(5860);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},9617:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i],a=[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:r,longMonthsParse:r,shortMonthsParse:a,monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(2689))},9630:e=>{"use strict";const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},9644:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;rr})},9796:e=>{"use strict";const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},9805:function(e,t,n){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},9814:(e,t,n)=>{"use strict";n.d(t,{x6:()=>je,t:()=>Pe});var r=n(2540);const a=e=>"string"==typeof e,s=()=>{let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},i=e=>null==e?"":""+e,o=/###/g,l=e=>e&&e.indexOf("###")>-1?e.replace(o,"."):e,u=e=>!e||a(e),d=(e,t,n)=>{const r=a(t)?t.split("."):t;let s=0;for(;s{const{obj:r,k:a}=d(e,t,Object);if(void 0!==r||1===t.length)return void(r[a]=n);let s=t[t.length-1],i=t.slice(0,t.length-1),o=d(e,i,Object);for(;void 0===o.obj&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),o=d(e,i,Object),o?.obj&&void 0!==o.obj[`${o.k}.${s}`]&&(o.obj=void 0);o.obj[`${o.k}.${s}`]=n},h=(e,t)=>{const{obj:n,k:r}=d(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},m=(e,t,n)=>{for(const r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?a(e[r])||e[r]instanceof String||a(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):m(e[r],t[r],n):e[r]=t[r]);return e},p=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var f={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const _=e=>a(e)?e.replace(/[&<>"'\/]/g,e=>f[e]):e;const g=[" ",",","?","!",";"],y=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}(20),v=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const r=t.split(n);let a=e;for(let e=0;e-1&&ie?.replace("_","-"),M={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class w{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||M,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),n=0;n{this.observers[e]||(this.observers[e]=new Map);const n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{let[t,r]=e;for(let e=0;e{let[r,a]=t;for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let o;e.indexOf(".")>-1?o=e.split("."):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):a(n)&&s?o.push(...n.split(s)):o.push(n)));const l=h(this.data,o);return!l&&!t&&!n&&e.indexOf(".")>-1&&(e=o[0],t=o[1],n=o.slice(2).join(".")),!l&&i&&a(n)?v(this.data?.[e]?.[t],n,s):l}addResource(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const s=void 0!==a.keySeparator?a.keySeparator:this.options.keySeparator;let i=[e,t];n&&(i=i.concat(s?n.split(s):n)),e.indexOf(".")>-1&&(i=e.split("."),r=t,t=i[1]),this.addNamespaces(t),c(this.data,i,r),a.silent||this.emit("added",e,t,n,r)}addResources(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const r in n)(a(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,a){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},i=[e,t];e.indexOf(".")>-1&&(i=e.split("."),r=n,n=t,t=i[1]),this.addNamespaces(t);let o=h(this.data,i)||{};s.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?m(o,n,a):o={...o,...n},c(this.data,i,o),s.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var D={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,a){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,a)??t}),t}};const T={},x=e=>!a(e)&&"boolean"!=typeof e&&"number"!=typeof e;class Y extends S{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),((e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})})(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=L.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;const n=this.resolve(e,t);return void 0!==n?.res}extractFromKey(e,t){let n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");const r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let s=t.ns||this.options.defaultNS||[];const i=n&&e.indexOf(n)>-1,o=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,n)=>{t=t||"",n=n||"";const r=g.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(0===r.length)return!0;const a=y.getRegExp(`(${r.map(e=>"?"===e?"\\?":e).join("|")})`);let s=!a.test(e);if(!s){const t=e.indexOf(n);t>0&&!a.test(e.substring(0,t))&&(s=!0)}return s})(e,n,r));if(i&&!o){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:a(s)?[s]:s};const i=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(i[0])>-1)&&(s=i.shift()),e=i.join(r)}return{key:e,namespaces:a(s)?[s]:s}}translate(e,t,n){if("object"!=typeof t&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof t&&(t={...t}),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);const r=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,s=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,{key:i,namespaces:o}=this.extractFromKey(e[e.length-1],t),l=o[o.length-1],u=t.lng||this.language,d=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===u?.toLowerCase()){if(d){const e=t.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${e}${i}`,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:`${l}${e}${i}`}return r?{res:i,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:i}const c=this.resolve(e,t);let h=c?.res;const m=c?.usedKey||i,p=c?.exactUsedKey||i,f=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,g=void 0!==t.count&&!a(t.count),y=Y.hasDefaultValue(t),v=g?this.pluralResolver.getSuffix(u,t.count,t):"",b=t.ordinal&&g?this.pluralResolver.getSuffix(u,t.count,{ordinal:!1}):"",M=g&&!t.ordinal&&0===t.count,w=M&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${v}`]||t[`defaultValue${b}`]||t.defaultValue;let L=h;_&&!h&&y&&(L=w);const S=x(L),k=Object.prototype.toString.apply(L);if(!(_&&L&&S&&["[object Number]","[object Function]","[object RegExp]"].indexOf(k)<0)||a(f)&&Array.isArray(L))if(_&&a(f)&&Array.isArray(h))h=h.join(f),h&&(h=this.extendTranslation(h,e,t,n));else{let r=!1,a=!1;!this.isValidLookup(h)&&y&&(r=!0,h=w),this.isValidLookup(h)||(a=!0,h=i);const o=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&a?void 0:h,d=y&&w!==h&&this.options.updateMissing;if(a||r||d){if(this.logger.log(d?"updateKey":"missingKey",u,l,i,d?w:h),s){const e=this.resolve(i,{...t,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const n=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&n&&n[0])for(let t=0;t{const a=y&&r!==h?r:o;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,n,a,d,t):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,n,a,d,t),this.emit("missingKey",e,l,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&g?e.forEach(e=>{const n=this.pluralResolver.getSuffixes(e,t);M&&t[`defaultValue${this.options.pluralSeparator}zero`]&&n.indexOf(`${this.options.pluralSeparator}zero`)<0&&n.push(`${this.options.pluralSeparator}zero`),n.forEach(n=>{r([e],i+n,t[`defaultValue${n}`]||w)})}):r(e,i,w))}h=this.extendTranslation(h,e,t,c,n),a&&h===i&&this.options.appendNamespaceToMissingKey&&(h=`${l}:${i}`),(a||r)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${i}`:i,r?h:void 0))}else{if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,L,{...t,ns:o}):`key '${i} (${this.language})' returned an object instead of string.`;return r?(c.res=e,c.usedParams=this.getUsedParamsDetails(t),c):e}if(s){const e=Array.isArray(L),n=e?[]:{},r=e?p:m;for(const e in L)if(Object.prototype.hasOwnProperty.call(L,e)){const a=`${r}${s}${e}`;n[e]=y&&!h?this.translate(a,{...t,defaultValue:x(w)?w[e]:void 0,joinArrays:!1,ns:o}):this.translate(a,{...t,joinArrays:!1,ns:o}),n[e]===a&&(n[e]=L[e])}h=n}}return r?(c.res=h,c.usedParams=this.getUsedParamsDetails(t),c):h}extendTranslation(e,t,n,r,s){var i=this;if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const o=a(e)&&(void 0!==n?.interpolation?.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(o){const t=e.match(this.interpolator.nestingRegexp);l=t&&t.length}let u=n.replace&&!a(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(u={...this.options.interpolation.defaultVariables,...u}),e=this.interpolator.interpolate(e,u,n.lng||this.language||r.usedLng,n),o){const t=e.match(this.interpolator.nestingRegexp);l<(t&&t.length)&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,function(){for(var e=arguments.length,r=new Array(e),a=0;a1&&void 0!==arguments[1]?arguments[1]:{};return a(e)&&(e=[e]),e.forEach(e=>{if(this.isValidLookup(t))return;const l=this.extractFromKey(e,o),u=l.key;n=u;let d=l.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const c=void 0!==o.count&&!a(o.count),h=c&&!o.ordinal&&0===o.count,m=void 0!==o.context&&(a(o.context)||"number"==typeof o.context)&&""!==o.context,p=o.lngs?o.lngs:this.languageUtils.toResolveHierarchy(o.lng||this.language,o.fallbackLng);d.forEach(e=>{this.isValidLookup(t)||(i=e,T[`${p[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(i)||(T[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${n}" for languages "${p.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),p.forEach(n=>{if(this.isValidLookup(t))return;s=n;const a=[u];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(a,u,n,e,o);else{let e;c&&(e=this.pluralResolver.getSuffix(n,o.count,o));const t=`${this.options.pluralSeparator}zero`,r=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(c&&(a.push(u+e),o.ordinal&&0===e.indexOf(r)&&a.push(u+e.replace(r,this.options.pluralSeparator)),h&&a.push(u+t)),m){const n=`${u}${this.options.contextSeparator}${o.context}`;a.push(n),c&&(a.push(n+e),o.ordinal&&0===e.indexOf(r)&&a.push(n+e.replace(r,this.options.pluralSeparator)),h&&a.push(n+t))}}let i;for(;i=a.pop();)this.isValidLookup(t)||(r=i,t=this.getResource(n,e,i,o))}))})}),{res:t,usedKey:n,exactUsedKey:r,usedLng:s,usedNS:i}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!a(e.replace);let r=n?e.replace:e;if(n&&void 0!==e.count&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const e of t)delete r[e]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}class E{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=L.create("languageUtils")}getScriptPartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(a(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(e){}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const n=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(n)||(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const n=this.getLanguagePartFromCode(e);if(this.isSupportedCode(n))return t=n;t=this.options.supportedLngs.find(e=>e===n?e:e.indexOf("-")<0&&n.indexOf("-")<0?void 0:e.indexOf("-")>0&&n.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===n||0===e.indexOf(n)&&n.length>1?e:void 0)}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),a(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],s=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return a(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(e))):a(e)&&s(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&s(this.formatLanguageCode(e))}),r}}const O={zero:0,one:1,two:2,few:3,many:4,other:5},A={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class C{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=L.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=b("dev"===e?"en":e),r=t.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:n,type:r});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let s;try{s=new Intl.PluralRules(n,{type:r})}catch(n){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),A;if(!e.match(/-|_/))return A;const r=this.languageUtils.getLanguagePartFromCode(e);s=this.getRule(r,t)}return this.pluralRulesCache[a]=s,s}needsPlural(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?n.resolvedOptions().pluralCategories.sort((e,t)=>O[e]-O[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,n))}}const R=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=((e,t,n)=>{const r=h(e,n);return void 0!==r?r:h(t,n)})(e,t,n);return!i&&s&&a(n)&&(i=v(e,n,r),void 0===i&&(i=v(t,n,r))),i},P=e=>e.replace(/\$/g,"$$$$");class j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=L.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:a,prefixEscaped:s,suffix:i,suffixEscaped:o,formatSeparator:l,unescapeSuffix:u,unescapePrefix:d,nestingPrefix:c,nestingPrefixEscaped:h,nestingSuffix:m,nestingSuffixEscaped:f,nestingOptionsSeparator:g,maxReplaces:y,alwaysFormat:v}=e.interpolation;this.escape=void 0!==t?t:_,this.escapeValue=void 0===n||n,this.useRawValueToEscape=void 0!==r&&r,this.prefix=a?p(a):s||"{{",this.suffix=i?p(i):o||"}}",this.formatSeparator=l||",",this.unescapePrefix=u?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=c?p(c):h||p("$t("),this.nestingSuffix=m?p(m):f||p(")"),this.nestingOptionsSeparator=g||",",this.maxReplaces=y||1e3,this.alwaysFormat=void 0!==v&&v,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let s,o,l;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=e=>{if(e.indexOf(this.formatSeparator)<0){const a=R(t,u,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(a,void 0,n,{...r,...t,interpolationkey:e}):a}const a=e.split(this.formatSeparator),s=a.shift().trim(),i=a.join(this.formatSeparator).trim();return this.format(R(t,u,s,this.options.keySeparator,this.options.ignoreJSONStructure),i,n,{...r,...t,interpolationkey:s})};this.resetRegExp();const c=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=void 0!==r?.interpolation?.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>P(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?P(this.escape(e)):P(e)}].forEach(t=>{for(l=0;s=t.regex.exec(e);){const n=s[1].trim();if(o=d(n),void 0===o)if("function"==typeof c){const t=c(e,s,r);o=a(t)?t:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))o="";else{if(h){o=s[0];continue}this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),o=""}else a(o)||this.useRawValueToEscape||(o=i(o));const u=t.safeValue(o);if(e=e.replace(s[0],u),h?(t.regex.lastIndex+=o.length,t.regex.lastIndex-=s[0].length):t.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t){let n,r,s,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const l=(e,t)=>{const n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;const r=e.split(new RegExp(`${n}[ ]*{`));let a=`{${r[1]}`;e=r[0],a=this.interpolate(a,s);const i=a.match(/'/g),o=a.match(/"/g);((i?.length??0)%2==0&&!o||o.length%2!=0)&&(a=a.replace(/'/g,'"'));try{s=JSON.parse(a),t&&(s={...t,...s})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${a}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,e};for(;n=this.nestingRegexp.exec(e);){let u=[];s={...o},s=s.replace&&!a(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;let d=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){const e=n[1].split(this.formatSeparator).map(e=>e.trim());n[1]=e.shift(),u=e,d=!0}if(r=t(l.call(this,n[1].trim(),s),s),r&&n[0]===e&&!a(r))return r;a(r)||(r=i(r)),r||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${e}`),r=""),d&&(r=u.reduce((e,t)=>this.format(e,t,o.lng,{...o,interpolationkey:n[1].trim()}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}const H=e=>{const t={};return(n,r,a)=>{let s=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(s={...s,[a.interpolationkey]:void 0});const i=r+JSON.stringify(s);let o=t[i];return o||(o=e(b(r),a),t[i]=o),o(n)}};class N{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=L.create("formatter"),this.options=e,this.formats={number:H((e,t)=>{const n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:H((e,t)=>{const n=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>n.format(e)}),datetime:H((e,t)=>{const n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:H((e,t)=>{const n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||"day")}),list:H((e,t)=>{const n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})},this.init(e)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=H(t)}format(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a=t.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(e=>e.indexOf(")")>-1)){const e=a.findIndex(e=>e.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,e)].join(this.formatSeparator)}return a.reduce((e,t)=>{const{formatName:a,formatOptions:s}=(e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const a=r[1].substring(0,r[1].length-1);"currency"===t&&a.indexOf(":")<0?n.currency||(n.currency=a.trim()):"relativetime"===t&&a.indexOf(":")<0?n.range||(n.range=a.trim()):a.split(";").forEach(e=>{if(e){const[t,...r]=e.split(":"),a=r.join(":").trim().replace(/^'+|'+$/g,""),s=t.trim();n[s]||(n[s]=a),"false"===a&&(n[s]=!1),"true"===a&&(n[s]=!0),isNaN(a)||(n[s]=parseInt(a,10))}})}return{formatName:t,formatOptions:n}})(t);if(this.formats[a]){let t=e;try{const i=r?.formatParams?.[r.interpolationkey]||{},o=i.locale||i.lng||r.locale||r.lng||n;t=this.formats[a](e,o,{...s,...r,...i})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${a}`),e},e)}}class I extends S{constructor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=L.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){const a={},s={},i={},o={};return e.forEach(e=>{let r=!0;t.forEach(t=>{const i=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[i]=2:this.state[i]<0||(1===this.state[i]?void 0===s[i]&&(s[i]=!0):(this.state[i]=1,r=!1,void 0===s[i]&&(s[i]=!0),void 0===a[i]&&(a[i]=!0),void 0===o[t]&&(o[t]=!0)))}),r||(i[e]=!0)}),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(i),toLoadNamespaces:Object.keys(o)}}loaded(e,t,n){const r=e.split("|"),a=r[0],s=r[1];t&&this.emit("failedLoading",a,s,t),!t&&n&&this.store.addResourceBundle(a,s,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const i={};this.queue.forEach(n=>{((e,t,n)=>{const{obj:r,k:a}=d(e,t,Object);r[a]=r[a]||[],r[a].push(n)})(n.loaded,[a],s),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(e=>{i[e]||(i[e]={});const t=n.loaded[e];t.length&&t.forEach(t=>{void 0===i[e][t]&&(i[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,s=arguments.length>5?arguments[5]:void 0;if(!e.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:a,callback:s});this.readingCalls++;const i=(i,o)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}i&&o&&r{this.read.call(this,e,t,n,r+1,2*a,s)},a):s(i,o)},o=this.backend[n].bind(this.backend);if(2!==o.length)return o(e,t,i);try{const n=o(e,t);n&&"function"==typeof n.then?n.then(e=>i(null,e)).catch(i):i(null,n)}catch(e){i(e)}}prepareLoading(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();a(e)&&(e=this.languageUtils.toResolveHierarchy(e)),a(t)&&(t=[t]);const s=this.queueLoad(e,t,n,r);if(!s.toLoad.length)return s.pending.length||r(),null;s.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const n=e.split("|"),r=n[0],a=n[1];this.read(r,a,"read",void 0,void 0,(n,s)=>{n&&this.logger.warn(`${t}loading namespace ${a} for language ${r} failed`,n),!n&&s&&this.logger.log(`${t}loaded namespace ${a} for language ${r}`,s),this.loaded(e,n,s)})}saveMissing(e,t,n,r,a){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=n&&""!==n){if(this.backend?.create){const o={...s,isUpdate:a},l=this.backend.create.bind(this.backend);if(l.length<6)try{let a;a=5===l.length?l(e,t,n,r,o):l(e,t,n,r),a&&"function"==typeof a.then?a.then(e=>i(null,e)).catch(i):i(null,a)}catch(e){i(e)}else l(e,t,n,r,i,o)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}else this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const F=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),a(e[1])&&(t.defaultValue=e[1]),a(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),W=e=>(a(e.ns)&&(e.ns=[e.ns]),a(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),a(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),"boolean"==typeof e.initImmediate&&(e.initAsync=e.initImmediate),e),V=()=>{};class z extends S{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;var n;if(super(),this.options=W(e),this.services={},this.logger=L,this.modules={external:[]},n=this,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{"function"==typeof n[e]&&(n[e]=n[e].bind(n))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof t&&(n=t,t={}),null==t.defaultNS&&t.ns&&(a(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=F();this.options={...r,...this.options,...W(t)},this.options.interpolation={...r.interpolation,...this.options.interpolation},void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator);const i=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let t;this.modules.logger?L.init(i(this.modules.logger),this.options):L.init(null,this.options),t=this.modules.formatter?this.modules.formatter:N;const n=new E(this.options);this.store=new k(this.options.resources,this.options);const a=this.services;a.logger=L,a.resourceStore=this.store,a.languageUtils=n,a.pluralResolver=new C(n,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!t||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(a.formatter=i(t),a.formatter.init(a,this.options),this.options.interpolation.format=a.formatter.format.bind(a.formatter)),a.interpolator=new j(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new I(i(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a1?n-1:0),a=1;a{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,n||(n=V),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(t=>{this[t]=function(){return e.store[t](...arguments)}});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(t=>{this[t]=function(){return e.store[t](...arguments),e}});const o=s(),l=()=>{const e=(e,t)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),o.resolve(t),n(e,t)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),o}loadResources(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V;const n=a(e)?e:this.language;if("function"==typeof e&&(t=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===n?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return t();const e=[],r=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)})};if(n)r(n);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>r(e))}this.options.preload?.forEach?.(e=>r(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),t(e)})}else t(null)}reloadResources(e,t,n){const r=s();return"function"==typeof e&&(n=e,e=void 0),"function"==typeof t&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=V),this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&D.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}}changeLanguage(e,t){var n=this;this.isLanguageChangingTo=e;const r=s();this.emit("languageChanging",e);const i=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},o=(e,a)=>{a?(i(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit("languageChanged",a),this.logger.log("languageChanged",a)):this.isLanguageChangingTo=void 0,r.resolve(function(){return n.t(...arguments)}),t&&t(e,function(){return n.t(...arguments)})},l=t=>{e||t||!this.services.languageDetector||(t=[]);const n=a(t)?t:this.services.languageUtils.getBestMatchFromCodes(t);n&&(this.language||i(n),this.translator.language||this.translator.changeLanguage(n),this.services.languageDetector?.cacheUserLanguage?.(n)),this.loadResources(n,e=>{o(e,n)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(e):l(this.services.languageDetector.detect()),r}getFixedT(e,t,n){var r=this;const s=function(e,t){let a;if("object"!=typeof t){for(var i=arguments.length,o=new Array(i>2?i-2:0),l=2;l`${a.keyPrefix}${u}${e}`):a.keyPrefix?`${a.keyPrefix}${u}${e}`:e,r.t(d,a)};return a(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=n,s}t(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;const s=(e,t)=>{const n=this.services.backendConnector.state[`${e}|${t}`];return-1===n||0===n||2===n};if(t.precheck){const e=t.precheck(this,s);if(void 0!==e)return e}return!!this.hasResourceBundle(n,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!s(n,e)||r&&!s(a,e)))}loadNamespaces(e,t){const n=s();return this.options.ns?(a(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=s();a(e)&&(e=[e]);const r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=this.services?.languageUtils||new E(F());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V;const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},a=new z(r);void 0===e.debug&&void 0===e.prefix||(a.logger=a.logger.clone(e));if(["store","services","language"].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},n){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),{})),{});a.store=new k(e,r),a.services.resourceStore=a.store}return a.translator=new Y(a.services,r),a.translator.on("*",function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function X(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(Q()[n[1]]||"/"===e.charAt(e.length-2))&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("--\x3e");return{type:"comment",comment:-1!==r?e.slice(4,r):""}}for(var a=new RegExp(Z),s=null;null!==(s=a.exec(e));)if(s[0].trim())if(s[1]){var i=s[1].trim(),o=[i,""];i.indexOf("=")>-1&&(o=i.split("=")),t.attrs[o[0]]=o[1],a.lastIndex--}else s[2]&&(t.attrs[s[2]]=s[3].trim().substring(1,s[3].length-1));return t}var ee=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,te=/^\s*$/,ne=Object.create(null);function re(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'="'+e[n]+'"');return t.length?" "+t.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(re,"")+"";case"comment":return e+"\x3c!--"+t.comment+"--\x3e"}}var ae={parse:function(e,t){t||(t={}),t.components||(t.components=ne);var n,r=[],a=[],s=-1,i=!1;if(0!==e.indexOf("<")){var o=e.indexOf("<");r.push({type:"text",content:-1===o?e:e.substring(0,o)})}return e.replace(ee,function(o,l){if(i){if(o!=="")return;i=!1}var u,d="/"!==o.charAt(1),c=o.startsWith("\x3c!--"),h=l+o.length,m=e.charAt(h);if(c){var p=X(o);return s<0?(r.push(p),r):((u=a[s]).children.push(p),r)}if(d&&(s++,"tag"===(n=X(o)).type&&t.components[n.name]&&(n.type="component",i=!0),n.voidElement||i||!m||"<"===m||n.children.push({type:"text",content:e.slice(h,e.indexOf("<",h))}),0===s&&r.push(n),(u=a[s-1])&&u.children.push(n),a[s]=n),(!d||n.voidElement)&&(s>-1&&(n.voidElement||n.name===o.slice(2,-1))&&(s--,n=-1===s?r:a[s]),!i&&"<"!==m&&m)){u=-1===s?r:a[s].children;var f=e.indexOf("<",h),_=e.slice(h,-1===f?void 0:f);te.test(_)&&(_=" "),(f>-1&&s+u.length>=0||" "!==_)&&u.push({type:"text",content:_})}}),r},stringify:function(e){return e.reduce(function(e,t){return e+re("",t)},"")}};const se=ae,ie=(e,t,n,r)=>{const a=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);ue(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...a):console?.warn&&console.warn(...a)},oe={},le=(e,t,n,r)=>{ue(n)&&oe[n]||(ue(n)&&(oe[n]=new Date),ie(e,t,n,r))},ue=e=>"string"==typeof e,de=e=>"object"==typeof e&&null!==e,ce=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,he={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},me=e=>he[e];let pe={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(ce,me)};const fe=()=>pe;let _e;const ge=()=>_e,ye=(e,t)=>{if(!e)return!1;const n=e.props?.children??e.children;return t?n.length>0:!!n},ve=e=>{if(!e)return[];const t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?be(t):t},be=e=>Array.isArray(e)?e:[e],Me=(e,t,n,r)=>{if(!e)return"";let a="";const s=be(e),i=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return s.forEach((e,s)=>{if(ue(e))a+=`${e}`;else{if((0,J.isValidElement)(e)){const{props:o,type:l}=e,u=Object.keys(o).length,d=i.indexOf(l)>-1,c=o.children;if(!c&&d&&!u)return void(a+=`<${l}/>`);if(!c&&(!d||u)||o.i18nIsDynamicList)return void(a+=`<${s}>`);if(d&&1===u&&ue(c))return void(a+=`<${l}>${c}`);const h=Me(c,t,n,r);return void(a+=`<${s}>${h}`)}if(null!==e){if(de(e)){const{format:t,...s}=e,i=Object.keys(s);if(1===i.length){const e=t?`${i[0]}, ${t}`:i[0];return void(a+=`{{${e}}}`)}return void ie(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:r,child:e})}ie(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:r,child:e})}else ie(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:r})}}),a},we=(e,t,n,r,a,s,i)=>{if(""===n)return[];const o=a.transKeepBasicHtmlNodesFor||[],l=n&&new RegExp(o.map(e=>`<${e}`).join("|")).test(n);if(!(e||t||l||i))return[n];const u=t??{},d=e=>{be(e).forEach(e=>{ue(e)||(ye(e)?d(ve(e)):de(e)&&!(0,J.isValidElement)(e)&&Object.assign(u,e))})};d(e);const c=se.parse(`<0>${n}`),h={...u,...s},m=(e,t,n)=>{const r=ve(e),a=f(r,t.children,n);return(e=>Array.isArray(e)&&e.every(J.isValidElement))(r)&&0===a.length||e.props?.i18nIsDynamicList?r:a},p=(e,t,n,r,a)=>{e.dummy?(e.children=t,n.push((0,J.cloneElement)(e,{key:r},a?void 0:t))):n.push(...J.Children.map([e],e=>{const n={...e.props};return delete n.i18nIsDynamicList,(0,J.createElement)(e.type,{...n,key:r,ref:e.props.ref??e.ref},a?null:t)}))},f=(e,n,s)=>{const u=be(e);return be(n).reduce((e,n,d)=>{const c=n.children?.[0]?.content&&r.services.interpolator.interpolate(n.children[0].content,h,r.language);if("tag"===n.type){let i=u[parseInt(n.name,10)];!i&&t&&(i=t[n.name]),1!==s.length||i||(i=s[0][n.name]),i||(i={});const _=0!==Object.keys(n.attrs).length?((e,t)=>{const n={...t};return n.props=Object.assign(e.props,t.props),n})({props:n.attrs},i):i,g=(0,J.isValidElement)(_),y=g&&ye(n,!0)&&!n.voidElement,v=l&&de(_)&&_.dummy&&!g,b=de(t)&&Object.hasOwnProperty.call(t,n.name);if(ue(_)){const t=r.services.interpolator.interpolate(_,h,r.language);e.push(t)}else if(ye(_)||y){const t=m(_,n,s);p(_,t,e,d)}else if(v){const t=f(u,n.children,s);p(_,t,e,d)}else if(Number.isNaN(parseFloat(n.name)))if(b){const t=m(_,n,s);p(_,t,e,d,n.voidElement)}else if(a.transSupportBasicHtmlNodes&&o.indexOf(n.name)>-1)if(n.voidElement)e.push((0,J.createElement)(n.name,{key:`${n.name}-${d}`}));else{const t=f(u,n.children,s);e.push((0,J.createElement)(n.name,{key:`${n.name}-${d}`},t))}else if(n.voidElement)e.push(`<${n.name} />`);else{const t=f(u,n.children,s);e.push(`<${n.name}>${t}`)}else if(de(_)&&!g){const t=n.children[0]?c:null;t&&e.push(t)}else p(_,c,e,d,1!==n.children.length||!c)}else if("text"===n.type){const t=a.transWrapTextNodes,s=i?a.unescape(r.services.interpolator.interpolate(n.content,h,r.language)):r.services.interpolator.interpolate(n.content,h,r.language);t?e.push((0,J.createElement)(t,{key:`${n.name}-${d}`},s)):e.push(s)}return e},[])},_=f([{dummy:!0,children:e||[]}],c,be(e||[]));return ve(_[0])},Le=(e,t,n)=>{const r=e.key||t,a=(0,J.cloneElement)(e,{key:r});if(!a.props||!a.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return a;return(0,J.createElement)(function(){return(0,J.createElement)(J.Fragment,null,a)},{key:r})},Se=(e,t,n,r)=>e?Array.isArray(e)?((e,t)=>e.map((e,n)=>Le(e,n,t)))(e,t):de(e)?((e,t)=>{const n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:Le(e[r],r,t)})}),n})(e,t):(le(n,"TRANS_INVALID_COMPONENTS",' "components" prop expects an object or array',{i18nKey:r}),null):null,ke=e=>!!de(e)&&(!Array.isArray(e)&&Object.keys(e).reduce((e,t)=>e&&Number.isNaN(Number.parseFloat(t)),!0));const De={type:"3rdParty",init(e){((e={})=>{pe={...pe,...e}})(e.options.react),(e=>{_e=e})(e)}},Te=(0,J.createContext)();function xe({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s={},values:i,defaults:o,components:l,ns:u,i18n:d,t:c,shouldUnescape:h,...m}){const{i18n:p,defaultNS:f}=(0,J.useContext)(Te)||{},_=d||p||ge(),g=c||_?.t.bind(_);return function({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s={},values:i,defaults:o,components:l,ns:u,i18n:d,t:c,shouldUnescape:h,...m}){const p=d||ge();if(!p)return le(p,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:r}),e;const f=c||p.t.bind(p)||(e=>e),_={...fe(),...p.options?.react};let g=u||f.ns||p.options?.defaultNS;g=ue(g)?[g]:g||["translation"];const y=Me(e,_,p,r),v=o||y||_.transEmptyNodeValue||r,{hashTransKey:b}=_,M=r||(b?b(y||v):y||v);p.options?.interpolation?.defaultVariables&&(i=i&&Object.keys(i).length>0?{...i,...p.options.interpolation.defaultVariables}:{...p.options.interpolation.defaultVariables});const w=i||void 0!==t&&!p.options?.interpolation?.alwaysFormat||!e?s.interpolation:{interpolation:{...s.interpolation,prefix:"#$?",suffix:"?$#"}},L={...s,context:a||s.context,count:t,...i,...w,defaultValue:v,ns:g},S=M?f(M,L):v,k=Se(l,S,p,r);let D=k||e,T=null;ke(k)&&(T=k,D=e);const x=we(D,T,S,p,_,L,h),Y=n??_.defaultTransParent;return Y?(0,J.createElement)(Y,m,x):x}({children:e,count:t,parent:n,i18nKey:r,context:a,tOptions:s,values:i,defaults:o,components:l,ns:u||g?.ns||f||_?.options?.defaultNS,i18n:_,t:c,shouldUnescape:h,...m})}var Ye=n(116);let Ee,Oe;function Ae({id:e,ns:t}={}){if(e)return Ee=Re().getFixedT(null,e),void(Oe=t=>(0,r.jsx)(xe,{shouldUnescape:!0,ns:e,...t}));Ee=Re().t,Oe=e=>(0,r.jsx)(xe,{shouldUnescape:!0,ns:t,...e})}function Ce(){var e;if((null==(e=Re().options)?void 0:e.resources)&&"object"==typeof Re().options.resources)return;const t=Re().use(De).init({resources:{},returnEmptyString:!1,lng:Ye.Nm});return Ae(),t}function Re(){return $}n(5730).Y,Ye.wi;const Pe=(e,t,n)=>(Ce(),Ee||(console.warn("t() was called before i18n was initialized. This is probably caused by calling t() in the root module scope, instead of lazily on render"),Ee=Re().t),Ee(e,t,n));function je(e){Ce();const t=null!=Oe?Oe:xe;return(0,r.jsx)(t,{shouldUnescape:!0,...e})}},9893:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},9947:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(2689))},9954:(e,t,n)=>{"use strict";t.__esModule=!0,t.cloneElement=function(e,t){t.style&&e.props.style&&(t.style=i(i({},e.props.style),t.style));t.className&&e.props.className&&(t.className=e.props.className+" "+t.className);return a.default.cloneElement(e,t)};var r,a=(r=n(5959))&&r.__esModule?r:{default:r};function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","const ENGLISH_US = \"en-US\";\nconst FRENCH_FRANCE = \"fr-FR\";\nconst SPANISH_SPAIN = \"es-ES\";\nconst GERMAN_GERMANY = \"de-DE\";\nconst BRAZILIAN_PORTUGUESE = \"pt-BR\";\nconst CHINESE_SIMPLIFIED = \"zh-Hans\";\nconst ITALIAN_ITALY = \"it-IT\";\nconst JAPANESE_JAPAN = \"ja-JP\";\nconst INDONESIAN_INDONESIA = \"id-ID\";\nconst KOREAN_KOREA = \"ko-KR\";\nconst RUSSIAN_RUSSIA = \"ru-RU\";\nconst CZECH_CZECHIA = \"cs-CZ\";\nconst DUTCH_NETHERLANDS = \"nl-NL\";\nconst HUNGARIAN_HUNGARY = \"hu-HU\";\nconst PORTUGUESE_PORTUGAL = \"pt-PT\";\nconst POLISH_POLAND = \"pl-PL\";\nconst SWEDISH_SWEDEN = \"sv-SE\";\nconst TURKISH_TURKEY = \"tr-TR\";\nconst CHINESE_TRADITIONAL = \"zh-Hant\";\nconst DEFAULT_LANGUAGE = ENGLISH_US;\nconst PSEUDO_LOCALE = \"pseudo\";\n\nexport { BRAZILIAN_PORTUGUESE, CHINESE_SIMPLIFIED, CHINESE_TRADITIONAL, CZECH_CZECHIA, DEFAULT_LANGUAGE, DUTCH_NETHERLANDS, ENGLISH_US, FRENCH_FRANCE, GERMAN_GERMANY, HUNGARIAN_HUNGARY, INDONESIAN_INDONESIA, ITALIAN_ITALY, JAPANESE_JAPAN, KOREAN_KOREA, POLISH_POLAND, PORTUGUESE_PORTUGAL, PSEUDO_LOCALE, RUSSIAN_RUSSIA, SPANISH_SPAIN, SWEDISH_SWEDEN, TURKISH_TURKEY };\n//# sourceMappingURL=constants.mjs.map\n","import { useParams, useLocation, matchPath } from 'react-router-dom';\nimport { urlUtil, locationUtil } from '@grafana/data';\nimport { locationSearchToObject } from '@grafana/runtime';\n\nfunction useAppQueryParams() {\n const location = useLocation();\n return locationSearchToObject(location.search || \"\");\n}\nfunction getUrlWithAppState(path, searchObject, preserveParams) {\n const paramsCopy = { ...searchObject };\n if (preserveParams) {\n for (const key of Object.keys(paramsCopy)) {\n if (!preserveParams.includes(key)) {\n delete paramsCopy[key];\n }\n }\n }\n return urlUtil.renderUrl(locationUtil.assureBaseUrl(path), paramsCopy);\n}\nfunction useSceneRouteMatch(path) {\n const params = useParams();\n const location = useLocation();\n const isExact = matchPath(\n {\n path,\n caseSensitive: false,\n end: true\n },\n location.pathname\n );\n const match = {\n params,\n isExact: isExact !== null,\n path: location.pathname,\n url: location.pathname\n };\n return match;\n}\n\nexport { getUrlWithAppState, useAppQueryParams, useSceneRouteMatch };\n//# sourceMappingURL=utils.js.map\n","import { getPluginImportUtils } from '@grafana/runtime';\n\nconst runtimePanelPlugins = /* @__PURE__ */ new Map();\nfunction registerRuntimePanelPlugin({ pluginId, plugin }) {\n if (runtimePanelPlugins.has(pluginId)) {\n throw new Error(`A runtime panel plugin with id ${pluginId} has already been registered`);\n }\n plugin.meta = {\n ...plugin.meta,\n id: pluginId,\n name: pluginId,\n module: \"runtime plugin\",\n baseUrl: \"runtime plugin\",\n info: {\n author: {\n name: \"Runtime plugin \" + pluginId\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n }\n };\n runtimePanelPlugins.set(pluginId, plugin);\n}\nfunction loadPanelPluginSync(pluginId) {\n var _a;\n const { getPanelPluginFromCache } = getPluginImportUtils();\n return (_a = getPanelPluginFromCache(pluginId)) != null ? _a : runtimePanelPlugins.get(pluginId);\n}\n\nexport { loadPanelPluginSync, registerRuntimePanelPlugin, runtimePanelPlugins };\n//# sourceMappingURL=registerRuntimePanelPlugin.js.map\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import React, { useState, useEffect } from 'react';\n\nfunction SceneComponentWrapperWithoutMemo({ model, ...otherProps }) {\n var _a;\n const Component = (_a = model.constructor[\"Component\"]) != null ? _a : EmptyRenderer;\n const [_, setValue] = useState(0);\n useEffect(() => {\n const unsub = model.activate();\n setValue((prevState) => prevState + 1);\n return unsub;\n }, [model]);\n if (!model.isActive && !model.renderBeforeActivation) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(Component, { ...otherProps, model });\n}\nconst SceneComponentWrapper = React.memo(SceneComponentWrapperWithoutMemo);\nfunction EmptyRenderer(_) {\n return null;\n}\n\nexport { SceneComponentWrapper };\n//# sourceMappingURL=SceneComponentWrapper.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneObjectStateChangedEvent extends BusEventWithPayload {\n}\nSceneObjectStateChangedEvent.type = \"scene-object-state-change\";\nclass UserActionEvent extends BusEventWithPayload {\n}\nUserActionEvent.type = \"scene-object-user-action\";\n\nexport { SceneObjectStateChangedEvent, UserActionEvent };\n//# sourceMappingURL=events.js.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _ref;\nclass SceneObjectRef {\n constructor(ref) {\n __privateAdd(this, _ref);\n __privateSet(this, _ref, ref);\n }\n resolve() {\n return __privateGet(this, _ref);\n }\n}\n_ref = new WeakMap();\n\nexport { SceneObjectRef };\n//# sourceMappingURL=SceneObjectRef.js.map\n","import { useState, useEffect } from 'react';\nimport { Subscription } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { EventBusSrv } from '@grafana/data';\nimport { SceneComponentWrapper } from './SceneComponentWrapper.js';\nimport { SceneObjectStateChangedEvent } from './events.js';\nimport { cloneSceneObject } from './sceneGraph/cloneSceneObject.js';\nimport { SceneObjectRef } from './SceneObjectRef.js';\n\nclass SceneObjectBase {\n constructor(state) {\n this._isActive = false;\n this._activationHandlers = [];\n this._deactivationHandlers = /* @__PURE__ */ new Map();\n this._subs = new Subscription();\n this._refCount = 0;\n this._renderBeforeActivation = false;\n if (!state.key) {\n state.key = v4();\n }\n this._events = new EventBusSrv();\n this._state = Object.freeze(state);\n this._setParent(this._state);\n }\n /** Current state */\n get state() {\n return this._state;\n }\n /** True if currently being active (ie displayed for visual objects) */\n get isActive() {\n return this._isActive;\n }\n get renderBeforeActivation() {\n return this._renderBeforeActivation;\n }\n /** Returns the parent, undefined for root object */\n get parent() {\n return this._parent;\n }\n /** Returns variable dependency config */\n get variableDependency() {\n return this._variableDependency;\n }\n /** Returns url sync config */\n get urlSync() {\n return this._urlSync;\n }\n /**\n * Used in render functions when rendering a SceneObject.\n * Wraps the component in an EditWrapper that handles edit mode\n */\n get Component() {\n return SceneComponentWrapper;\n }\n _setParent(state) {\n forEachChild(state, (child) => {\n if (child._parent && child._parent !== this) {\n console.warn(\n \"SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.\",\n child,\n this\n );\n }\n child._parent = this;\n });\n }\n /**\n * Sometimes you want to move one instance to another parent.\n * This is a way to do that without getting the console warning.\n */\n clearParent() {\n this._parent = void 0;\n }\n /**\n * Subscribe to the scene state subject\n **/\n subscribeToState(handler) {\n return this._events.subscribe(SceneObjectStateChangedEvent, (event) => {\n if (event.payload.changedObject === this) {\n handler(event.payload.newState, event.payload.prevState);\n }\n });\n }\n /**\n * Subscribe to the scene event\n **/\n subscribeToEvent(eventType, handler) {\n return this._events.subscribe(eventType, handler);\n }\n setState(update) {\n const prevState = this._state;\n const newState = {\n ...this._state,\n ...update\n };\n this._state = Object.freeze(newState);\n this._setParent(update);\n this._handleActivationOfChangedStateProps(prevState, newState);\n this.publishEvent(\n new SceneObjectStateChangedEvent({\n prevState,\n newState,\n partialUpdate: update,\n changedObject: this\n }),\n true\n );\n }\n /**\n * This handles activation and deactivation of $data, $timeRange and $variables when they change\n * during the active phase of the scene object.\n */\n _handleActivationOfChangedStateProps(prevState, newState) {\n if (!this.isActive) {\n return;\n }\n if (prevState.$behaviors !== newState.$behaviors) {\n this._handleChangedBehaviors(prevState.$behaviors, newState.$behaviors);\n }\n if (prevState.$data !== newState.$data) {\n this._handleChangedStateActivation(prevState.$data, newState.$data);\n }\n if (prevState.$variables !== newState.$variables) {\n this._handleChangedStateActivation(prevState.$variables, newState.$variables);\n }\n if (prevState.$timeRange !== newState.$timeRange) {\n this._handleChangedStateActivation(prevState.$timeRange, newState.$timeRange);\n }\n }\n _handleChangedStateActivation(oldValue, newValue) {\n if (oldValue) {\n const deactivationHandler = this._deactivationHandlers.get(oldValue);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldValue);\n }\n }\n if (newValue) {\n this._deactivationHandlers.set(newValue, newValue.activate());\n }\n }\n _handleChangedBehaviors(oldValue, newValue) {\n if (oldValue) {\n for (const oldBehavior of oldValue) {\n if (!newValue || !newValue.includes(oldBehavior)) {\n const deactivationHandler = this._deactivationHandlers.get(oldBehavior);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldBehavior);\n }\n }\n }\n }\n if (newValue) {\n for (const newBehavior of newValue) {\n if (!oldValue || !oldValue.includes(newBehavior)) {\n this._activateBehavior(newBehavior);\n }\n }\n }\n }\n /*\n * Publish an event and optionally bubble it up the scene\n **/\n publishEvent(event, bubble) {\n this._events.publish(event);\n if (bubble && this.parent) {\n this.parent.publishEvent(event, bubble);\n }\n }\n getRoot() {\n return !this._parent ? this : this._parent.getRoot();\n }\n _internalActivate() {\n this._isActive = true;\n const { $data, $variables, $timeRange, $behaviors } = this.state;\n this._activationHandlers.forEach((handler) => {\n const result = handler();\n if (result) {\n this._deactivationHandlers.set(result, result);\n }\n });\n if ($timeRange && !$timeRange.isActive) {\n this._deactivationHandlers.set($timeRange, $timeRange.activate());\n }\n if ($variables && !$variables.isActive) {\n this._deactivationHandlers.set($variables, $variables.activate());\n }\n if ($data && !$data.isActive) {\n this._deactivationHandlers.set($data, $data.activate());\n }\n if ($behaviors) {\n for (const behavior of $behaviors) {\n this._activateBehavior(behavior);\n }\n }\n }\n _activateBehavior(behavior) {\n if (behavior instanceof SceneObjectBase) {\n this._deactivationHandlers.set(behavior, behavior.activate());\n } else if (typeof behavior === \"function\") {\n const deactivate = behavior(this);\n if (deactivate) {\n this._deactivationHandlers.set(behavior, deactivate);\n }\n }\n }\n /**\n * This is primarily called from SceneComponentWrapper when the SceneObject's Component is mounted.\n * But in some scenarios this can also be called directly from another scene object. When called manually from another scene object\n * make sure to call the returned function when the source scene object is deactivated.\n */\n activate() {\n if (!this.isActive) {\n this._internalActivate();\n }\n this._refCount++;\n let called = false;\n return () => {\n this._refCount--;\n if (called) {\n const msg = `SceneObject cancelation handler returned by activate() called a second time`;\n throw new Error(msg);\n }\n called = true;\n if (this._refCount === 0) {\n this._internalDeactivate();\n }\n };\n }\n /**\n * Called by the SceneComponentWrapper when the react component is unmounted.\n * Don't override this, instead use addActivationHandler. The activation handler can return a deactivation handler.\n */\n _internalDeactivate() {\n this._isActive = false;\n for (let handler of this._deactivationHandlers.values()) {\n handler();\n }\n this._deactivationHandlers.clear();\n this._events.removeAllListeners();\n this._subs.unsubscribe();\n this._subs = new Subscription();\n }\n /**\n * Utility hook to get and subscribe to state\n */\n useState() {\n return useSceneObjectState(this);\n }\n /** Force a re-render, should only be needed when variable values change */\n forceRender() {\n this.setState({});\n }\n /**\n * Will create new SceneObject with shallow-cloned state, but all state items of type SceneObject are deep cloned\n */\n clone(withState) {\n return cloneSceneObject(this, withState);\n }\n /**\n * Allows external code to register code that is executed on activate and deactivate. This allow you\n * to wire up scene objects that need to respond to state changes in other objects from the outside.\n **/\n addActivationHandler(handler) {\n this._activationHandlers.push(handler);\n }\n /**\n * Loop through state and call callback for each direct child scene object.\n * Checks 1 level deep properties and arrays. So a scene object hidden in a nested plain object will not be detected.\n * Return false to exit loop early.\n */\n forEachChild(callback) {\n forEachChild(this.state, callback);\n }\n /** Returns a SceneObjectRef that will resolve to this object */\n getRef() {\n if (!this._ref) {\n this._ref = new SceneObjectRef(this);\n }\n return this._ref;\n }\n toJSON() {\n return {\n type: Object.getPrototypeOf(this).constructor.name,\n isActive: this.isActive,\n state: this.state\n };\n }\n}\nfunction useSceneObjectState(model, options) {\n var _a;\n const [_, setState] = useState(model.state);\n const stateAtFirstRender = model.state;\n const shouldActivateOrKeepAlive = (_a = options == null ? void 0 : options.shouldActivateOrKeepAlive) != null ? _a : false;\n useEffect(() => {\n let unactivate;\n if (shouldActivateOrKeepAlive) {\n unactivate = model.activate();\n }\n const s = model.subscribeToState((state) => {\n setState(state);\n });\n if (model.state !== stateAtFirstRender) {\n setState(model.state);\n }\n return () => {\n s.unsubscribe();\n if (unactivate) {\n unactivate();\n }\n };\n }, [model, shouldActivateOrKeepAlive]);\n return model.state;\n}\nfunction forEachChild(state, callback) {\n for (const propValue of Object.values(state)) {\n if (propValue instanceof SceneObjectBase) {\n const result = callback(propValue);\n if (result === false) {\n break;\n }\n }\n if (Array.isArray(propValue)) {\n let exitEarly = false;\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n const result = callback(child);\n if (result === false) {\n exitEarly = true;\n break;\n }\n }\n }\n if (exitEarly) {\n break;\n }\n }\n }\n}\n\nexport { SceneObjectBase, useSceneObjectState };\n//# sourceMappingURL=SceneObjectBase.js.map\n","import { SceneObjectBase } from '../SceneObjectBase.js';\nimport { SceneObjectRef } from '../SceneObjectRef.js';\nimport { cloneDeep } from 'lodash';\n\nfunction cloneSceneObject(sceneObject, withState) {\n const clonedState = cloneSceneObjectState(sceneObject.state, withState);\n return new sceneObject.constructor(clonedState);\n}\nfunction cloneSceneObjectState(sceneState, withState) {\n const clonedState = { ...sceneState };\n Object.assign(clonedState, withState);\n for (const key in clonedState) {\n if (withState && withState[key] !== void 0) {\n continue;\n }\n const propValue = clonedState[key];\n if (propValue instanceof SceneObjectRef) {\n console.warn(\"Cloning object with SceneObjectRef\");\n continue;\n }\n if (propValue instanceof SceneObjectBase) {\n clonedState[key] = propValue.clone();\n } else if (Array.isArray(propValue)) {\n const newArray = [];\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n newArray.push(child.clone());\n } else if (typeof child === \"object\") {\n newArray.push(cloneDeep(child));\n } else {\n newArray.push(child);\n }\n }\n clonedState[key] = newArray;\n } else if (typeof propValue === \"object\") {\n clonedState[key] = cloneDeep(propValue);\n } else {\n clonedState[key] = propValue;\n }\n }\n return clonedState;\n}\n\nexport { cloneSceneObject, cloneSceneObjectState };\n//# sourceMappingURL=cloneSceneObject.js.map\n","import { DataSourceApi, PluginType } from '@grafana/data';\n\nclass RuntimeDataSource extends DataSourceApi {\n constructor(pluginId, uid) {\n super({\n name: \"RuntimeDataSource-\" + pluginId,\n uid,\n type: pluginId,\n id: 1,\n readOnly: true,\n jsonData: {},\n access: \"direct\",\n meta: {\n id: pluginId,\n name: \"RuntimeDataSource-\" + pluginId,\n type: PluginType.datasource,\n info: {\n author: {\n name: \"\"\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n },\n module: \"\",\n baseUrl: \"\"\n }\n });\n }\n testDatasource() {\n return Promise.resolve({});\n }\n}\nconst runtimeDataSources = /* @__PURE__ */ new Map();\nfunction registerRuntimeDataSource({ dataSource }) {\n if (runtimeDataSources.has(dataSource.uid)) {\n throw new Error(`A runtime data source with uid ${dataSource.uid} has already been registered`);\n }\n runtimeDataSources.set(dataSource.uid, dataSource);\n}\n\nexport { RuntimeDataSource, registerRuntimeDataSource, runtimeDataSources };\n//# sourceMappingURL=RuntimeDataSource.js.map\n","function lookupVariable(name, sceneObject) {\n const variables = sceneObject.state.$variables;\n if (!variables) {\n if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n } else {\n return null;\n }\n }\n const found = variables.getByName(name);\n if (found) {\n return found;\n } else if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n }\n return null;\n}\n\nexport { lookupVariable };\n//# sourceMappingURL=lookupVariable.js.map\n","function writeSceneLog(logger, message, ...rest) {\n let loggingEnabled = false;\n if (typeof window !== \"undefined\") {\n loggingEnabled = localStorage.getItem(\"grafana.debug.scenes\") === \"true\";\n }\n if (loggingEnabled) {\n console.log(`${logger}: `, message, ...rest);\n }\n}\n\nexport { writeSceneLog };\n//# sourceMappingURL=writeSceneLog.js.map\n","import { SceneObjectBase } from '../core/SceneObjectBase.js';\nimport { writeSceneLog } from '../utils/writeSceneLog.js';\n\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _running, _tryCompleteProfileFrameId;\nfunction isQueryController(s) {\n return \"isQueryController\" in s;\n}\nclass SceneQueryController extends SceneObjectBase {\n constructor(state = {}, profiler) {\n super({ ...state, isRunning: false });\n this.profiler = profiler;\n this.isQueryController = true;\n __privateAdd(this, _running, /* @__PURE__ */ new Set());\n __privateAdd(this, _tryCompleteProfileFrameId, null);\n this.runningQueriesCount = () => {\n return __privateGet(this, _running).size;\n };\n if (profiler) {\n this.profiler = profiler;\n profiler.setQueryController(this);\n }\n this.addActivationHandler(() => {\n var _a;\n (_a = this.profiler) == null ? void 0 : _a.setQueryController(this);\n return () => __privateGet(this, _running).clear();\n });\n }\n startProfile(name) {\n var _a;\n if (!this.state.enableProfiling) {\n return;\n }\n (_a = this.profiler) == null ? void 0 : _a.startProfile(name);\n }\n cancelProfile() {\n var _a;\n (_a = this.profiler) == null ? void 0 : _a.cancelProfile();\n }\n queryStarted(entry) {\n __privateGet(this, _running).add(entry);\n this.changeRunningQueryCount(1, entry);\n if (!this.state.isRunning) {\n this.setState({ isRunning: true });\n }\n }\n queryCompleted(entry) {\n if (!__privateGet(this, _running).has(entry)) {\n return;\n }\n __privateGet(this, _running).delete(entry);\n this.changeRunningQueryCount(-1);\n if (__privateGet(this, _running).size === 0) {\n this.setState({ isRunning: false });\n }\n }\n changeRunningQueryCount(dir, entry) {\n var _a, _b, _c, _d;\n window.__grafanaRunningQueryCount = ((_a = window.__grafanaRunningQueryCount) != null ? _a : 0) + dir;\n if (dir === 1 && this.state.enableProfiling) {\n if (entry) {\n (_b = this.profiler) == null ? void 0 : _b.addCrumb(`${entry.type}`);\n }\n if ((_c = this.profiler) == null ? void 0 : _c.isTailRecording()) {\n writeSceneLog(\"SceneQueryController\", \"New query started, cancelling tail recording\");\n (_d = this.profiler) == null ? void 0 : _d.cancelTailRecording();\n }\n }\n if (this.state.enableProfiling) {\n if (__privateGet(this, _tryCompleteProfileFrameId)) {\n cancelAnimationFrame(__privateGet(this, _tryCompleteProfileFrameId));\n }\n __privateSet(this, _tryCompleteProfileFrameId, requestAnimationFrame(() => {\n var _a2;\n (_a2 = this.profiler) == null ? void 0 : _a2.tryCompletingProfile();\n }));\n }\n }\n cancelAll() {\n var _a;\n for (const entry of __privateGet(this, _running).values()) {\n (_a = entry.cancel) == null ? void 0 : _a.call(entry);\n }\n }\n}\n_running = new WeakMap();\n_tryCompleteProfileFrameId = new WeakMap();\n\nexport { SceneQueryController, isQueryController };\n//# sourceMappingURL=SceneQueryController.js.map\n","import { isQueryController } from '../../behaviors/SceneQueryController.js';\n\nfunction getQueryController(sceneObject) {\n let parent = sceneObject;\n while (parent) {\n if (parent.state.$behaviors) {\n for (const behavior of parent.state.$behaviors) {\n if (isQueryController(behavior)) {\n return behavior;\n }\n }\n }\n parent = parent.parent;\n }\n return void 0;\n}\n\nexport { getQueryController };\n//# sourceMappingURL=getQueryController.js.map\n","import { TableCellDisplayMode } from '../common/common.gen.mjs';\nexport { AxisColorMode, AxisPlacement, BarAlignment, BarGaugeDisplayMode, BarGaugeNamePlacement, BarGaugeSizing, BarGaugeValueMode, BigValueColorMode, BigValueGraphMode, BigValueJustifyMode, BigValueTextMode, ComparisonOperation, DataTopic, FrameGeometrySourceMode, GraphDrawStyle, GraphGradientMode, GraphThresholdsStyleMode, GraphTransform, HeatmapCalculationMode, HeatmapCellLayout, LegendDisplayMode, LineInterpolation, LogsDedupStrategy, LogsSortOrder, PercentChangeColorMode, ResourceDimensionMode, ScalarDimensionMode, ScaleDimensionMode, ScaleDirection, ScaleDistribution, ScaleOrientation, SortOrder, StackingMode, TableCellBackgroundDisplayMode, TableCellHeight, TextDimensionMode, TooltipDisplayMode, VariableFormatID, VisibilityMode, VizOrientation, defaultLineStyle, defaultOptionsWithTimezones, defaultReduceDataOptions, defaultTableFooterOptions, defaultTimeZone, defaultVizLegendOptions } from '../common/common.gen.mjs';\n\nconst defaultTableFieldOptions = {\n align: \"auto\",\n inspect: false,\n wrapHeaderText: false,\n cellOptions: {\n type: TableCellDisplayMode.Auto\n }\n};\nvar LoadingState = /* @__PURE__ */ ((LoadingState2) => {\n LoadingState2[\"NotStarted\"] = \"NotStarted\";\n LoadingState2[\"Loading\"] = \"Loading\";\n LoadingState2[\"Streaming\"] = \"Streaming\";\n LoadingState2[\"Done\"] = \"Done\";\n LoadingState2[\"Error\"] = \"Error\";\n return LoadingState2;\n})(LoadingState || {});\n\nexport { LoadingState, TableCellDisplayMode, defaultTableFieldOptions };\n//# sourceMappingURL=common.types.mjs.map\n","import { getDefaultTimeRange } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { of } from 'rxjs';\nimport { SceneObjectBase } from './SceneObjectBase.js';\n\nclass SceneDataNode extends SceneObjectBase {\n constructor(state) {\n super({\n data: emptyPanelData,\n ...state\n });\n }\n getResultsStream() {\n const result = {\n origin: this,\n data: this.state.data\n };\n return of(result);\n }\n}\nconst emptyPanelData = {\n state: LoadingState.Done,\n series: [],\n timeRange: getDefaultTimeRange()\n};\n\nexport { SceneDataNode, emptyPanelData };\n//# sourceMappingURL=SceneDataNode.js.map\n","class SceneObjectUrlSyncConfig {\n constructor(_sceneObject, _options) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n this._keys = _options.keys;\n }\n getKeys() {\n if (typeof this._keys === \"function\") {\n return this._keys();\n }\n return this._keys;\n }\n getUrlState() {\n return this._sceneObject.getUrlState();\n }\n updateFromUrl(values) {\n this._sceneObject.updateFromUrl(values);\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n}\n\nexport { SceneObjectUrlSyncConfig };\n//# sourceMappingURL=SceneObjectUrlSyncConfig.js.map\n","function getClosest(sceneObject, extract) {\n let curSceneObject = sceneObject;\n let extracted = void 0;\n while (curSceneObject && !extracted) {\n extracted = extract(curSceneObject);\n curSceneObject = curSceneObject.parent;\n }\n return extracted;\n}\n\nexport { getClosest };\n//# sourceMappingURL=utils.js.map\n","import { toUtc } from '@grafana/data';\n\nconst INTERVAL_STRING_REGEX = /^\\d+[yYmMsSwWhHdD]$/;\nfunction parseUrlParam(value) {\n if (typeof value !== \"string\") {\n return null;\n }\n if (value.indexOf(\"now\") !== -1) {\n return value;\n }\n if (INTERVAL_STRING_REGEX.test(value)) {\n return value;\n }\n if (value.length === 8) {\n const utcValue = toUtc(value, \"YYYYMMDD\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 15) {\n const utcValue = toUtc(value, \"YYYYMMDDTHHmmss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 19) {\n const utcValue = toUtc(value, \"YYYY-MM-DD HH:mm:ss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 24) {\n const utcValue = toUtc(value);\n return utcValue.toISOString();\n }\n const epoch = parseInt(value, 10);\n if (!isNaN(epoch)) {\n return toUtc(epoch).toISOString();\n }\n return null;\n}\n\nexport { parseUrlParam };\n//# sourceMappingURL=parseUrlParam.js.map\n","import { setWeekStart, dateMath } from '@grafana/data';\n\nfunction evaluateTimeRange(from, to, timeZone, fiscalYearStartMonth, delay, weekStart) {\n const hasDelay = delay && to === \"now\";\n const now = Date.now();\n if (weekStart) {\n setWeekStartIfDifferent(weekStart);\n }\n const parseOrToDateTime = (val, options) => {\n if (dateMath.toDateTime) {\n return dateMath.toDateTime(val, options);\n } else {\n return dateMath.parse(val, options.roundUp, options.timezone, options.fiscalYearStartMonth);\n }\n };\n return {\n to: parseOrToDateTime(hasDelay ? \"now-\" + delay : to, {\n roundUp: true,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n from: parseOrToDateTime(from, {\n roundUp: false,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n raw: {\n from,\n to\n }\n };\n}\nlet prevWeekStart;\nfunction setWeekStartIfDifferent(weekStart) {\n if (weekStart !== prevWeekStart) {\n prevWeekStart = weekStart;\n setWeekStart(weekStart);\n }\n}\n\nexport { evaluateTimeRange };\n//# sourceMappingURL=evaluateTimeRange.js.map\n","import { isDateTime, dateMath, dateTimeParse } from '@grafana/data';\n\nfunction isValid(value, roundUp, timeZone) {\n if (isDateTime(value)) {\n return value.isValid();\n }\n if (dateMath.isMathString(value)) {\n return dateMath.isValid(value);\n }\n const parsed = dateTimeParse(value, { roundUp, timeZone });\n return parsed.isValid();\n}\n\nexport { isValid };\n//# sourceMappingURL=date.js.map\n","import { writeSceneLog } from '../utils/writeSceneLog.js';\n\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _profileInProgress, _profileStartTs, _trailAnimationFrameId, _recordedTrailingSpans, _visibilityChangeHandler;\nconst POST_STORM_WINDOW = 2e3;\nconst SPAN_THRESHOLD = 30;\nconst TAB_INACTIVE_THRESHOLD = 1e3;\nclass SceneRenderProfiler {\n constructor(queryController) {\n this.queryController = queryController;\n __privateAdd(this, _profileInProgress, null);\n __privateAdd(this, _profileStartTs, null);\n __privateAdd(this, _trailAnimationFrameId, null);\n // Will keep measured lengths trailing frames\n __privateAdd(this, _recordedTrailingSpans, []);\n this.lastFrameTime = 0;\n __privateAdd(this, _visibilityChangeHandler, null);\n this.measureTrailingFrames = (measurementStartTs, lastFrameTime, profileStartTs) => {\n var _a;\n const currentFrameTime = performance.now();\n const frameLength = currentFrameTime - lastFrameTime;\n if (frameLength > TAB_INACTIVE_THRESHOLD) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab was inactive, cancelling profile measurement\");\n this.cancelProfile();\n return;\n }\n __privateGet(this, _recordedTrailingSpans).push(frameLength);\n if (currentFrameTime - measurementStartTs < POST_STORM_WINDOW) {\n if (__privateGet(this, _profileInProgress)) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTs, currentFrameTime, profileStartTs)\n ));\n }\n } else {\n const slowFrames = processRecordedSpans(__privateGet(this, _recordedTrailingSpans));\n const slowFramesTime = slowFrames.reduce((acc, val) => acc + val, 0);\n writeSceneLog(\n this.constructor.name,\n \"Profile tail recorded, slow frames duration:\",\n slowFramesTime,\n slowFrames,\n __privateGet(this, _profileInProgress)\n );\n __privateSet(this, _recordedTrailingSpans, []);\n const profileDuration = measurementStartTs - profileStartTs;\n writeSceneLog(\n this.constructor.name,\n \"Stoped recording, total measured time (network included):\",\n profileDuration + slowFramesTime\n );\n __privateSet(this, _trailAnimationFrameId, null);\n const profileEndTs = profileStartTs + profileDuration + slowFramesTime;\n if (!__privateGet(this, _profileInProgress)) {\n return;\n }\n performance.measure(`DashboardInteraction ${__privateGet(this, _profileInProgress).origin}`, {\n start: profileStartTs,\n end: profileEndTs\n });\n const networkDuration = captureNetwork(profileStartTs, profileEndTs);\n if (((_a = this.queryController) == null ? void 0 : _a.state.onProfileComplete) && __privateGet(this, _profileInProgress)) {\n this.queryController.state.onProfileComplete({\n origin: __privateGet(this, _profileInProgress).origin,\n crumbs: __privateGet(this, _profileInProgress).crumbs,\n duration: profileDuration + slowFramesTime,\n networkDuration,\n startTs: profileStartTs,\n endTs: profileEndTs,\n // @ts-ignore\n jsHeapSizeLimit: performance.memory ? performance.memory.jsHeapSizeLimit : 0,\n // @ts-ignore\n usedJSHeapSize: performance.memory ? performance.memory.usedJSHeapSize : 0,\n // @ts-ignore\n totalJSHeapSize: performance.memory ? performance.memory.totalJSHeapSize : 0\n });\n __privateSet(this, _profileInProgress, null);\n __privateSet(this, _trailAnimationFrameId, null);\n }\n if (window.__runs) {\n window.__runs += `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n } else {\n window.__runs = `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n }\n }\n };\n this.setupVisibilityChangeHandler();\n }\n setQueryController(queryController) {\n this.queryController = queryController;\n }\n setupVisibilityChangeHandler() {\n if (__privateGet(this, _visibilityChangeHandler)) {\n return;\n }\n __privateSet(this, _visibilityChangeHandler, () => {\n if (document.hidden && __privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab became inactive, cancelling profile\");\n this.cancelProfile();\n }\n });\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"visibilitychange\", __privateGet(this, _visibilityChangeHandler));\n }\n }\n cleanup() {\n if (__privateGet(this, _visibilityChangeHandler) && typeof document !== \"undefined\") {\n document.removeEventListener(\"visibilitychange\", __privateGet(this, _visibilityChangeHandler));\n __privateSet(this, _visibilityChangeHandler, null);\n }\n this.cancelProfile();\n }\n startProfile(name) {\n if (document.hidden) {\n writeSceneLog(\"SceneRenderProfiler\", \"Tab is inactive, skipping profile\", name);\n return;\n }\n if (__privateGet(this, _profileInProgress)) {\n if (__privateGet(this, _trailAnimationFrameId)) {\n this.cancelProfile();\n this._startNewProfile(name, true);\n } else {\n this.addCrumb(name);\n }\n } else {\n this._startNewProfile(name);\n }\n }\n /**\n * Starts a new profile for performance measurement.\n *\n * @param name - The origin/trigger of the profile (e.g., 'time_range_change', 'variable_value_changed')\n * @param force - Whether this is a \"forced\" profile (true) or \"clean\" profile (false)\n * - \"forced\": Started by canceling an existing profile that was recording trailing frames\n * This happens when a new user interaction occurs before the previous one\n * finished measuring its performance impact\n * - \"clean\": Started when no profile is currently active\n */\n _startNewProfile(name, force = false) {\n __privateSet(this, _profileInProgress, { origin: name, crumbs: [] });\n __privateSet(this, _profileStartTs, performance.now());\n writeSceneLog(\n \"SceneRenderProfiler\",\n `Profile started[${force ? \"forced\" : \"clean\"}]`,\n __privateGet(this, _profileInProgress),\n __privateGet(this, _profileStartTs)\n );\n }\n recordProfileTail(measurementStartTime, profileStartTs) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTime, measurementStartTime, profileStartTs)\n ));\n }\n tryCompletingProfile() {\n var _a;\n writeSceneLog(\"SceneRenderProfiler\", \"Trying to complete profile\", __privateGet(this, _profileInProgress));\n if (((_a = this.queryController) == null ? void 0 : _a.runningQueriesCount()) === 0 && __privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"All queries completed, stopping profile\");\n this.recordProfileTail(performance.now(), __privateGet(this, _profileStartTs));\n }\n }\n isTailRecording() {\n return Boolean(__privateGet(this, _trailAnimationFrameId));\n }\n cancelTailRecording() {\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n writeSceneLog(\"SceneRenderProfiler\", \"Cancelled recording frames, new profile started\");\n }\n }\n // cancel profile\n cancelProfile() {\n if (__privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Cancelling profile\", __privateGet(this, _profileInProgress));\n __privateSet(this, _profileInProgress, null);\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n }\n __privateSet(this, _recordedTrailingSpans, []);\n }\n }\n addCrumb(crumb) {\n if (__privateGet(this, _profileInProgress)) {\n writeSceneLog(\"SceneRenderProfiler\", \"Adding crumb:\", crumb);\n __privateGet(this, _profileInProgress).crumbs.push(crumb);\n }\n }\n}\n_profileInProgress = new WeakMap();\n_profileStartTs = new WeakMap();\n_trailAnimationFrameId = new WeakMap();\n_recordedTrailingSpans = new WeakMap();\n_visibilityChangeHandler = new WeakMap();\nfunction processRecordedSpans(spans) {\n for (let i = spans.length - 1; i >= 0; i--) {\n if (spans[i] > SPAN_THRESHOLD) {\n return spans.slice(0, i + 1);\n }\n }\n return [spans[0]];\n}\nfunction captureNetwork(startTs, endTs) {\n const entries = performance.getEntriesByType(\"resource\");\n performance.clearResourceTimings();\n const networkEntries = entries.filter(\n (entry) => entry.startTime >= startTs && entry.startTime <= endTs && entry.responseEnd >= startTs && entry.responseEnd <= endTs\n );\n for (const entry of networkEntries) {\n performance.measure(\"Network entry \" + entry.name, {\n start: entry.startTime,\n end: entry.responseEnd\n });\n }\n return calculateNetworkTime(networkEntries);\n}\nfunction calculateNetworkTime(requests) {\n if (requests.length === 0) {\n return 0;\n }\n requests.sort((a, b) => a.startTime - b.startTime);\n let totalNetworkTime = 0;\n let currentStart = requests[0].startTime;\n let currentEnd = requests[0].responseEnd;\n for (let i = 1; i < requests.length; i++) {\n if (requests[i].startTime <= currentEnd) {\n currentEnd = Math.max(currentEnd, requests[i].responseEnd);\n } else {\n totalNetworkTime += currentEnd - currentStart;\n currentStart = requests[i].startTime;\n currentEnd = requests[i].responseEnd;\n }\n }\n totalNetworkTime += currentEnd - currentStart;\n return totalNetworkTime;\n}\nconst REFRESH_INTERACTION = \"refresh\";\nconst TIME_RANGE_CHANGE_INTERACTION = \"time_range_change\";\nconst FILTER_REMOVED_INTERACTION = \"filter_removed\";\nconst FILTER_CHANGED_INTERACTION = \"filter_changed\";\nconst FILTER_RESTORED_INTERACTION = \"filter_restored\";\nconst VARIABLE_VALUE_CHANGED_INTERACTION = \"variable_value_changed\";\nconst SCOPES_CHANGED_INTERACTION = \"scopes_changed\";\n\nexport { FILTER_CHANGED_INTERACTION, FILTER_REMOVED_INTERACTION, FILTER_RESTORED_INTERACTION, REFRESH_INTERACTION, SCOPES_CHANGED_INTERACTION, SceneRenderProfiler, TIME_RANGE_CHANGE_INTERACTION, VARIABLE_VALUE_CHANGED_INTERACTION, calculateNetworkTime, captureNetwork, processRecordedSpans };\n//# sourceMappingURL=SceneRenderProfiler.js.map\n","import { getTimeZone, rangeUtil, setWeekStart, getZone, toUtc } from '@grafana/data';\nimport { defaultTimeZone } from '@grafana/schema';\nimport { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig.js';\nimport { SceneObjectBase } from './SceneObjectBase.js';\nimport { getClosest } from './sceneGraph/utils.js';\nimport { parseUrlParam } from '../utils/parseUrlParam.js';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange.js';\nimport { RefreshEvent, config, locationService } from '@grafana/runtime';\nimport { isValid } from '../utils/date.js';\nimport { getQueryController } from './sceneGraph/getQueryController.js';\nimport { writeSceneLog } from '../utils/writeSceneLog.js';\nimport { isEmpty } from 'lodash';\nimport { TIME_RANGE_CHANGE_INTERACTION } from '../behaviors/SceneRenderProfiler.js';\n\nclass SceneTimeRange extends SceneObjectBase {\n constructor(state = {}) {\n var _a;\n const from = state.from && isValid(state.from) ? state.from : \"now-6h\";\n const to = state.to && isValid(state.to) ? state.to : \"now\";\n const timeZone = getValidTimeZone(state.timeZone);\n const value = evaluateTimeRange(\n from,\n to,\n timeZone || getTimeZone(),\n state.fiscalYearStartMonth,\n state.UNSAFE_nowDelay,\n state.weekStart\n );\n const refreshOnActivate = (_a = state.refreshOnActivate) != null ? _a : { percent: 10 };\n super({ from, to, timeZone, value, refreshOnActivate, ...state });\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [\"from\", \"to\", \"timezone\", \"time\", \"time.window\"] });\n this.onTimeRangeChange = (timeRange) => {\n const update = {};\n if (typeof timeRange.raw.from === \"string\") {\n update.from = timeRange.raw.from;\n } else {\n update.from = timeRange.raw.from.toISOString();\n }\n if (typeof timeRange.raw.to === \"string\") {\n update.to = timeRange.raw.to;\n } else {\n update.to = timeRange.raw.to.toISOString();\n }\n update.value = evaluateTimeRange(\n update.from,\n update.to,\n this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n if (update.from !== this.state.from || update.to !== this.state.to) {\n const queryController = getQueryController(this);\n queryController == null ? void 0 : queryController.startProfile(TIME_RANGE_CHANGE_INTERACTION);\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState(update);\n });\n }\n };\n this.onTimeZoneChange = (timeZone) => {\n this._urlSync.performBrowserHistoryAction(() => {\n var _a;\n const validTimeZone = (_a = getValidTimeZone(timeZone)) != null ? _a : defaultTimeZone;\n const updatedValue = evaluateTimeRange(\n this.state.from,\n this.state.to,\n validTimeZone,\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n this.setState({ timeZone: validTimeZone, value: updatedValue });\n });\n };\n this.onRefresh = () => {\n this.refreshRange(0);\n this.publishEvent(new RefreshEvent(), true);\n };\n this.addActivationHandler(this._onActivate.bind(this));\n }\n _onActivate() {\n if (!this.state.timeZone) {\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n this._subs.add(\n timeZoneSource.subscribeToState((n, p) => {\n if (n.timeZone !== void 0 && n.timeZone !== p.timeZone) {\n this.refreshRange(0);\n }\n })\n );\n }\n }\n if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {\n this.refreshIfStale();\n }\n return () => {\n if (this.state.weekStart) {\n setWeekStart(config.bootData.user.weekStart);\n }\n };\n }\n refreshIfStale() {\n var _a, _b, _c, _d;\n let ms;\n if (((_b = (_a = this.state) == null ? void 0 : _a.refreshOnActivate) == null ? void 0 : _b.percent) !== void 0) {\n ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);\n }\n if (((_d = (_c = this.state) == null ? void 0 : _c.refreshOnActivate) == null ? void 0 : _d.afterMs) !== void 0) {\n ms = Math.min(this.state.refreshOnActivate.afterMs, ms != null ? ms : Infinity);\n }\n if (ms !== void 0) {\n this.refreshRange(ms);\n }\n }\n /**\n * Will traverse up the scene graph to find the closest SceneTimeRangeLike with time zone set\n */\n getTimeZoneSource() {\n if (!this.parent || !this.parent.parent) {\n return this;\n }\n const source = getClosest(this.parent.parent, (o) => {\n if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {\n return o.state.$timeRange;\n }\n return void 0;\n });\n if (!source) {\n return this;\n }\n return source;\n }\n /**\n * Refreshes time range if it is older than the invalidation interval\n * @param refreshAfterMs invalidation interval (milliseconds)\n * @private\n */\n refreshRange(refreshAfterMs) {\n var _a;\n const value = evaluateTimeRange(\n this.state.from,\n this.state.to,\n (_a = this.state.timeZone) != null ? _a : getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n const diff = value.to.diff(this.state.value.to, \"milliseconds\");\n if (diff >= refreshAfterMs) {\n this.setState({ value });\n }\n }\n calculatePercentOfInterval(percent) {\n const intervalMs = this.state.value.to.diff(this.state.value.from, \"milliseconds\");\n return Math.ceil(intervalMs / 100 * percent);\n }\n getTimeZone() {\n if (this.state.timeZone && getValidTimeZone(this.state.timeZone)) {\n return this.state.timeZone;\n }\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this && getValidTimeZone(timeZoneSource.state.timeZone)) {\n return timeZoneSource.state.timeZone;\n }\n return getTimeZone();\n }\n getUrlState() {\n const params = locationService.getSearchObject();\n const urlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };\n if (params.time && params[\"time.window\"]) {\n urlValues.time = null;\n urlValues[\"time.window\"] = null;\n }\n return urlValues;\n }\n updateFromUrl(values) {\n var _a, _b, _c;\n const update = {};\n let from = parseUrlParam(values.from);\n let to = parseUrlParam(values.to);\n if (values.time && values[\"time.window\"]) {\n const time = Array.isArray(values.time) ? values.time[0] : values.time;\n const timeWindow = Array.isArray(values[\"time.window\"]) ? values[\"time.window\"][0] : values[\"time.window\"];\n const timeRange = getTimeWindow(time, timeWindow);\n if (timeRange.from && isValid(timeRange.from)) {\n from = timeRange.from;\n }\n if (timeRange.to && isValid(timeRange.to)) {\n to = timeRange.to;\n }\n }\n if (from && isValid(from)) {\n update.from = from;\n }\n if (to && isValid(to)) {\n update.to = to;\n }\n if (typeof values.timezone === \"string\") {\n update.timeZone = values.timezone !== \"\" ? values.timezone : void 0;\n }\n if (Object.keys(update).length === 0) {\n return;\n }\n update.value = evaluateTimeRange(\n (_a = update.from) != null ? _a : this.state.from,\n (_b = update.to) != null ? _b : this.state.to,\n (_c = update.timeZone) != null ? _c : this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n return this.setState(update);\n }\n}\nfunction getTimeWindow(time, timeWindow) {\n const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);\n let timeWindowMs;\n if (timeWindow.match(/^\\d+$/) && parseInt(timeWindow, 10)) {\n timeWindowMs = parseInt(timeWindow, 10);\n } else {\n timeWindowMs = rangeUtil.intervalToMs(timeWindow);\n }\n return {\n from: toUtc(valueTime - timeWindowMs / 2).toISOString(),\n to: toUtc(valueTime + timeWindowMs / 2).toISOString()\n };\n}\nfunction getValidTimeZone(timeZone) {\n if (timeZone === void 0) {\n return void 0;\n }\n if (isEmpty(timeZone)) {\n return config.bootData.user.timezone;\n }\n if (timeZone === defaultTimeZone) {\n return timeZone;\n }\n if (getZone(timeZone)) {\n return timeZone;\n }\n writeSceneLog(\"SceneTimeRange\", `Invalid timeZone \"${timeZone}\" provided.`);\n return;\n}\n\nexport { SceneTimeRange };\n//# sourceMappingURL=SceneTimeRange.js.map\n","import { SceneDataNode } from '../../core/SceneDataNode.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneTimeRange } from '../../core/SceneTimeRange.js';\n\nconst EmptyDataNode = new SceneDataNode();\nconst DefaultTimeRange = new SceneTimeRange();\nclass EmptyVariableSetImpl extends SceneObjectBase {\n constructor() {\n super({ variables: [] });\n }\n getByName(name) {\n return void 0;\n }\n isVariableLoadingOrWaitingToUpdate(variable) {\n return false;\n }\n}\nconst EmptyVariableSet = new EmptyVariableSetImpl();\n\nexport { DefaultTimeRange, EmptyDataNode, EmptyVariableSet, EmptyVariableSetImpl };\n//# sourceMappingURL=defaults.js.map\n","import { DefaultTimeRange } from '../../variables/interpolation/defaults.js';\nimport { getClosest } from './utils.js';\n\nfunction getTimeRange(sceneObject) {\n var _a;\n return (_a = getClosest(sceneObject, (s) => s.state.$timeRange)) != null ? _a : DefaultTimeRange;\n}\n\nexport { getTimeRange };\n//# sourceMappingURL=getTimeRange.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneVariableValueChangedEvent extends BusEventWithPayload {\n}\nSceneVariableValueChangedEvent.type = \"scene-variable-changed-value\";\nfunction isCustomVariableValue(value) {\n return typeof value === \"object\" && \"formatter\" in value;\n}\n\nexport { SceneVariableValueChangedEvent, isCustomVariableValue };\n//# sourceMappingURL=types.js.map\n","import { property } from 'lodash';\n\nlet fieldAccessorCache = {};\nfunction getFieldAccessor(fieldPath) {\n const accessor = fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n return fieldAccessorCache[fieldPath] = property(fieldPath);\n}\n\nexport { getFieldAccessor };\n//# sourceMappingURL=fieldAccessorCache.js.map\n","import { getFieldAccessor } from './fieldAccessorCache.js';\n\nclass ScopedVarsVariable {\n constructor(name, value) {\n this.state = { name, value, type: \"scopedvar\" };\n }\n getValue(fieldPath) {\n let { value } = this.state;\n let realValue = value.value;\n if (fieldPath) {\n realValue = getFieldAccessor(fieldPath)(value.value);\n } else {\n realValue = value.value;\n }\n if (realValue === \"string\" || realValue === \"number\" || realValue === \"boolean\") {\n return realValue;\n }\n return String(realValue);\n }\n getValueText() {\n const { value } = this.state;\n if (value.text != null) {\n return String(value.text);\n }\n return String(value);\n }\n}\nlet scopedVarsVariable;\nfunction getSceneVariableForScopedVar(name, value) {\n if (!scopedVarsVariable) {\n scopedVarsVariable = new ScopedVarsVariable(name, value);\n } else {\n scopedVarsVariable.state.name = name;\n scopedVarsVariable.state.value = value;\n }\n return scopedVarsVariable;\n}\n\nexport { ScopedVarsVariable, getSceneVariableForScopedVar };\n//# sourceMappingURL=ScopedVarsVariable.js.map\n","import { t } from '@grafana/i18n';\nimport { map, isArray, replace } from 'lodash';\nimport { Registry, escapeRegex, textUtil, dateTime, urlUtil } from '@grafana/data';\nimport { VariableFormatID } from '@grafana/schema';\n\nconst formatRegistry = new Registry(() => {\n const formats = [\n {\n id: VariableFormatID.Lucene,\n name: \"Lucene\",\n description: \"Values are lucene escaped and multi-valued variables generate an OR expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return luceneEscape(value);\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return \"__empty__\";\n }\n const quotedValues = map(value, (val) => {\n return '\"' + luceneEscape(val) + '\"';\n });\n return \"(\" + quotedValues.join(\" OR \") + \")\";\n } else {\n return luceneEscape(`${value}`);\n }\n }\n },\n {\n id: VariableFormatID.Raw,\n name: \"raw\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.keep-value-as-is\",\n \"Keep value as is\"\n ),\n formatter: (value) => String(value)\n },\n {\n id: VariableFormatID.Regex,\n name: \"Regex\",\n description: \"Values are regex escaped and multi-valued variables generate a (|) expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return escapeRegex(value);\n }\n if (Array.isArray(value)) {\n const escapedValues = value.map((item) => {\n if (typeof item === \"string\") {\n return escapeRegex(item);\n } else {\n return escapeRegex(String(item));\n }\n });\n if (escapedValues.length === 1) {\n return escapedValues[0];\n }\n return \"(\" + escapedValues.join(\"|\") + \")\";\n }\n return escapeRegex(`${value}`);\n }\n },\n {\n id: VariableFormatID.Pipe,\n name: \"Pipe\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.values-are-separated-by-character\",\n \"Values are separated by | character\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n return value.join(\"|\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.Distributed,\n name: \"Distributed\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.multiple-values-are-formatted-like-variablevalue\",\n \"Multiple values are formatted like variable=value\"\n ),\n formatter: (value, args, variable) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n value = map(value, (val, index) => {\n if (index !== 0) {\n return variable.state.name + \"=\" + val;\n } else {\n return val;\n }\n });\n return value.join(\",\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.CSV,\n name: \"Csv\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.commaseparated-values\",\n \"Comma-separated values\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (isArray(value)) {\n return value.join(\",\");\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.HTML,\n name: \"HTML\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.html-escaping-of-values\",\n \"HTML escaping of values\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return textUtil.escapeHtml(value);\n }\n if (isArray(value)) {\n return textUtil.escapeHtml(value.join(\", \"));\n }\n return textUtil.escapeHtml(String(value));\n }\n },\n {\n id: VariableFormatID.JSON,\n name: \"JSON\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.json-stringify-value\",\n \"JSON stringify value\"\n ),\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n }\n },\n {\n id: VariableFormatID.PercentEncode,\n name: \"Percent encode\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.useful-for-url-escaping-values\",\n \"Useful for URL escaping values\"\n ),\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIComponentStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIComponentStrict(value);\n }\n },\n {\n id: VariableFormatID.SingleQuote,\n name: \"Single quote\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.single-quoted-values\",\n \"Single quoted values\"\n ),\n formatter: (value) => {\n const regExp = new RegExp(`'`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, `\\\\'`)}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, `\\\\'`)}'`;\n }\n },\n {\n id: VariableFormatID.DoubleQuote,\n name: \"Double quote\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.double-quoted-values\",\n \"Double quoted values\"\n ),\n formatter: (value) => {\n const regExp = new RegExp('\"', \"g\");\n if (isArray(value)) {\n return map(value, (v) => `\"${replace(v, regExp, '\\\\\"')}\"`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `\"${replace(strVal, regExp, '\\\\\"')}\"`;\n }\n },\n {\n id: VariableFormatID.SQLString,\n name: \"SQL string\",\n description: \"SQL string quoting and commas for use in IN statements and other scenarios\",\n formatter: sqlStringFormatter\n },\n {\n id: \"join\",\n // join not yet available in depended @grafana/schema version\n name: \"Join\",\n description: \"Join values with a comma\",\n formatter: (value, args) => {\n var _a;\n if (isArray(value)) {\n const separator = (_a = args[0]) != null ? _a : \",\";\n return value.join(separator);\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.Date,\n name: \"Date\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.format-date-in-different-ways\",\n \"Format date in different ways\"\n ),\n formatter: (value, args) => {\n var _a;\n let nrValue = NaN;\n if (typeof value === \"number\") {\n nrValue = value;\n } else if (typeof value === \"string\") {\n nrValue = parseInt(value, 10);\n }\n if (isNaN(nrValue)) {\n return \"NaN\";\n }\n const arg = (_a = args[0]) != null ? _a : \"iso\";\n switch (arg) {\n case \"ms\":\n return String(value);\n case \"seconds\":\n return `${Math.round(nrValue / 1e3)}`;\n case \"iso\":\n return dateTime(nrValue).toISOString();\n default:\n if ((args || []).length > 1) {\n return dateTime(nrValue).format(args.join(\":\"));\n }\n return dateTime(nrValue).format(arg);\n }\n }\n },\n {\n id: VariableFormatID.Glob,\n name: \"Glob\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.format-multivalued-variables-using-syntax-example\",\n \"Format multi-valued variables using glob syntax, example {value1,value2}\"\n ),\n formatter: (value) => {\n if (isArray(value) && value.length > 1) {\n return \"{\" + value.join(\",\") + \"}\";\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.Text,\n name: \"Text\",\n description: \"Format variables in their text representation. Example in multi-variable scenario A + B + C.\",\n formatter: (value, _args, variable) => {\n if (variable.getValueText) {\n return variable.getValueText();\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.QueryParam,\n name: \"Query parameter\",\n description: \"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.\",\n formatter: (value, _args, variable) => {\n if (variable.urlSync) {\n const urlParam = variable.urlSync.getUrlState();\n return urlUtil.toUrlParams(urlParam);\n }\n if (Array.isArray(value)) {\n return value.map((v) => formatQueryParameter(variable.state.name, v)).join(\"&\");\n }\n return formatQueryParameter(variable.state.name, value);\n }\n },\n {\n id: \"customqueryparam\",\n name: \"Custom query parameter\",\n description: \"Format variables as URL parameters with custom name and value prefix. Example in multi-variable scenario A + B + C => p-foo=x-A&p-foo=x-B&p-foo=x-C.\",\n formatter: (value, args, variable) => {\n const name = encodeURIComponentStrict(args[0] || variable.state.name);\n const valuePrefix = encodeURIComponentStrict(args[1] || \"\");\n if (Array.isArray(value)) {\n return value.map((v) => customFormatQueryParameter(name, v, valuePrefix)).join(\"&\");\n }\n return customFormatQueryParameter(name, value, valuePrefix);\n }\n },\n {\n id: VariableFormatID.UriEncode,\n name: \"Percent encode as URI\",\n description: t(\n \"grafana-scenes.variables.format-registry.formats.description.useful-escaping-values-taking-syntax-characters\",\n \"Useful for URL escaping values, taking into URI syntax characters\"\n ),\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIStrict(value);\n }\n }\n ];\n return formats;\n});\nfunction luceneEscape(value) {\n if (isNaN(+value) === false) {\n return value;\n }\n return value.replace(/([\\!\\*\\+\\-\\=<>\\s\\&\\|\\(\\)\\[\\]\\{\\}\\^\\~\\?\\:\\\\/\"])/g, \"\\\\$1\");\n}\nfunction encodeURIComponentStrict(str) {\n if (typeof str === \"object\") {\n str = String(str);\n }\n return replaceSpecialCharactersToASCII(encodeURIComponent(str));\n}\nconst encodeURIStrict = (str) => replaceSpecialCharactersToASCII(encodeURI(String(str)));\nconst replaceSpecialCharactersToASCII = (value) => value.replace(/[!'()*]/g, (c) => {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n});\nfunction formatQueryParameter(name, value) {\n return `var-${name}=${encodeURIComponentStrict(value)}`;\n}\nfunction customFormatQueryParameter(name, value, valuePrefix = \"\") {\n return `${name}=${valuePrefix}${encodeURIComponentStrict(value)}`;\n}\nconst SQL_ESCAPE_MAP = {\n \"'\": \"''\",\n '\"': '\\\\\"'\n};\nfunction sqlStringFormatter(value) {\n const regExp = new RegExp(`'|\"`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`;\n}\n\nexport { formatRegistry };\n//# sourceMappingURL=formatRegistry.js.map\n","const ALL_VARIABLE_TEXT = \"All\";\nconst ALL_VARIABLE_VALUE = \"$__all\";\nconst AUTO_VARIABLE_TEXT = \"Auto\";\nconst AUTO_VARIABLE_VALUE = \"$__auto\";\nconst VARIABLE_REGEX = /\\$(\\w+)|\\[\\[(\\w+?)(?::(\\w+))?\\]\\]|\\${(\\w+)(?:\\.([^:^\\}]+))?(?::([^\\}]+))?}/g;\nconst SEARCH_FILTER_VARIABLE = \"__searchFilter\";\nconst SCOPES_VARIABLE_NAME = \"__scopes\";\n\nexport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE, AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE, SCOPES_VARIABLE_NAME, SEARCH_FILTER_VARIABLE, VARIABLE_REGEX };\n//# sourceMappingURL=constants.js.map\n","class SkipFormattingValue {\n constructor(_value) {\n this._value = _value;\n }\n formatter() {\n return this._value;\n }\n}\n\nexport { SkipFormattingValue };\n//# sourceMappingURL=types.js.map\n","import { urlUtil, dateTimeFormat } from '@grafana/data';\nimport { getTimeRange } from '../../core/sceneGraph/getTimeRange.js';\nimport { getData } from '../../core/sceneGraph/sceneGraph.js';\nimport { SkipFormattingValue } from './types.js';\n\nclass UrlTimeRangeMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const timeRange = getTimeRange(this._sceneObject);\n const urlState = (_a = timeRange.urlSync) == null ? void 0 : _a.getUrlState();\n if ((urlState == null ? void 0 : urlState.timezone) === \"browser\") {\n urlState.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return new SkipFormattingValue(urlUtil.toUrlParams(urlState));\n }\n getValueText() {\n return \"\";\n }\n}\nclass TimeFromAndToMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return timeRange.state.value.from.valueOf();\n } else {\n return timeRange.state.value.to.valueOf();\n }\n }\n getValueText() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return dateTimeFormat(timeRange.state.value.from, { timeZone: timeRange.getTimeZone() });\n } else {\n return dateTimeFormat(timeRange.state.value.to, { timeZone: timeRange.getTimeZone() });\n }\n }\n}\nclass TimezoneMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n const timeZone = timeRange.getTimeZone();\n if (timeZone === \"browser\") {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return timeZone;\n }\n getValueText() {\n return this.getValue();\n }\n}\nclass IntervalMacro {\n constructor(name, sceneObject, match) {\n this.state = { name, type: \"time_macro\", match };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const data = getData(this._sceneObject);\n if (data) {\n const request = (_a = data.state.data) == null ? void 0 : _a.request;\n if (!request) {\n return this.state.match;\n }\n if (this.state.name === \"__interval_ms\") {\n return request.intervalMs;\n }\n return request.interval;\n }\n return this.state.match;\n }\n}\n\nexport { IntervalMacro, TimeFromAndToMacro, TimezoneMacro, UrlTimeRangeMacro };\n//# sourceMappingURL=timeMacros.js.map\n","import { useLocationService, locationService } from '@grafana/runtime';\n\nfunction setBaseClassState(sceneObject, newState) {\n sceneObject.setState(newState);\n}\nfunction useLocationServiceSafe() {\n return useLocationService ? useLocationService() : locationService;\n}\nfunction isRepeatCloneOrChildOf(scene) {\n let obj = scene;\n do {\n if (\"repeatSourceKey\" in obj.state && obj.state.repeatSourceKey) {\n return true;\n }\n obj = obj.parent;\n } while (obj);\n return false;\n}\n\nexport { isRepeatCloneOrChildOf, setBaseClassState, useLocationServiceSafe };\n//# sourceMappingURL=utils.js.map\n","import { isEqual, isArray } from 'lodash';\nimport { map } from 'rxjs';\nimport { ALL_VARIABLE_VALUE, ALL_VARIABLE_TEXT } from '../constants.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneVariableValueChangedEvent } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { setBaseClassState } from '../../utils/utils.js';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../behaviors/SceneRenderProfiler.js';\nimport { getQueryController } from '../../core/sceneGraph/getQueryController.js';\n\nclass MultiValueVariable extends SceneObjectBase {\n constructor() {\n super(...arguments);\n this._urlSync = new MultiValueUrlSyncHandler(this);\n }\n /**\n * This function is called on when SceneVariableSet is activated or when a dependency changes.\n */\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n onCancel() {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent;\n sceneVarSet == null ? void 0 : sceneVarSet.cancel(this);\n }\n /**\n * Check if current value is valid given new options. If not update the value.\n */\n updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n this.interceptStateUpdateAfterValidation(stateUpdate);\n this.setStateHelper(stateUpdate);\n if (stateUpdate.value !== currentValue || stateUpdate.text !== currentText || this.hasAllValue() && !isEqual(options, oldOptions)) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n getStateUpdateGivenNewOptions(options, currentValue, currentText) {\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue,\n text: currentText\n };\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = \"\";\n stateUpdate.text = \"\";\n }\n return stateUpdate;\n }\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n if (this.state.isMulti) {\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v).label);\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n return stateUpdate;\n }\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n }\n return stateUpdate;\n }\n /**\n * Values set by initial URL sync needs to survive the next validation and update.\n * This function can intercept and make sure those values are preserved.\n */\n interceptStateUpdateAfterValidation(stateUpdate) {\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n if (this.skipNextValidation && stateUpdate.value !== this.state.value && stateUpdate.text !== this.state.text && !isAllValueFix) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n this.skipNextValidation = false;\n }\n getValue(fieldPath) {\n let value = this.state.value;\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n value = this.state.options.map((x) => x.value);\n }\n if (fieldPath != null && Array.isArray(value)) {\n const index = parseInt(fieldPath, 10);\n if (!isNaN(index) && index >= 0 && index < value.length) {\n return value[index];\n }\n }\n return value;\n }\n getValueText() {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(\" + \");\n }\n return String(this.state.text);\n }\n hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE;\n }\n getDefaultMultiState(options) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label] };\n } else {\n return { value: [], text: [] };\n }\n }\n getDefaultSingleState(options) {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, text: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, text: options[0].label };\n } else {\n return { value: \"\", text: \"\" };\n }\n }\n /**\n * Change the value and publish SceneVariableValueChangedEvent event.\n */\n changeValueTo(value, text, isUserAction = false) {\n var _a, _b;\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n } else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n if (isUserAction) {\n const queryController = getQueryController(this);\n queryController == null ? void 0 : queryController.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n (_b = (_a = this._urlSync).performBrowserHistoryAction) == null ? void 0 : _b.call(_a, stateChangeAction);\n } else {\n stateChangeAction();\n }\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n findLabelTextForValue(value) {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n return value;\n }\n /**\n * This helper function is to counter the contravariance of setState\n */\n setStateHelper(state) {\n setBaseClassState(this, state);\n }\n getOptionsForSelect(includeCurrentValue = true) {\n let options = this.state.options;\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n return options;\n }\n refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n}\nfunction findOptionMatchingCurrent(currentValue, currentText, options) {\n let textMatch;\n for (const item of options) {\n if (item.value === currentValue) {\n return item;\n }\n if (item.label === currentText) {\n textMatch = item;\n }\n }\n return textMatch;\n}\nclass MultiValueUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n let urlValue = null;\n let value = this._sceneObject.state.value;\n if (Array.isArray(value)) {\n urlValue = value.map(String);\n } else if (this._sceneObject.state.isMulti) {\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n return { [this.getKey()]: urlValue };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n if (urlValue != null) {\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\nfunction handleLegacyUrlAllValue(value) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n return value;\n}\nclass CustomAllValue {\n constructor(_value, _variable) {\n this._value = _value;\n this._variable = _variable;\n }\n formatter(formatNameOrFn) {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n return this._value;\n }\n}\n\nexport { CustomAllValue, MultiValueUrlSyncHandler, MultiValueVariable };\n//# sourceMappingURL=MultiValueVariable.js.map\n","import { isCustomVariableValue } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { SkipFormattingValue } from './types.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { ALL_VARIABLE_VALUE } from '../constants.js';\n\nclass AllVariablesMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const allVars = collectAllVariables(this._sceneObject);\n const format = formatRegistry.get(VariableFormatID.QueryParam);\n const params = [];\n for (const name of Object.keys(allVars)) {\n const variable = allVars[name];\n if (variable instanceof MultiValueVariable && variable.hasAllValue() && !variable.state.allValue) {\n params.push(format.formatter(ALL_VARIABLE_VALUE, [], variable));\n continue;\n }\n const value = variable.getValue();\n if (!value) {\n continue;\n }\n if (isCustomVariableValue(value)) {\n params.push(value.formatter(VariableFormatID.QueryParam));\n } else {\n params.push(format.formatter(value, [], variable));\n }\n }\n return new SkipFormattingValue(params.join(\"&\"));\n }\n getValueText() {\n return \"\";\n }\n}\nfunction collectAllVariables(sceneObject, record = {}) {\n if (sceneObject.state.$variables) {\n for (const variable of sceneObject.state.$variables.state.variables) {\n if (variable.state.skipUrlSync) {\n continue;\n }\n if (!record[variable.state.name]) {\n record[variable.state.name] = variable;\n }\n }\n }\n if (sceneObject.parent) {\n collectAllVariables(sceneObject.parent, record);\n }\n return record;\n}\n\nexport { AllVariablesMacro };\n//# sourceMappingURL=AllVariablesMacro.js.map\n","import { getDisplayProcessor, formattedValueToString, FieldType, getFieldDisplayValuesProxy, getFrameDisplayName } from '@grafana/data';\nimport { getFieldAccessor } from '../interpolation/fieldAccessorCache.js';\nimport { getTemplateProxyForField } from './templateProxies.js';\n\nclass ValueMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__value\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext) {\n return this._match;\n }\n const { frame, rowIndex, field, calculatedValue } = dataContext.value;\n if (calculatedValue) {\n switch (fieldPath) {\n case \"numeric\":\n return calculatedValue.numeric;\n case \"raw\":\n return calculatedValue.numeric;\n case \"time\":\n return \"\";\n case \"text\":\n default:\n return formattedValueToString(calculatedValue);\n }\n }\n if (rowIndex == null) {\n return this._match;\n }\n if (fieldPath === \"time\") {\n const timeField = frame.fields.find((f) => f.type === FieldType.time);\n return timeField ? timeField.values.get(rowIndex) : void 0;\n }\n if (!field) {\n return this._match;\n }\n const value = field.values.get(rowIndex);\n if (fieldPath === \"raw\") {\n return value;\n }\n const displayProcessor = (_b = field.display) != null ? _b : fallbackDisplayProcessor;\n const result = displayProcessor(value);\n switch (fieldPath) {\n case \"numeric\":\n return result.numeric;\n case \"text\":\n default:\n return formattedValueToString(result);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nconst fallbackDisplayProcessor = getDisplayProcessor();\nclass DataMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__data\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n const { frame, rowIndex } = dataContext.value;\n if (rowIndex === void 0 || fieldPath === void 0) {\n return this._match;\n }\n const obj = {\n name: frame.name,\n refId: frame.refId,\n fields: getFieldDisplayValuesProxy({ frame, rowIndex })\n };\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\nclass SeriesMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__series\" };\n }\n getValue(fieldPath) {\n var _a;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath !== \"name\") {\n return this._match;\n }\n const { frame, frameIndex } = dataContext.value;\n return getFrameDisplayName(frame, frameIndex);\n }\n getValueText() {\n return \"\";\n }\n}\nclass FieldMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__field\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath === void 0 || fieldPath === \"\") {\n return this._match;\n }\n const { frame, field, data } = dataContext.value;\n const obj = getTemplateProxyForField(field, frame, data);\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { DataMacro, FieldMacro, SeriesMacro, ValueMacro };\n//# sourceMappingURL=dataMacros.js.map\n","import { locationService, config } from '@grafana/runtime';\n\nclass UrlMacro {\n constructor(name, _) {\n this.state = { name, type: \"url_macro\" };\n }\n getValue(fieldPath) {\n var _a;\n const location = locationService.getLocation();\n const subUrl = (_a = config.appSubUrl) != null ? _a : \"\";\n switch (fieldPath != null ? fieldPath : \"\") {\n case \"params\":\n return new UrlStateFormatter(location.search);\n case \"path\":\n return subUrl + location.pathname;\n case \"\":\n default:\n return subUrl + location.pathname + location.search;\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass UrlStateFormatter {\n constructor(_urlQueryParams) {\n this._urlQueryParams = _urlQueryParams;\n }\n formatter(options) {\n if (!options) {\n return this._urlQueryParams;\n }\n const params = options.split(\":\");\n if (params[0] === \"exclude\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n for (const param of params[1].split(\",\")) {\n allParams.delete(param);\n }\n return `?${allParams}`;\n }\n if (params[0] === \"include\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n const includeOnly = params[1].split(\",\");\n for (const param of allParams.keys()) {\n if (!includeOnly.includes(param)) {\n allParams.delete(param);\n }\n }\n return `?${allParams}`;\n }\n return this._urlQueryParams;\n }\n}\n\nexport { UrlMacro };\n//# sourceMappingURL=urlMacros.js.map\n","import { DataLinkBuiltInVars } from '@grafana/data';\nimport { UrlTimeRangeMacro, TimeFromAndToMacro, TimezoneMacro, IntervalMacro } from './timeMacros.js';\nimport { AllVariablesMacro } from './AllVariablesMacro.js';\nimport { ValueMacro, DataMacro, SeriesMacro, FieldMacro } from './dataMacros.js';\nimport { UrlMacro } from './urlMacros.js';\nimport { UserMacro, OrgMacro } from './contextMacros.js';\n\nconst macrosIndex = /* @__PURE__ */ new Map([\n [DataLinkBuiltInVars.includeVars, AllVariablesMacro],\n [DataLinkBuiltInVars.keepTime, UrlTimeRangeMacro],\n [\"__value\", ValueMacro],\n [\"__data\", DataMacro],\n [\"__series\", SeriesMacro],\n [\"__field\", FieldMacro],\n [\"__url\", UrlMacro],\n [\"__from\", TimeFromAndToMacro],\n [\"__to\", TimeFromAndToMacro],\n [\"__timezone\", TimezoneMacro],\n [\"__user\", UserMacro],\n [\"__org\", OrgMacro],\n [\"__interval\", IntervalMacro],\n [\"__interval_ms\", IntervalMacro]\n]);\nfunction registerVariableMacro(name, macro, replace = false) {\n if (!replace && macrosIndex.get(name)) {\n throw new Error(`Macro already registered ${name}`);\n }\n macrosIndex.set(name, macro);\n return () => {\n if (replace) {\n throw new Error(`Replaced macros can not be unregistered. They need to be restored manually.`);\n } else {\n macrosIndex.delete(name);\n }\n };\n}\n\nexport { macrosIndex, registerVariableMacro };\n//# sourceMappingURL=index.js.map\n","import { getFieldDisplayName, formatLabels } from '@grafana/data';\n\nfunction getTemplateProxyForField(field, frame, frames) {\n return new Proxy(\n {},\n // This object shows up in test snapshots\n {\n get: (obj, key) => {\n if (key === \"name\") {\n return field.name;\n }\n if (key === \"displayName\") {\n return getFieldDisplayName(field, frame, frames);\n }\n if (key === \"labels\" || key === \"formattedLabels\") {\n if (!field.labels) {\n return \"\";\n }\n return {\n ...field.labels,\n __values: Object.values(field.labels).sort().join(\", \"),\n toString: () => {\n return formatLabels(field.labels, \"\", true);\n }\n };\n }\n return void 0;\n }\n }\n );\n}\n\nexport { getTemplateProxyForField };\n//# sourceMappingURL=templateProxies.js.map\n","import { config } from '@grafana/runtime';\n\nclass UserMacro {\n constructor(name, _) {\n this.state = { name, type: \"user_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"login\":\n return user.login;\n case \"email\":\n return user.email;\n case \"id\":\n default:\n return String(user.id);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass OrgMacro {\n constructor(name, _) {\n this.state = { name, type: \"org_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"name\":\n return user.orgName;\n case \"id\":\n default:\n return String(user.orgId);\n }\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { OrgMacro, UserMacro };\n//# sourceMappingURL=contextMacros.js.map\n","import { VariableFormatID } from '@grafana/schema';\nimport { isCustomVariableValue } from '../types.js';\nimport { getSceneVariableForScopedVar } from './ScopedVarsVariable.js';\nimport { formatRegistry } from './formatRegistry.js';\nimport { VARIABLE_REGEX } from '../constants.js';\nimport { lookupVariable } from '../lookupVariable.js';\nimport { macrosIndex } from '../macros/index.js';\n\nfunction sceneInterpolator(sceneObject, target, scopedVars, format, interpolations) {\n if (!target || typeof target !== \"string\") {\n return target != null ? target : \"\";\n }\n VARIABLE_REGEX.lastIndex = 0;\n return target.replace(VARIABLE_REGEX, (match, var1, var2, fmt2, var3, fieldPath, fmt3) => {\n const variableName = var1 || var2 || var3;\n const fmt = fmt2 || fmt3 || format;\n const variable = lookupFormatVariable(variableName, match, scopedVars, sceneObject);\n if (!variable) {\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value: match, found: false });\n }\n return match;\n }\n const value = formatValue(sceneObject, variable, variable.getValue(fieldPath), fmt);\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value, found: value !== match });\n }\n return value;\n });\n}\nfunction lookupFormatVariable(name, match, scopedVars, sceneObject) {\n if (scopedVars && scopedVars.hasOwnProperty(name)) {\n const scopedVar = scopedVars[name];\n if (scopedVar) {\n return getSceneVariableForScopedVar(name, scopedVar);\n }\n }\n const variable = lookupVariable(name, sceneObject);\n if (variable) {\n return variable;\n }\n const Macro = macrosIndex.get(name);\n if (Macro) {\n return new Macro(name, sceneObject, match, scopedVars);\n }\n return null;\n}\nfunction formatValue(context, variable, value, formatNameOrFn) {\n if (value === null || value === void 0) {\n return \"\";\n }\n if (isCustomVariableValue(value)) {\n return sceneInterpolator(context, value.formatter(formatNameOrFn));\n }\n if (!Array.isArray(value) && typeof value === \"object\") {\n value = `${value}`;\n }\n if (typeof formatNameOrFn === \"function\") {\n return formatNameOrFn(value, {\n name: variable.state.name,\n type: variable.state.type,\n multi: variable.state.isMulti,\n includeAll: variable.state.includeAll\n });\n }\n let args = [];\n if (!formatNameOrFn) {\n formatNameOrFn = VariableFormatID.Glob;\n } else {\n args = formatNameOrFn.split(\":\");\n if (args.length > 1) {\n formatNameOrFn = args[0];\n args = args.slice(1);\n } else {\n args = [];\n }\n }\n let formatter = formatRegistry.getIfExists(formatNameOrFn);\n if (!formatter) {\n console.error(`Variable format ${formatNameOrFn} not found. Using glob format as fallback.`);\n formatter = formatRegistry.get(VariableFormatID.Glob);\n }\n return formatter.formatter(value, args, variable);\n}\n\nexport { sceneInterpolator };\n//# sourceMappingURL=sceneInterpolator.js.map\n","function isSceneObject(obj) {\n return obj.useState !== void 0;\n}\nfunction isDataRequestEnricher(obj) {\n return \"enrichDataRequest\" in obj;\n}\nfunction isFiltersRequestEnricher(obj) {\n return \"enrichFiltersRequest\" in obj;\n}\nfunction isDataLayer(obj) {\n return \"isDataLayer\" in obj;\n}\n\nexport { isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject };\n//# sourceMappingURL=types.js.map\n","import { Observable, from, map, catchError } from 'rxjs';\nimport { LoadingState } from '@grafana/schema';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nfunction registerQueryWithController(entry) {\n return (queryStream) => {\n const queryControler = sceneGraph.getQueryController(entry.origin);\n if (!queryControler) {\n return queryStream;\n }\n return new Observable((observer) => {\n if (!entry.cancel) {\n entry.cancel = () => observer.complete();\n }\n queryControler.queryStarted(entry);\n let markedAsCompleted = false;\n const sub = queryStream.subscribe({\n next: (v) => {\n if (!markedAsCompleted && v.state !== LoadingState.Loading) {\n markedAsCompleted = true;\n queryControler.queryCompleted(entry);\n }\n observer.next(v);\n },\n error: (e) => observer.error(e),\n complete: () => {\n observer.complete();\n }\n });\n return () => {\n sub.unsubscribe();\n if (!markedAsCompleted) {\n queryControler.queryCompleted(entry);\n }\n };\n });\n };\n}\nfunction wrapPromiseInStateObservable(promise) {\n return new Observable((observer) => {\n observer.next({ state: LoadingState.Loading });\n const promiseObservable = from(promise);\n promiseObservable.pipe(\n map(() => ({ state: LoadingState.Done })),\n catchError(() => {\n observer.next({ state: LoadingState.Error });\n return [];\n })\n ).subscribe({\n next: (result) => observer.next(result),\n complete: () => observer.complete()\n });\n });\n}\n\nexport { registerQueryWithController, wrapPromiseInStateObservable };\n//# sourceMappingURL=registerQueryWithController.js.map\n","import { getDataSourceSrv } from '@grafana/runtime';\nimport { runtimeDataSources } from '../querying/RuntimeDataSource.js';\nimport { wrapPromiseInStateObservable, registerQueryWithController } from '../querying/registerQueryWithController.js';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nasync function getDataSource(datasource, scopedVars) {\n var _a;\n if (datasource == null ? void 0 : datasource.uid) {\n const runtimeDataSource = runtimeDataSources.get(datasource.uid);\n if (runtimeDataSource) {\n return runtimeDataSource;\n }\n }\n if (datasource && datasource.query) {\n return datasource;\n }\n const dsPromise = getDataSourceSrv().get(datasource, scopedVars);\n if (scopedVars.__sceneObject && scopedVars.__sceneObject.value.valueOf()) {\n const queryControler = sceneGraph.getQueryController(scopedVars.__sceneObject.value.valueOf());\n if (queryControler && queryControler.state.enableProfiling) {\n wrapPromiseInStateObservable(dsPromise).pipe(\n registerQueryWithController({\n type: `getDataSource/${(_a = datasource == null ? void 0 : datasource.type) != null ? _a : \"unknown\"}`,\n origin: scopedVars.__sceneObject.value.valueOf()\n })\n ).subscribe(() => {\n });\n }\n }\n const result = await dsPromise;\n return result;\n}\n\nexport { getDataSource };\n//# sourceMappingURL=getDataSource.js.map\n","import { sceneGraph } from '../core/sceneGraph/index.js';\nimport { isVariableValueEqual } from './utils.js';\n\nclass VariableValueRecorder {\n constructor() {\n this._values = /* @__PURE__ */ new Map();\n }\n recordCurrentDependencyValuesForSceneObject(sceneObject) {\n this.clearValues();\n if (!sceneObject.variableDependency) {\n return;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n }\n }\n cloneAndRecordCurrentValuesForSceneObject(sceneObject) {\n const clone = new VariableValueRecorder();\n clone.recordCurrentDependencyValuesForSceneObject(sceneObject);\n return clone;\n }\n clearValues() {\n this._values.clear();\n }\n hasValues() {\n return !!this._values;\n }\n recordCurrentValue(variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n hasRecordedValue(variable) {\n return this._values.has(variable.state.name);\n }\n hasValueChanged(variable) {\n if (this._values.has(variable.state.name)) {\n const value = this._values.get(variable.state.name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n return false;\n }\n hasDependenciesChanged(sceneObject) {\n if (!this._values) {\n return false;\n }\n if (!sceneObject.variableDependency) {\n return false;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (!variable) {\n continue;\n }\n const name = variable.state.name;\n if (variable && this._values.has(name)) {\n const value = this._values.get(name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nexport { VariableValueRecorder };\n//# sourceMappingURL=VariableValueRecorder.js.map\n","function isExtraQueryProvider(obj) {\n return typeof obj === \"object\" && \"getExtraQueries\" in obj;\n}\n\nexport { isExtraQueryProvider };\n//# sourceMappingURL=ExtraQueryProvider.js.map\n","import { of, mergeMap, forkJoin, map } from 'rxjs';\n\nconst passthroughProcessor = (_, secondary) => of(secondary);\nconst extraQueryProcessingOperator = (processors) => (data) => {\n return data.pipe(\n mergeMap(([primary, ...secondaries]) => {\n const processedSecondaries = secondaries.flatMap((s) => {\n var _a, _b;\n return (_b = (_a = processors.get(s.request.requestId)) == null ? void 0 : _a(primary, s)) != null ? _b : of(s);\n });\n return forkJoin([of(primary), ...processedSecondaries]);\n }),\n map(([primary, ...processedSecondaries]) => {\n var _a;\n return {\n ...primary,\n series: [...primary.series, ...processedSecondaries.flatMap((s) => s.series)],\n annotations: [...(_a = primary.annotations) != null ? _a : [], ...processedSecondaries.flatMap((s) => {\n var _a2;\n return (_a2 = s.annotations) != null ? _a2 : [];\n })]\n };\n })\n );\n};\n\nexport { extraQueryProcessingOperator, passthroughProcessor };\n//# sourceMappingURL=extraQueryProcessingOperator.js.map\n","const GLOBAL_ANNOTATION_ID = 0;\nfunction filterAnnotations(data, filters) {\n var _a;\n if (!Array.isArray(data) || data.length === 0) {\n return data;\n }\n const rows = Array.from({ length: data.length }, () => /* @__PURE__ */ new Set());\n let frameIdx = 0;\n for (const frame of data) {\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n continue;\n }\n let matching = true;\n const panelIdField = frame.fields.find((f) => f.name === \"panelId\");\n const sourceField = frame.fields.find((f) => f.name === \"source\");\n if (sourceField) {\n if (panelIdField && sourceField.values[index].type === \"dashboard\") {\n matching = [filters.panelId, GLOBAL_ANNOTATION_ID].includes(panelIdField.values[index]);\n }\n const sourceFilter = sourceField.values[index].filter;\n if (sourceFilter) {\n const includes = [...(_a = sourceFilter.ids) != null ? _a : [], GLOBAL_ANNOTATION_ID].includes(filters.panelId);\n if (sourceFilter.exclude) {\n if (includes) {\n matching = false;\n }\n } else if (!includes) {\n matching = false;\n }\n }\n }\n if (matching) {\n rows[frameIdx].add(index);\n }\n }\n frameIdx++;\n }\n const processed = [];\n frameIdx = 0;\n for (const frame of data) {\n const frameLength = rows[frameIdx].size;\n const fields = [];\n for (const field of frame.fields) {\n const buffer = [];\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n buffer.push(field.values[index]);\n continue;\n }\n }\n fields.push({\n ...field,\n values: buffer\n });\n }\n processed.push({\n ...frame,\n fields,\n length: frameLength\n });\n frameIdx++;\n }\n return processed;\n}\n\nexport { filterAnnotations };\n//# sourceMappingURL=filterAnnotations.js.map\n","import { isDataRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedDataRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isDataRequestEnricher(root)) {\n return root.enrichDataRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedDataRequest };\n//# sourceMappingURL=getEnrichedDataRequest.js.map\n","import { getTemplateSrv, getDataSourceSrv } from '@grafana/runtime';\nimport { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nlet originalGetAdhocFilters = void 0;\nlet allActiveFilterSets = /* @__PURE__ */ new Set();\nfunction patchGetAdhocFilters(filterVar) {\n filterVar.addActivationHandler(() => {\n allActiveFilterSets.add(filterVar);\n return () => allActiveFilterSets.delete(filterVar);\n });\n if (originalGetAdhocFilters) {\n return;\n }\n const templateSrv = getTemplateSrv();\n if (!(templateSrv == null ? void 0 : templateSrv.getAdhocFilters)) {\n console.log(\"Failed to patch getAdhocFilters\");\n return;\n }\n originalGetAdhocFilters = templateSrv.getAdhocFilters;\n templateSrv.getAdhocFilters = function getAdhocFiltersScenePatch(dsName) {\n var _a;\n if (allActiveFilterSets.size === 0) {\n return originalGetAdhocFilters.call(templateSrv, dsName);\n }\n const ds = getDataSourceSrv().getInstanceSettings(dsName);\n if (!ds) {\n return [];\n }\n for (const filter of allActiveFilterSets.values()) {\n if (((_a = filter.state.datasource) == null ? void 0 : _a.uid) === ds.uid) {\n return filter.state.filters;\n }\n }\n return [];\n }.bind(templateSrv);\n}\nfunction findActiveAdHocFilterVariableByUid(dsUid) {\n var _a;\n for (const filter of allActiveFilterSets.values()) {\n if (interpolate(filter, (_a = filter.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return filter;\n }\n }\n return void 0;\n}\n\nexport { findActiveAdHocFilterVariableByUid, patchGetAdhocFilters };\n//# sourceMappingURL=patchGetAdhocFilters.js.map\n","import { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nconst allActiveGroupByVariables = /* @__PURE__ */ new Set();\nfunction findActiveGroupByVariablesByUid(dsUid) {\n var _a;\n for (const groupByVariable of allActiveGroupByVariables.values()) {\n if (interpolate(groupByVariable, (_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return groupByVariable;\n }\n }\n return void 0;\n}\n\nexport { allActiveGroupByVariables, findActiveGroupByVariablesByUid };\n//# sourceMappingURL=findActiveGroupByVariablesByUid.js.map\n","/**\n* Copyright (c) 2025, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uFuzzy.js (μFuzzy)\n* A tiny, efficient fuzzy matcher that doesn't suck\n* https://github.com/leeoniya/uFuzzy (v1.0.18)\n*/\n\nconst cmp = (a, b) => a > b ? 1 : a < b ? -1 : 0;\n\nconst inf = Infinity;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nconst escapeRegExp = str => str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n// meh, magic tmp placeholder, must be tolerant to toLocaleLowerCase(), interSplit, and intraSplit\nconst EXACT_HERE = 'eexxaacctt';\n\nconst PUNCT_RE = /\\p{P}/gu;\n\nconst LATIN_UPPER = 'A-Z';\nconst LATIN_LOWER = 'a-z';\n\nconst COLLATE_ARGS = ['en', { numeric: true, sensitivity: 'base' }];\n\nconst swapAlpha = (str, upper, lower) => str.replace(LATIN_UPPER, upper).replace(LATIN_LOWER, lower);\n\nconst OPTS = {\n\t// whether regexps use a /u unicode flag\n\tunicode: false,\n\n\talpha: null,\n\n\t// term segmentation & punct/whitespace merging\n\tinterSplit: \"[^A-Za-z\\\\d']+\",\n\tintraSplit: \"[a-z][A-Z]\",\n\n\t// inter bounds that will be used to increase lft2/rgt2 info counters\n\tinterBound: \"[^A-Za-z\\\\d]\",\n\t// intra bounds that will be used to increase lft1/rgt1 info counters\n\tintraBound: \"[A-Za-z]\\\\d|\\\\d[A-Za-z]|[a-z][A-Z]\",\n\n\t// inter-bounds mode\n\t// 2 = strict (will only match 'man' on whitepace and punct boundaries: Mega Man, Mega_Man, mega.man)\n\t// 1 = loose (plus allowance for alpha-num and case-change boundaries: MegaMan, 0007man)\n\t// 0 = any (will match 'man' as any substring: megamaniac)\n\tinterLft: 0,\n\tinterRgt: 0,\n\n\t// allowance between terms\n\tinterChars: '.',\n\tinterIns: inf,\n\n\t// allowance between chars in terms\n\tintraChars: \"[a-z\\\\d']\", // internally case-insensitive\n\tintraIns: null,\n\n\tintraContr: \"'[a-z]{1,2}\\\\b\",\n\n\t// multi-insert or single-error mode\n\tintraMode: 0,\n\n\t// single-error bounds for errors within terms, default requires exact first char\n\tintraSlice: [1, inf],\n\n\t// single-error tolerance toggles\n\tintraSub: null,\n\tintraTrn: null,\n\tintraDel: null,\n\n\t// can post-filter matches that are too far apart in distance or length\n\t// (since intraIns is between each char, it can accum to nonsense matches)\n\tintraFilt: (term, match, index) => true, // should this also accept WIP info?\n\n\ttoUpper: str => str.toLocaleUpperCase(),\n\ttoLower: str => str.toLocaleLowerCase(),\n\tcompare: null,\n\n\t// final sorting fn\n\tsort: (info, haystack, needle, compare = cmp) => {\n\t\tlet {\n\t\t\tidx,\n\t\t\tchars,\n\t\t\tterms,\n\t\t\tinterLft2,\n\t\t\tinterLft1,\n\t\t//\tinterRgt2,\n\t\t//\tinterRgt1,\n\t\t\tstart,\n\t\t\tintraIns,\n\t\t\tinterIns,\n\t\t\tcases,\n\t\t} = info;\n\n\t\treturn idx.map((v, i) => i).sort((ia, ib) => (\n\t\t\t// most contig chars matched\n\t\t\tchars[ib] - chars[ia] ||\n\t\t\t// least char intra-fuzz (most contiguous)\n\t\t\tintraIns[ia] - intraIns[ib] ||\n\t\t\t// most prefix bounds, boosted by full term matches\n\t\t\t(\n\t\t\t\t(terms[ib] + interLft2[ib] + 0.5 * interLft1[ib]) -\n\t\t\t\t(terms[ia] + interLft2[ia] + 0.5 * interLft1[ia])\n\t\t\t) ||\n\t\t\t// highest density of match (least span)\n\t\t//\tspan[ia] - span[ib] ||\n\t\t\t// highest density of match (least term inter-fuzz)\n\t\t\tinterIns[ia] - interIns[ib] ||\n\t\t\t// earliest start of match\n\t\t\tstart[ia] - start[ib] ||\n\t\t\t// case match\n\t\t\tcases[ib] - cases[ia] ||\n\t\t\t// alphabetic\n\t\t\tcompare(haystack[idx[ia]], haystack[idx[ib]])\n\t\t));\n\t},\n};\n\nconst lazyRepeat = (chars, limit) => (\n\tlimit == 0 ? '' :\n\tlimit == 1 ? chars + '??' :\n\tlimit == inf ? chars + '*?' :\n\t chars + `{0,${limit}}?`\n);\n\nconst mode2Tpl = '(?:\\\\b|_)';\n\nfunction uFuzzy(opts) {\n\topts = Object.assign({}, OPTS, opts);\n\n\tlet {\n\t\tunicode,\n\t\tinterLft,\n\t\tinterRgt,\n\t\tintraMode,\n\t\tintraSlice,\n\t\tintraIns,\n\t\tintraSub,\n\t\tintraTrn,\n\t\tintraDel,\n\t\tintraContr,\n\t\tintraSplit: _intraSplit,\n\t\tinterSplit: _interSplit,\n\t\tintraBound: _intraBound,\n\t\tinterBound: _interBound,\n\t\tintraChars,\n\t\ttoUpper,\n\t\ttoLower,\n\t\tcompare,\n\t} = opts;\n\n\tintraIns ??= intraMode;\n\tintraSub ??= intraMode;\n\tintraTrn ??= intraMode;\n\tintraDel ??= intraMode;\n\n\tcompare ??= typeof Intl == \"undefined\" ? cmp : new Intl.Collator(...COLLATE_ARGS).compare;\n\n\tlet alpha = opts.letters ?? opts.alpha;\n\n\tif (alpha != null) {\n\t\tlet upper = toUpper(alpha);\n\t\tlet lower = toLower(alpha);\n\n\t\t_interSplit = swapAlpha(_interSplit, upper, lower);\n\t\t_intraSplit = swapAlpha(_intraSplit, upper, lower);\n\t\t_interBound = swapAlpha(_interBound, upper, lower);\n\t\t_intraBound = swapAlpha(_intraBound, upper, lower);\n\t\tintraChars = swapAlpha(intraChars, upper, lower);\n\t\tintraContr = swapAlpha(intraContr, upper, lower);\n\t}\n\n\tlet uFlag = unicode ? 'u' : '';\n\n\tconst quotedAny = '\".+?\"';\n\tconst EXACTS_RE = new RegExp(quotedAny, 'gi' + uFlag);\n\tconst NEGS_RE = new RegExp(`(?:\\\\s+|^)-(?:${intraChars}+|${quotedAny})`, 'gi' + uFlag);\n\n\tlet { intraRules } = opts;\n\n\tif (intraRules == null) {\n\t\tintraRules = p => {\n\t\t\t// default is exact term matches only\n\t\t\tlet _intraSlice = OPTS.intraSlice, // requires first char\n\t\t\t\t_intraIns = 0,\n\t\t\t\t_intraSub = 0,\n\t\t\t\t_intraTrn = 0,\n\t\t\t\t_intraDel = 0;\n\n\t\t\t// only-digits strings should match exactly, else special rules for short strings\n\t\t\tif (/[^\\d]/.test(p)) {\n\t\t\t\tlet plen = p.length;\n\n\t\t\t\t// prevent junk matches by requiring stricter rules for short terms\n\t\t\t\tif (plen <= 4) {\n\t\t\t\t\tif (plen >= 3) {\n\t\t\t\t\t\t// one swap in non-first char when 3-4 chars\n\t\t\t\t\t\t_intraTrn = Math.min(intraTrn, 1);\n\n\t\t\t\t\t\t// or one insertion when 4 chars\n\t\t\t\t\t\tif (plen == 4)\n\t\t\t\t\t\t\t_intraIns = Math.min(intraIns, 1);\n\t\t\t\t\t}\n\t\t\t\t\t// else exact match when 1-2 chars\n\t\t\t\t}\n\t\t\t\t// use supplied opts\n\t\t\t\telse {\n\t\t\t\t\t_intraSlice = intraSlice;\n\t\t\t\t\t_intraIns = intraIns,\n\t\t\t\t\t_intraSub = intraSub,\n\t\t\t\t\t_intraTrn = intraTrn,\n\t\t\t\t\t_intraDel = intraDel;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tintraSlice: _intraSlice,\n\t\t\t\tintraIns: _intraIns,\n\t\t\t\tintraSub: _intraSub,\n\t\t\t\tintraTrn: _intraTrn,\n\t\t\t\tintraDel: _intraDel,\n\t\t\t};\n\t\t};\n\t}\n\n\tlet withIntraSplit = !!_intraSplit;\n\n\tlet intraSplit = new RegExp(_intraSplit, 'g' + uFlag);\n\tlet interSplit = new RegExp(_interSplit, 'g' + uFlag);\n\n\tlet trimRe = new RegExp('^' + _interSplit + '|' + _interSplit + '$', 'g' + uFlag);\n\tlet contrsRe = new RegExp(intraContr, 'gi' + uFlag);\n\n\tconst split = (needle, keepCase = false) => {\n\t\tlet exacts = [];\n\n\t\tneedle = needle.replace(EXACTS_RE, m => {\n\t\t\texacts.push(m);\n\t\t\treturn EXACT_HERE;\n\t\t});\n\n\t\tneedle = needle.replace(trimRe, '');\n\n\t\tif (!keepCase)\n\t\t\tneedle = toLower(needle);\n\n\t\tif (withIntraSplit)\n\t\t\tneedle = needle.replace(intraSplit, m => m[0] + ' ' + m[1]);\n\n\t\tlet j = 0;\n\t\treturn needle.split(interSplit).filter(t => t != '').map(v => v === EXACT_HERE ? exacts[j++] : v);\n\t};\n\n\tconst NUM_OR_ALPHA_RE = /[^\\d]+|\\d+/g;\n\n\tconst prepQuery = (needle, capt = 0, interOR = false) => {\n\t\t// split on punct, whitespace, num-alpha, and upper-lower boundaries\n\t\tlet parts = split(needle);\n\n\t\tif (parts.length == 0)\n\t\t\treturn [];\n\n\t\t// split out any detected contractions for each term that become required suffixes\n\t\tlet contrs = Array(parts.length).fill('');\n\t\tparts = parts.map((p, pi) => p.replace(contrsRe, m => {\n\t\t\tcontrs[pi] = m;\n\t\t\treturn '';\n\t\t}));\n\n\t\t// array of regexp tpls for each term\n\t\tlet reTpl;\n\n\t\t// allows single mutations within each term\n\t\tif (intraMode == 1) {\n\t\t\treTpl = parts.map((p, pi) => {\n\t\t\t\tif (p[0] === '\"')\n\t\t\t\t\treturn escapeRegExp(p.slice(1, -1));\n\n\t\t\t\tlet reTpl = '';\n\n\t\t\t\t// split into numeric and alpha parts, so numbers are only matched as following punct or alpha boundaries, without swaps or insertions\n\t\t\t\tfor (let m of p.matchAll(NUM_OR_ALPHA_RE)) {\n\t\t\t\t\tlet p = m[0];\n\n\t\t\t\t\tlet {\n\t\t\t\t\t\tintraSlice,\n\t\t\t\t\t\tintraIns,\n\t\t\t\t\t\tintraSub,\n\t\t\t\t\t\tintraTrn,\n\t\t\t\t\t\tintraDel,\n\t\t\t\t\t} = intraRules(p);\n\n\t\t\t\t\tif (intraIns + intraSub + intraTrn + intraDel == 0)\n\t\t\t\t\t\treTpl += p + contrs[pi];\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet [lftIdx, rgtIdx] = intraSlice;\n\t\t\t\t\t\tlet lftChar = p.slice(0, lftIdx); // prefix\n\t\t\t\t\t\tlet rgtChar = p.slice(rgtIdx); // suffix\n\n\t\t\t\t\t\tlet chars = p.slice(lftIdx, rgtIdx);\n\n\t\t\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\t\t\tif (intraIns == 1 && lftChar.length == 1 && lftChar != chars[0])\n\t\t\t\t\t\t\tlftChar += '(?!' + lftChar + ')';\n\n\t\t\t\t\t\tlet numChars = chars.length;\n\n\t\t\t\t\t\tlet variants = [p];\n\n\t\t\t\t\t\t// variants with single char substitutions\n\t\t\t\t\t\tif (intraSub) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraChars + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single transpositions\n\t\t\t\t\t\tif (intraTrn) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars - 1; i++) {\n\t\t\t\t\t\t\t\tif (chars[i] != chars[i+1])\n\t\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + chars[i+1] + chars[i] + chars.slice(i + 2) + rgtChar);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char omissions\n\t\t\t\t\t\tif (intraDel) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i + 1) + '?' + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char insertions\n\t\t\t\t\t\tif (intraIns) {\n\t\t\t\t\t\t\tlet intraInsTpl = lazyRepeat(intraChars, 1);\n\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraInsTpl + chars.slice(i) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treTpl += '(?:' + variants.join('|') + ')' + contrs[pi];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t//\tconsole.log(reTpl);\n\n\t\t\t\treturn reTpl;\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet intraInsTpl = lazyRepeat(intraChars, intraIns);\n\n\t\t\t// capture at char level\n\t\t\tif (capt == 2 && intraIns > 0) {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\tintraInsTpl = ')(' + intraInsTpl + ')(';\n\t\t\t}\n\n\t\t\treTpl = parts.map((p, pi) => p[0] === '\"' ? escapeRegExp(p.slice(1, -1)) : p.split('').map((c, i, chars) => {\n\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\tif (intraIns == 1 && i == 0 && chars.length > 1 && c != chars[i+1])\n\t\t\t\t\tc += '(?!' + c + ')';\n\n\t\t\t\treturn c;\n\t\t\t}).join(intraInsTpl) + contrs[pi]);\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\t// this only helps to reduce initial matches early when they can be detected\n\t\t// TODO: might want a mode 3 that excludes _\n\t\tlet preTpl = interLft == 2 ? mode2Tpl : '';\n\t\tlet sufTpl = interRgt == 2 ? mode2Tpl : '';\n\n\t\tlet interCharsTpl = sufTpl + lazyRepeat(opts.interChars, opts.interIns) + preTpl;\n\n\t\t// capture at word level\n\t\tif (capt > 0) {\n\t\t\tif (interOR) {\n\t\t\t\t// this is basically for doing .matchAll() occurence counting and highlighting without needing permuted ooo needles\n\t\t\t\treTpl = preTpl + '(' + reTpl.join(')' + sufTpl + '|' + preTpl + '(') + ')' + sufTpl;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\treTpl = '(' + reTpl.join(')(' + interCharsTpl + ')(') + ')';\n\t\t\t\treTpl = '(.??' + preTpl + ')' + reTpl + '(' + sufTpl + '.*)'; // nit: trailing capture here assumes interIns = Inf\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treTpl = reTpl.join(interCharsTpl);\n\t\t\treTpl = preTpl + reTpl + sufTpl;\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\treturn [new RegExp(reTpl, 'i' + uFlag), parts, contrs];\n\t};\n\n\tconst filter = (haystack, needle, idxs) => {\n\n\t\tlet [query] = prepQuery(needle);\n\n\t\tif (query == null)\n\t\t\treturn null;\n\n\t\tlet out = [];\n\n\t\tif (idxs != null) {\n\t\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\t\tlet idx = idxs[i];\n\t\t\t\tquery.test(haystack[idx]) && out.push(idx);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor (let i = 0; i < haystack.length; i++)\n\t\t\t\tquery.test(haystack[i]) && out.push(i);\n\t\t}\n\n\t\treturn out;\n\t};\n\n\tlet withIntraBound = !!_intraBound;\n\n\tlet interBound = new RegExp(_interBound, uFlag);\n\tlet intraBound = new RegExp(_intraBound, uFlag);\n\n\tconst info = (idxs, haystack, needle) => {\n\n\t\tlet [query, parts, contrs] = prepQuery(needle, 1);\n\t\tlet partsCased = split(needle, true);\n\t\tlet [queryR] = prepQuery(needle, 2);\n\t\tlet partsLen = parts.length;\n\n\t\tlet _terms = Array(partsLen);\n\t\tlet _termsCased = Array(partsLen);\n\n\t\tfor (let j = 0; j < partsLen; j++) {\n\t\t\tlet part = parts[j];\n\t\t\tlet partCased = partsCased[j];\n\n\t\t\tlet term = part[0] == '\"' ? part.slice(1, -1) : part + contrs[j];\n\t\t\tlet termCased = partCased[0] == '\"' ? partCased.slice(1, -1) : partCased + contrs[j];\n\n\t\t\t_terms[j] = term;\n\t\t\t_termsCased[j] = termCased;\n\t\t}\n\n\t\tlet len = idxs.length;\n\n\t\tlet field = Array(len).fill(0);\n\n\t\tlet info = {\n\t\t\t// idx in haystack\n\t\t\tidx: Array(len),\n\n\t\t\t// start of match\n\t\t\tstart: field.slice(),\n\t\t\t// length of match\n\t\t//\tspan: field.slice(),\n\n\t\t\t// contiguous chars matched\n\t\t\tchars: field.slice(),\n\n\t\t\t// case matched in term (via term.includes(match))\n\t\t\tcases: field.slice(),\n\n\t\t\t// contiguous (no fuzz) and bounded terms (intra=0, lft2/1, rgt2/1)\n\t\t\t// excludes terms that are contiguous but have < 2 bounds (substrings)\n\t\t\tterms: field.slice(),\n\n\t\t\t// cumulative length of unmatched chars (fuzz) within span\n\t\t\tinterIns: field.slice(), // between terms\n\t\t\tintraIns: field.slice(), // within terms\n\n\t\t\t// interLft/interRgt counters\n\t\t\tinterLft2: field.slice(),\n\t\t\tinterRgt2: field.slice(),\n\t\t\tinterLft1: field.slice(),\n\t\t\tinterRgt1: field.slice(),\n\n\t\t\tranges: Array(len),\n\t\t};\n\n\t\t// might discard idxs based on bounds checks\n\t\tlet mayDiscard = interLft == 1 || interRgt == 1;\n\n\t\tlet ii = 0;\n\n\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\tlet mhstr = haystack[idxs[i]];\n\n\t\t\t// the matched parts are [full, junk, term, junk, term, junk]\n\t\t\tlet m = mhstr.match(query);\n\n\t\t\t// leading junk\n\t\t\tlet start = m.index + m[1].length;\n\n\t\t\tlet idxAcc = start;\n\t\t//\tlet span = m[0].length;\n\n\t\t\tlet disc = false;\n\t\t\tlet lft2 = 0;\n\t\t\tlet lft1 = 0;\n\t\t\tlet rgt2 = 0;\n\t\t\tlet rgt1 = 0;\n\t\t\tlet chars = 0;\n\t\t\tlet terms = 0;\n\t\t\tlet cases = 0;\n\t\t\tlet inter = 0;\n\t\t\tlet intra = 0;\n\n\t\t\tlet refine = [];\n\n\t\t\tfor (let j = 0, k = 2; j < partsLen; j++, k+=2) {\n\t\t\t\tlet group = toLower(m[k]);\n\t\t\t\tlet term = _terms[j];\n\t\t\t\tlet termCased = _termsCased[j];\n\t\t\t\tlet termLen = term.length;\n\t\t\t\tlet groupLen = group.length;\n\t\t\t\tlet fullMatch = group == term;\n\n\t\t\t\tif (m[k] == termCased)\n\t\t\t\t\tcases++;\n\n\t\t\t\t// this won't handle the case when an exact match exists across the boundary of the current group and the next junk\n\t\t\t\t// e.g. blob,ob when searching for 'bob' but finding the earlier `blob` (with extra insertion)\n\t\t\t\tif (!fullMatch && m[k+1].length >= termLen) {\n\t\t\t\t\t// probe for exact match in inter junk (TODO: maybe even in this matched part?)\n\t\t\t\t\tlet idxOf = toLower(m[k+1]).indexOf(term);\n\n\t\t\t\t\tif (idxOf > -1) {\n\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (mayDiscard || fullMatch) {\n\t\t\t\t\t// does group's left and/or right land on \\b\n\t\t\t\t\tlet lftCharIdx = idxAcc - 1;\n\t\t\t\t\tlet rgtCharIdx = idxAcc + groupLen;\n\n\t\t\t\t\tlet isPre = false;\n\t\t\t\t\tlet isSuf = false;\n\n\t\t\t\t\t// prefix info\n\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\tfullMatch && lft2++;\n\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interLft == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[lftCharIdx] + mhstr[lftCharIdx + 1])) {\n\t\t\t\t\t\t\tfullMatch && lft1++;\n\t\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interLft == 1) {\n\t\t\t\t\t\t\t\t// regexps are eager, so try to improve the match by probing forward inter junk for exact match at a boundary\n\t\t\t\t\t\t\t\tlet junk = m[k+1];\n\t\t\t\t\t\t\t\tlet junkIdx = idxAcc + groupLen;\n\n\t\t\t\t\t\t\t\tif (junk.length >= termLen) {\n\t\t\t\t\t\t\t\t\tlet idxOf = 0;\n\t\t\t\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\t\t\t\tlet re = new RegExp(term, 'ig' + uFlag);\n\n\t\t\t\t\t\t\t\t\tlet m2;\n\t\t\t\t\t\t\t\t\twhile (m2 = re.exec(junk)) {\n\t\t\t\t\t\t\t\t\t\tidxOf = m2.index;\n\n\t\t\t\t\t\t\t\t\t\tlet charIdx = junkIdx + idxOf;\n\t\t\t\t\t\t\t\t\t\tlet lftCharIdx = charIdx - 1;\n\n\t\t\t\t\t\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft2++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (intraBound.test(mhstr[lftCharIdx] + mhstr[charIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft1++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (found) {\n\t\t\t\t\t\t\t\t\t\tisPre = true;\n\n\t\t\t\t\t\t\t\t\t\t// identical to exact term refinement pass above\n\t\t\t\t\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!isPre) {\n\t\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// suffix info\n\t\t\t\t\tif (rgtCharIdx == mhstr.length || interBound.test(mhstr[rgtCharIdx])) {\n\t\t\t\t\t\tfullMatch && rgt2++;\n\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interRgt == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[rgtCharIdx - 1] + mhstr[rgtCharIdx])) {\n\t\t\t\t\t\t\tfullMatch && rgt1++;\n\t\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interRgt == 1) {\n\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fullMatch) {\n\t\t\t\t\t\tchars += termLen;\n\n\t\t\t\t\t\tif (isPre && isSuf)\n\t\t\t\t\t\t\tterms++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (groupLen > termLen)\n\t\t\t\t\tintra += groupLen - termLen; // intraFuzz\n\n\t\t\t\tif (j > 0)\n\t\t\t\t\tinter += m[k-1].length; // interFuzz\n\n\t\t\t\t// TODO: group here is lowercased, which is okay for length cmp, but not more case-sensitive filts\n\t\t\t\tif (!opts.intraFilt(term, group, idxAcc)) {\n\t\t\t\t\tdisc = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (j < partsLen - 1)\n\t\t\t\t\tidxAcc += groupLen + m[k+1].length;\n\t\t\t}\n\n\t\t\tif (!disc) {\n\t\t\t\tinfo.idx[ii] = idxs[i];\n\t\t\t\tinfo.interLft2[ii] = lft2;\n\t\t\t\tinfo.interLft1[ii] = lft1;\n\t\t\t\tinfo.interRgt2[ii] = rgt2;\n\t\t\t\tinfo.interRgt1[ii] = rgt1;\n\t\t\t\tinfo.chars[ii] = chars;\n\t\t\t\tinfo.terms[ii] = terms;\n\t\t\t\tinfo.cases[ii] = cases;\n\t\t\t\tinfo.interIns[ii] = inter;\n\t\t\t\tinfo.intraIns[ii] = intra;\n\n\t\t\t\tinfo.start[ii] = start;\n\t\t\t//\tinfo.span[ii] = span;\n\n\t\t\t\t// ranges\n\t\t\t\tlet m = mhstr.match(queryR);\n\n\t\t\t\tlet idxAcc = m.index + m[1].length;\n\n\t\t\t\tlet refLen = refine.length;\n\t\t\t\tlet ri = refLen > 0 ? 0 : Infinity;\n\t\t\t\tlet lastRi = refLen - 4;\n\n\t\t\t\tfor (let i = 2; i < m.length;) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tif (ri <= lastRi && refine[ri] == idxAcc) {\n\t\t\t\t\t\tlet groupLen = refine[ri+1];\n\t\t\t\t\t\tlet idxOf = refine[ri+2];\n\t\t\t\t\t\tlet termLen = refine[ri+3];\n\n\t\t\t\t\t\t// advance to end of original (full) group match that includes intra-junk\n\t\t\t\t\t\tlet j = i;\n\t\t\t\t\t\tlet v = '';\n\t\t\t\t\t\tfor (let _len = 0; _len < groupLen; j++) {\n\t\t\t\t\t\t\tv += m[j];\n\t\t\t\t\t\t\t_len += m[j].length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tm.splice(i, j - i, v);\n\n\t\t\t\t\t\tidxAcc += refineMatch(m, i, idxOf, termLen);\n\n\t\t\t\t\t\tri += 4;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tidxAcc += len;\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tidxAcc = m.index + m[1].length;\n\n\t\t\t\tlet ranges = info.ranges[ii] = [];\n\t\t\t\tlet from = idxAcc;\n\t\t\t\tlet to = idxAcc;\n\n\t\t\t\tfor (let i = 2; i < m.length; i++) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tidxAcc += len;\n\n\t\t\t\t\tif (i % 2 == 0)\n\t\t\t\t\t\tto = idxAcc;\n\t\t\t\t\telse if (len > 0) {\n\t\t\t\t\t\tranges.push(from, to);\n\t\t\t\t\t\tfrom = to = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (to > from)\n\t\t\t\t\tranges.push(from, to);\n\n\t\t\t\tii++;\n\t\t\t}\n\t\t}\n\n\t\t// trim arrays\n\t\tif (ii < idxs.length) {\n\t\t\tfor (let k in info)\n\t\t\t\tinfo[k] = info[k].slice(0, ii);\n\t\t}\n\n\t\treturn info;\n\t};\n\n\tconst refineMatch = (m, k, idxInNext, termLen) => {\n\t\t// shift the current group into the prior junk\n\t\tlet prepend = m[k] + m[k+1].slice(0, idxInNext);\n\t\tm[k-1] += prepend;\n\t\tm[k] = m[k+1].slice(idxInNext, idxInNext + termLen);\n\t\tm[k+1] = m[k+1].slice(idxInNext + termLen);\n\t\treturn prepend.length;\n\t};\n\n\tconst OOO_TERMS_LIMIT = 5;\n\n\t// returns [idxs, info, order]\n\tconst _search = (haystack, needle, outOfOrder, infoThresh = 1e3, preFiltered) => {\n\t\toutOfOrder = !outOfOrder ? 0 : outOfOrder === true ? OOO_TERMS_LIMIT : outOfOrder;\n\n\t\tlet needles = null;\n\t\tlet matches = null;\n\n\t\tlet negs = [];\n\n\t\tneedle = needle.replace(NEGS_RE, m => {\n\t\t\tlet neg = m.trim().slice(1);\n\n\t\t\tneg = neg[0] === '\"' ? escapeRegExp(neg.slice(1,-1)) : neg.replace(PUNCT_RE, '');\n\n\t\t\tif (neg != '')\n\t\t\t\tnegs.push(neg);\n\n\t\t\treturn '';\n\t\t});\n\n\t\tlet terms = split(needle);\n\n\t\tlet negsRe;\n\n\t\tif (negs.length > 0) {\n\t\t\tnegsRe = new RegExp(negs.join('|'), 'i' + uFlag);\n\n\t\t\tif (terms.length == 0) {\n\t\t\t\tlet idxs = [];\n\n\t\t\t\tfor (let i = 0; i < haystack.length; i++) {\n\t\t\t\t\tif (!negsRe.test(haystack[i]))\n\t\t\t\t\t\tidxs.push(i);\n\t\t\t\t}\n\n\t\t\t\treturn [idxs, null, null];\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// abort search (needle is empty after pre-processing, e.g. no alpha-numeric chars)\n\t\t\tif (terms.length == 0)\n\t\t\t\treturn [null, null, null];\n\t\t}\n\n\t//\tconsole.log(negs);\n\t//\tconsole.log(needle);\n\n\t\tif (outOfOrder > 0) {\n\t\t\t// since uFuzzy is an AND-based search, we can iteratively pre-reduce the haystack by searching\n\t\t\t// for each term in isolation before running permutations on what's left.\n\t\t\t// this is a major perf win. e.g. searching \"test man ger pp a\" goes from 570ms -> 14ms\n\t\t\tlet terms = split(needle);\n\n\t\t\tif (terms.length > 1) {\n\t\t\t\t// longest -> shortest\n\t\t\t\tlet terms2 = terms.slice().sort((a, b) => b.length - a.length);\n\n\t\t\t\tfor (let ti = 0; ti < terms2.length; ti++) {\n\t\t\t\t\t// no haystack item contained all terms\n\t\t\t\t\tif (preFiltered?.length == 0)\n\t\t\t\t\t\treturn [[], null, null];\n\n\t\t\t\t\tpreFiltered = filter(haystack, terms2[ti], preFiltered);\n\t\t\t\t}\n\n\t\t\t\t// avoid combinatorial explosion by limiting outOfOrder to 5 terms (120 max searches)\n\t\t\t\t// fall back to just filter() otherwise\n\t\t\t\tif (terms.length > outOfOrder)\n\t\t\t\t\treturn [preFiltered, null, null];\n\n\t\t\t\tneedles = permute(terms).map(perm => perm.join(' '));\n\n\t\t\t\t// filtered matches for each needle excluding same matches for prior needles\n\t\t\t\tmatches = [];\n\n\t\t\t\t// keeps track of already-matched idxs to skip in follow-up permutations\n\t\t\t\tlet matchedIdxs = new Set();\n\n\t\t\t\tfor (let ni = 0; ni < needles.length; ni++) {\n\t\t\t\t\tif (matchedIdxs.size < preFiltered.length) {\n\t\t\t\t\t\t// filter further for this needle, exclude already-matched\n\t\t\t\t\t\tlet preFiltered2 = preFiltered.filter(idx => !matchedIdxs.has(idx));\n\n\t\t\t\t\t\tlet matched = filter(haystack, needles[ni], preFiltered2);\n\n\t\t\t\t\t\tfor (let j = 0; j < matched.length; j++)\n\t\t\t\t\t\t\tmatchedIdxs.add(matched[j]);\n\n\t\t\t\t\t\tmatches.push(matched);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tmatches.push([]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// interOR\n\t//\tconsole.log(prepQuery(needle, 1, null, true));\n\n\t\t// non-ooo or ooo w/single term\n\t\tif (needles == null) {\n\t\t\tneedles = [needle];\n\t\t\tmatches = [preFiltered?.length > 0 ? preFiltered : filter(haystack, needle)];\n\t\t}\n\n\t\tlet retInfo = null;\n\t\tlet retOrder = null;\n\n\t\tif (negs.length > 0)\n\t\t\tmatches = matches.map(idxs => idxs.filter(idx => !negsRe.test(haystack[idx])));\n\n\t\tlet matchCount = matches.reduce((acc, idxs) => acc + idxs.length, 0);\n\n\t\t// rank, sort, concat\n\t\tif (matchCount <= infoThresh) {\n\t\t\tretInfo = {};\n\t\t\tretOrder = [];\n\n\t\t\tfor (let ni = 0; ni < matches.length; ni++) {\n\t\t\t\tlet idxs = matches[ni];\n\n\t\t\t\tif (idxs == null || idxs.length == 0)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet needle = needles[ni];\n\t\t\t\tlet _info = info(idxs, haystack, needle);\n\t\t\t\tlet order = opts.sort(_info, haystack, needle, compare);\n\n\t\t\t\t// offset idxs for concat'ing infos\n\t\t\t\tif (ni > 0) {\n\t\t\t\t\tfor (let i = 0; i < order.length; i++)\n\t\t\t\t\t\torder[i] += retOrder.length;\n\t\t\t\t}\n\n\t\t\t\tfor (let k in _info)\n\t\t\t\t\tretInfo[k] = (retInfo[k] ?? []).concat(_info[k]);\n\n\t\t\t\tretOrder = retOrder.concat(order);\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t[].concat(...matches),\n\t\t\tretInfo,\n\t\t\tretOrder,\n\t\t];\n\t};\n\n\treturn {\n\t\tsearch: (...args) => {\n\t\t\tlet out = _search(...args);\n\t\t\treturn out;\n\t\t},\n\t\tsplit,\n\t\tfilter,\n\t\tinfo,\n\t\tsort: opts.sort,\n\t};\n}\n\nconst latinize = (() => {\n\tlet accents = {\n\t\tA: 'ÁÀÃÂÄĄ',\n\t\ta: 'áàãâäą',\n\t\tE: 'ÉÈÊËĖ',\n\t\te: 'éèêëę',\n\t\tI: 'ÍÌÎÏĮ',\n\t\ti: 'íìîïį',\n\t\tO: 'ÓÒÔÕÖ',\n\t\to: 'óòôõö',\n\t\tU: 'ÚÙÛÜŪŲ',\n\t\tu: 'úùûüūų',\n\t\tC: 'ÇČĆ',\n\t\tc: 'çčć',\n\t\tL: 'Ł',\n\t\tl: 'ł',\n\t\tN: 'ÑŃ',\n\t\tn: 'ñń',\n\t\tS: 'ŠŚ',\n\t\ts: 'šś',\n\t\tZ: 'ŻŹ',\n\t\tz: 'żź'\n\t};\n\n\tlet accentsMap = new Map();\n\tlet accentsTpl = '';\n\n\tfor (let r in accents) {\n\t\taccents[r].split('').forEach(a => {\n\t\t\taccentsTpl += a;\n\t\t\taccentsMap.set(a, r);\n\t\t});\n\t}\n\n\tlet accentsRe = new RegExp(`[${accentsTpl}]`, 'g');\n\tlet replacer = m => accentsMap.get(m);\n\n\treturn strings => {\n\t\tif (typeof strings == 'string')\n\t\t\treturn strings.replace(accentsRe, replacer);\n\n\t\tlet out = Array(strings.length);\n\t\tfor (let i = 0; i < strings.length; i++)\n\t\t\tout[i] = strings[i].replace(accentsRe, replacer);\n\t\treturn out;\n\t};\n})();\n\n// https://stackoverflow.com/questions/9960908/permutations-in-javascript/37580979#37580979\nfunction permute(arr) {\n\tarr = arr.slice();\n\n\tlet length = arr.length,\n\t\tresult = [arr.slice()],\n\t\tc = new Array(length).fill(0),\n\t\ti = 1, k, p;\n\n\twhile (i < length) {\n\t\tif (c[i] < i) {\n\t\t\tk = i % 2 && c[i];\n\t\t\tp = arr[i];\n\t\t\tarr[i] = arr[k];\n\t\t\tarr[k] = p;\n\t\t\t++c[i];\n\t\t\ti = 1;\n\t\t\tresult.push(arr.slice());\n\t\t} else {\n\t\t\tc[i] = 0;\n\t\t\t++i;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst _mark = (part, matched) => matched ? `${part}` : part;\nconst _append = (acc, part) => acc + part;\n\nfunction highlight(str, ranges, mark = _mark, accum = '', append = _append) {\n\taccum = append(accum, mark(str.substring(0, ranges[0]), false)) ?? accum;\n\n\tfor (let i = 0; i < ranges.length; i+=2) {\n\t\tlet fr = ranges[i];\n\t\tlet to = ranges[i+1];\n\n\t\taccum = append(accum, mark(str.substring(fr, to), true)) ?? accum;\n\n\t\tif (i < ranges.length - 3)\n\t\t\taccum = append(accum, mark(str.substring(ranges[i+1], ranges[i+2]), false)) ?? accum;\n\t}\n\n\taccum = append(accum, mark(str.substring(ranges[ranges.length - 1]), false)) ?? accum;\n\n\treturn accum;\n}\n\nuFuzzy.latinize = latinize;\nuFuzzy.permute = arr => {\n\tlet idxs = permute([...Array(arr.length).keys()]).sort((a,b) => {\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] != b[i])\n\t\t\t\treturn a[i] - b[i];\n\t\t}\n\t\treturn 0;\n\t});\n\n\treturn idxs.map(pi => pi.map(i => arr[i]));\n};\nuFuzzy.highlight = highlight;\n\nexport { uFuzzy as default };\n","import uFuzzy from '@leeoniya/ufuzzy';\n\nconst REGEXP_NON_ASCII = /[^ -~]/m;\nconst REGEXP_ONLY_SYMBOLS = /^[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]+$/m;\nconst outOfOrderLimit = 5;\nconst maxNeedleLength = 25;\nconst maxFuzzyTerms = 5;\nconst rankThreshold = 1e4;\nconst uf = new uFuzzy({ intraMode: 1 });\nfunction fuzzyFind(options, haystack, needle) {\n let matches = [];\n if (needle === \"\") {\n matches = options;\n } else if (\n // contains non-ascii\n REGEXP_NON_ASCII.test(needle) || // is only ascii symbols (operators)\n REGEXP_ONLY_SYMBOLS.test(needle) || // too long (often copy-paste from somewhere)\n needle.length > maxNeedleLength || uf.split(needle).length > maxFuzzyTerms\n ) {\n for (let i = 0; i < haystack.length; i++) {\n let item = haystack[i];\n if (item.includes(needle)) {\n matches.push(options[i]);\n }\n }\n } else {\n const [idxs, info, order] = uf.search(haystack, needle, outOfOrderLimit, rankThreshold);\n if (idxs == null ? void 0 : idxs.length) {\n if (info && order) {\n matches = order.map((idx) => options[info.idx[idx]]);\n } else {\n matches = idxs.map((idx) => options[idx]);\n }\n }\n }\n return matches;\n}\n\nexport { fuzzyFind };\n//# sourceMappingURL=filter.js.map\n","import { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE } from '../constants.js';\nimport { fuzzyFind } from '../filter.js';\n\nfunction getOptionSearcher(options, includeAll = false) {\n let allOptions = options;\n if (includeAll) {\n allOptions = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...allOptions];\n }\n const haystack = allOptions.map((o) => o.label);\n return (search) => fuzzyFind(allOptions, haystack, search);\n}\n\nexport { getOptionSearcher };\n//# sourceMappingURL=getOptionSearcher.js.map\n","import { t } from '@grafana/i18n';\nimport { isArray } from 'lodash';\nimport React, { useMemo, useState, useEffect } from 'react';\nimport { useTheme2, getSelectStyles, useStyles2, Checkbox, MultiSelect, Select, ToggleAllState } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { css, cx } from '@emotion/css';\nimport { getOptionSearcher } from './getOptionSearcher.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\nimport { VARIABLE_VALUE_CHANGED_INTERACTION } from '../../behaviors/SceneRenderProfiler.js';\n\nconst filterNoOp = () => true;\nconst filterAll = (v) => v.value !== \"$__all\";\nconst determineToggleAllState = (selectedValues, options) => {\n if (selectedValues.length === options.filter(filterAll).length) {\n return ToggleAllState.allSelected;\n } else if (selectedValues.length === 0 || selectedValues.length === 1 && selectedValues[0] && selectedValues[0].value === \"$__all\") {\n return ToggleAllState.noneSelected;\n } else {\n return ToggleAllState.indeterminate;\n }\n};\nfunction toSelectableValue(value, label) {\n return {\n value,\n label: label != null ? label : String(value)\n };\n}\nfunction VariableValueSelect({ model, state }) {\n const { value, text, key, options, includeAll, isReadOnly, allowCustomValue = true } = state;\n const [inputValue, setInputValue] = useState(\"\");\n const [hasCustomValue, setHasCustomValue] = useState(false);\n const selectValue = toSelectableValue(value, String(text));\n const queryController = sceneGraph.getQueryController(model);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n return value2;\n };\n const filteredOptions = optionSearcher(inputValue);\n const onOpenMenu = () => {\n if (hasCustomValue) {\n setInputValue(String(text));\n }\n };\n const onCloseMenu = () => {\n setInputValue(\"\");\n };\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n id: key,\n isValidNewOption: (inputValue2) => inputValue2.trim().length > 0,\n placeholder: t(\"grafana-scenes.variables.variable-value-select.placeholder-select-value\", \"Select value\"),\n width: \"auto\",\n disabled: isReadOnly,\n value: selectValue,\n inputValue,\n allowCustomValue,\n virtualized: true,\n filterOption: filterNoOp,\n tabSelectsValue: false,\n onInputChange,\n onOpenMenu,\n onCloseMenu,\n options: filteredOptions,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${value}`),\n onChange: (newValue) => {\n model.changeValueTo(newValue.value, newValue.label, true);\n queryController == null ? void 0 : queryController.startProfile(VARIABLE_VALUE_CHANGED_INTERACTION);\n if (hasCustomValue !== newValue.__isNew__) {\n setHasCustomValue(newValue.__isNew__);\n }\n }\n }\n );\n}\nfunction VariableValueSelectMulti({\n model,\n state\n}) {\n const {\n value,\n options,\n key,\n maxVisibleValues,\n noValueOnClear,\n includeAll,\n isReadOnly,\n allowCustomValue = true\n } = state;\n const arrayValue = useMemo(() => isArray(value) ? value : [value], [value]);\n const [uncommittedValue, setUncommittedValue] = useState(arrayValue);\n const [inputValue, setInputValue] = useState(\"\");\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n useEffect(() => {\n setUncommittedValue(arrayValue);\n }, [arrayValue]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const placeholder = options.length > 0 ? \"Select value\" : \"\";\n const filteredOptions = optionSearcher(inputValue);\n return /* @__PURE__ */ React.createElement(\n MultiSelect,\n {\n id: key,\n placeholder,\n width: \"auto\",\n inputValue,\n disabled: isReadOnly,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n allowCustomValue,\n toggleAllOptions: {\n enabled: true,\n optionsFilter: filterAll,\n determineToggleAllState\n },\n options: filteredOptions,\n closeMenuOnSelect: false,\n components: { Option: OptionWithCheckbox },\n isClearable: true,\n hideSelectedOptions: false,\n onInputChange,\n onBlur: () => {\n model.changeValueTo(uncommittedValue, void 0, true);\n },\n filterOption: filterNoOp,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${uncommittedValue}`),\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue.map((x) => x.value));\n }\n }\n );\n}\nconst OptionWithCheckbox = ({\n children,\n data,\n innerProps,\n innerRef,\n isFocused,\n isSelected,\n indeterminate,\n renderOptionLabel\n}) => {\n var _a;\n const { onMouseMove, onMouseOver, ...rest } = innerProps;\n const theme = useTheme2();\n const selectStyles = getSelectStyles(theme);\n const optionStyles = useStyles2(getOptionStyles);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n ref: innerRef,\n className: cx(selectStyles.option, isFocused && selectStyles.optionFocused),\n ...rest,\n \"data-testid\": \"data-testid Select option\",\n title: data.title\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: optionStyles.checkbox }, /* @__PURE__ */ React.createElement(Checkbox, { indeterminate, value: isSelected })),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: selectStyles.optionBody,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(\n (_a = data.label) != null ? _a : String(data.value)\n )\n },\n /* @__PURE__ */ React.createElement(\"span\", null, children)\n )\n );\n};\nOptionWithCheckbox.displayName = \"SelectMenuOptions\";\nconst getOptionStyles = (theme) => ({\n checkbox: css({\n marginRight: theme.spacing(2)\n })\n});\nfunction MultiOrSingleValueSelect({ model }) {\n const state = model.useState();\n if (state.isMulti) {\n return /* @__PURE__ */ React.createElement(VariableValueSelectMulti, { model, state });\n } else {\n return /* @__PURE__ */ React.createElement(VariableValueSelect, { model, state });\n }\n}\n\nexport { MultiOrSingleValueSelect, OptionWithCheckbox, VariableValueSelect, VariableValueSelectMulti, toSelectableValue };\n//# sourceMappingURL=VariableValueSelect.js.map\n","import { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass GroupByVariableUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n }\n getRestorableKey() {\n return `restorable-var-${this._sceneObject.state.name}`;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey(), this.getRestorableKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n return {\n [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),\n [this.getRestorableKey()]: this._sceneObject.state.defaultValue ? this._sceneObject.state.restorable ? \"true\" : \"false\" : null\n };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n let restorableValue = values[this.getRestorableKey()];\n if (urlValue != null) {\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n const { values: values2, texts } = fromUrlValues(urlValue);\n if (this._sceneObject.state.defaultValue && (restorableValue === \"false\" || restorableValue === void 0)) {\n return;\n }\n if (restorableValue === \"false\") {\n this._sceneObject.changeValueTo([], [], false);\n return;\n }\n this._sceneObject.changeValueTo(values2, texts);\n }\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\nfunction toUrlValues(values, texts) {\n values = Array.isArray(values) ? values : [values];\n texts = Array.isArray(texts) ? texts : [texts];\n return values.map((value, idx) => {\n if (value === void 0 || value === null) {\n return \"\";\n }\n value = String(value);\n let text = texts[idx];\n text = text === void 0 || text === null ? value : String(text);\n return toUrlCommaDelimitedString(value, text);\n });\n}\nfunction fromUrlValues(urlValues) {\n urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];\n return urlValues.reduce(\n (acc, urlValue) => {\n const [value, label] = (urlValue != null ? urlValue : \"\").split(\",\");\n acc.values.push(unescapeUrlDelimiters(value));\n acc.texts.push(unescapeUrlDelimiters(label != null ? label : value));\n return acc;\n },\n {\n values: [],\n texts: []\n }\n );\n}\n\nexport { GroupByVariableUrlSyncHandler };\n//# sourceMappingURL=GroupByVariableUrlSyncHandler.js.map\n","import { isFiltersRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedFiltersRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isFiltersRequestEnricher(root)) {\n return root.enrichFiltersRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedFiltersRequest };\n//# sourceMappingURL=getEnrichedFiltersRequest.js.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar _value;\nclass SafeSerializableSceneObject {\n constructor(value) {\n __privateAdd(this, _value);\n this.text = \"__sceneObject\";\n this.valueOf = () => {\n return __privateGet(this, _value);\n };\n __privateSet(this, _value, value);\n }\n toString() {\n return void 0;\n }\n get value() {\n return this;\n }\n}\n_value = new WeakMap();\n\nexport { SafeSerializableSceneObject };\n//# sourceMappingURL=SafeSerializableSceneObject.js.map\n","import { config } from '@grafana/runtime';\nimport { SafeSerializableSceneObject } from './SafeSerializableSceneObject.js';\n\nfunction shouldWrapInSafeSerializableSceneObject(grafanaVersion) {\n const pattern = /^(\\d+)\\.(\\d+)\\.(\\d+)/;\n const match = grafanaVersion.match(pattern);\n if (!match) {\n return false;\n }\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n if (major === 11) {\n return minor === 0 && patch >= 4 || minor === 1 && patch >= 2 || minor > 1;\n }\n if (major === 10) {\n return minor === 4 && patch >= 8 || minor >= 5;\n }\n return major > 11;\n}\nfunction wrapInSafeSerializableSceneObject(sceneObject) {\n const version = config.buildInfo.version;\n if (shouldWrapInSafeSerializableSceneObject(version)) {\n return new SafeSerializableSceneObject(sceneObject);\n }\n return { value: sceneObject, text: \"__sceneObject\" };\n}\n\nexport { shouldWrapInSafeSerializableSceneObject, wrapInSafeSerializableSceneObject };\n//# sourceMappingURL=wrapInSafeSerializableSceneObject.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { useTheme2, getInputStyles, IconButton, Tooltip, Icon } from '@grafana/ui';\nimport { isArray } from 'lodash';\nimport { css, cx } from '@emotion/css';\n\nfunction DefaultGroupByCustomIndicatorContainer(props) {\n const { model } = props;\n const theme = useTheme2();\n const styles = getStyles(theme);\n const inputStyles = getInputStyles({ theme, invalid: false });\n const value = isArray(model.state.value) ? model.state.value : model.state.value ? [model.state.value] : [];\n let buttons = [];\n if (value && value.length) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n IconButton,\n {\n \"aria-label\": t(\"grafana-scenes.variables.default-group-by-custom-indicator-container.aria-label-clear\", \"clear\"),\n key: \"clear\",\n name: \"times\",\n size: \"md\",\n className: styles.clearIcon,\n onClick: (e) => {\n model.changeValueTo([], void 0, true);\n if (model.checkIfRestorable([])) {\n model.setState({ restorable: true });\n }\n }\n }\n )\n );\n }\n if (model.state.restorable) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n IconButton,\n {\n onClick: (e) => {\n props.model.restoreDefaultValues();\n },\n onKeyDownCapture: (e) => {\n if (e.key === \"Enter\") {\n props.model.restoreDefaultValues();\n }\n },\n key: \"restore\",\n name: \"history\",\n size: \"md\",\n className: styles.clearIcon,\n tooltip: t(\n \"grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip-restore-groupby-set-by-this-dashboard\",\n \"Restore groupby set by this dashboard.\"\n )\n }\n )\n );\n }\n if (!model.state.restorable) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n Tooltip,\n {\n key: \"tooltip\",\n content: t(\n \"grafana-scenes.variables.default-group-by-custom-indicator-container.tooltip\",\n \"Applied by default in this dashboard. If edited, it carries over to other dashboards.\"\n ),\n placement: \"bottom\"\n },\n /* @__PURE__ */ React.createElement(Icon, { name: \"info-circle\", size: \"md\" })\n )\n );\n }\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n onMouseDown: (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n className: cx(\n inputStyles.suffix,\n css({\n position: \"relative\"\n })\n )\n },\n buttons\n );\n}\nconst getStyles = (theme) => ({\n clearIcon: css({\n color: theme.colors.action.disabledText,\n cursor: \"pointer\",\n \"&:hover:before\": {\n backgroundColor: \"transparent\"\n },\n \"&:hover\": {\n color: theme.colors.text.primary\n }\n })\n});\n\nexport { DefaultGroupByCustomIndicatorContainer };\n//# sourceMappingURL=DefaultGroupByCustomIndicatorContainer.js.map\n","import { t } from '@grafana/i18n';\nimport React, { useMemo, useState, useEffect } from 'react';\nimport { allActiveGroupByVariables } from './findActiveGroupByVariablesByUid.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { lastValueFrom, map, of, from, mergeMap, tap, take } from 'rxjs';\nimport { getDataSource } from '../../utils/getDataSource.js';\nimport { MultiSelect, Select } from '@grafana/ui';\nimport { isArray, isEqual } from 'lodash';\nimport { handleOptionGroups, dataFromResponse, getQueriesForVariables, responseHasError } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\nimport { GroupByVariableUrlSyncHandler } from './GroupByVariableUrlSyncHandler.js';\nimport { getOptionSearcher } from '../components/getOptionSearcher.js';\nimport { getEnrichedFiltersRequest } from '../getEnrichedFiltersRequest.js';\nimport { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSerializableSceneObject.js';\nimport { DefaultGroupByCustomIndicatorContainer } from './DefaultGroupByCustomIndicatorContainer.js';\n\nclass GroupByVariable extends MultiValueVariable {\n constructor(initialState) {\n super({\n isMulti: true,\n name: \"\",\n value: [],\n text: [],\n options: [],\n datasource: null,\n baseFilters: [],\n applyMode: \"auto\",\n layout: \"horizontal\",\n type: \"groupby\",\n ...initialState,\n noValueOnClear: true\n });\n this.isLazy = true;\n this._urlSync = new GroupByVariableUrlSyncHandler(this);\n this._activationHandler = () => {\n if (this.state.defaultValue) {\n if (this.checkIfRestorable(this.state.value)) {\n this.setState({ restorable: true });\n }\n }\n return () => {\n if (this.state.defaultValue) {\n this.restoreDefaultValues();\n }\n };\n };\n /**\n * Get possible keys given current filters. Do not call from plugins directly\n */\n this._getKeys = async (ds) => {\n var _a, _b, _c;\n const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));\n if (override && override.replace) {\n return override.values;\n }\n if (this.state.defaultOptions) {\n return this.state.defaultOptions.concat(dataFromResponse((_c = override == null ? void 0 : override.values) != null ? _c : []));\n }\n if (!ds.getTagKeys) {\n return [];\n }\n const queries = getQueriesForVariables(this);\n const otherFilters = this.state.baseFilters || [];\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const response = await ds.getTagKeys({\n filters: otherFilters,\n queries,\n timeRange,\n scopes: sceneGraph.getScopes(this),\n ...getEnrichedFiltersRequest(this)\n });\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n let keys = dataFromResponse(response);\n if (override) {\n keys = keys.concat(dataFromResponse(override.values));\n }\n const tagKeyRegexFilter = this.state.tagKeyRegexFilter;\n if (tagKeyRegexFilter) {\n keys = keys.filter((f) => f.text.match(tagKeyRegexFilter));\n }\n return keys;\n };\n if (this.state.defaultValue) {\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, false);\n }\n if (this.state.applyMode === \"auto\") {\n this.addActivationHandler(() => {\n allActiveGroupByVariables.add(this);\n return () => allActiveGroupByVariables.delete(this);\n });\n }\n this.addActivationHandler(this._activationHandler);\n }\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this._updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n _updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText } = this.state;\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue != null ? currentValue : [],\n text: currentText != null ? currentText : []\n };\n this.setState(stateUpdate);\n }\n getValueOptions(args) {\n if (this.state.defaultOptions) {\n return of(\n this.state.defaultOptions.map((o) => ({\n label: o.text,\n value: String(o.value),\n group: o.group\n }))\n );\n }\n this.setState({ loading: true, error: null });\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: wrapInSafeSerializableSceneObject(this)\n })\n ).pipe(\n mergeMap((ds) => {\n return from(this._getKeys(ds)).pipe(\n tap((response) => {\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n }),\n map((response) => dataFromResponse(response)),\n take(1),\n mergeMap((data) => {\n const a = data.map((i) => {\n return {\n label: i.text,\n value: i.value ? String(i.value) : i.text,\n group: i.group\n };\n });\n return of(a);\n })\n );\n })\n );\n }\n // This method is related to the defaultValue property. We check if the current value\n // is different from the default value. If it is, the groupBy will show a button\n // allowing the user to restore the default values.\n checkIfRestorable(values) {\n var _a, _b, _c, _d;\n const originalValues = isArray((_a = this.state.defaultValue) == null ? void 0 : _a.value) ? (_b = this.state.defaultValue) == null ? void 0 : _b.value : ((_c = this.state.defaultValue) == null ? void 0 : _c.value) ? [(_d = this.state.defaultValue) == null ? void 0 : _d.value] : [];\n const vals = isArray(values) ? values : [values];\n if (vals.length !== originalValues.length) {\n return true;\n }\n return !isEqual(vals, originalValues);\n }\n restoreDefaultValues() {\n this.setState({ restorable: false });\n if (!this.state.defaultValue) {\n return;\n }\n this.changeValueTo(this.state.defaultValue.value, this.state.defaultValue.text, true);\n }\n /**\n * Allows clearing the value of the variable to an empty value. Overrides default behavior of a MultiValueVariable\n */\n getDefaultMultiState(options) {\n return { value: [], text: [] };\n }\n}\nGroupByVariable.Component = GroupByVariableRenderer;\nfunction GroupByVariableRenderer({ model }) {\n const {\n value,\n text,\n key,\n isMulti = true,\n maxVisibleValues,\n noValueOnClear,\n options,\n includeAll,\n allowCustomValue = true,\n defaultValue\n } = model.useState();\n const values = useMemo(() => {\n const arrayValue = isArray(value) ? value : [value];\n const arrayText = isArray(text) ? text : [text];\n return arrayValue.map((value2, idx) => {\n var _a;\n return {\n value: value2,\n label: String((_a = arrayText[idx]) != null ? _a : value2)\n };\n });\n }, [value, text]);\n const [isFetchingOptions, setIsFetchingOptions] = useState(false);\n const [isOptionsOpen, setIsOptionsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const [uncommittedValue, setUncommittedValue] = useState(values);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n const hasDefaultValue = defaultValue !== void 0;\n useEffect(() => {\n setUncommittedValue(values);\n }, [values]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const filteredOptions = useMemo(\n () => handleOptionGroups(optionSearcher(inputValue).map(toSelectableValue)),\n [optionSearcher, inputValue]\n );\n return isMulti ? /* @__PURE__ */ React.createElement(\n MultiSelect,\n {\n \"aria-label\": t(\n \"grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector\",\n \"Group by selector\"\n ),\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: t(\n \"grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label\",\n \"Group by label\"\n ),\n width: \"auto\",\n allowCustomValue,\n inputValue,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: false,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n isLoading: isFetchingOptions,\n components: {\n Option: OptionWithCheckbox,\n ...hasDefaultValue ? {\n IndicatorsContainer: () => /* @__PURE__ */ React.createElement(DefaultGroupByCustomIndicatorContainer, { model })\n } : {}\n },\n onInputChange,\n onBlur: () => {\n model.changeValueTo(\n uncommittedValue.map((x) => x.value),\n uncommittedValue.map((x) => x.label),\n true\n );\n const restorable = model.checkIfRestorable(uncommittedValue.map((v) => v.value));\n if (restorable !== model.state.restorable) {\n model.setState({ restorable });\n }\n },\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue);\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n }\n ) : /* @__PURE__ */ React.createElement(\n Select,\n {\n \"aria-label\": t(\n \"grafana-scenes.variables.group-by-variable-renderer.aria-label-group-by-selector\",\n \"Group by selector\"\n ),\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: t(\n \"grafana-scenes.variables.group-by-variable-renderer.placeholder-group-by-label\",\n \"Group by label\"\n ),\n width: \"auto\",\n inputValue,\n value: uncommittedValue && uncommittedValue.length > 0 ? uncommittedValue : null,\n allowCustomValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: true,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n noValueOnClear: true,\n isLoading: isFetchingOptions,\n onInputChange,\n onChange: (newValue, action) => {\n if (action.action === \"clear\") {\n setUncommittedValue([]);\n if (noValueOnClear) {\n model.changeValueTo([]);\n }\n return;\n }\n if (newValue == null ? void 0 : newValue.value) {\n setUncommittedValue([newValue]);\n model.changeValueTo([newValue.value], newValue.label ? [newValue.label] : void 0);\n }\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n }\n );\n}\nconst filterNoOp = () => true;\nfunction toSelectableValue(input) {\n const { label, value, group } = input;\n const result = {\n label,\n value\n };\n if (group) {\n result.group = group;\n }\n return result;\n}\n\nexport { GroupByVariable, GroupByVariableRenderer };\n//# sourceMappingURL=GroupByVariable.js.map\n","import { t } from '@grafana/i18n';\nimport { Tooltip, Icon } from '@grafana/ui';\nimport React from 'react';\n\nfunction LoadingIndicator(props) {\n return /* @__PURE__ */ React.createElement(Tooltip, { content: t(\"grafana-scenes.utils.loading-indicator.content-cancel-query\", \"Cancel query\") }, /* @__PURE__ */ React.createElement(\n Icon,\n {\n className: \"spin-clockwise\",\n name: \"sync\",\n size: \"xs\",\n role: \"button\",\n onMouseDown: (e) => {\n props.onCancel(e);\n }\n }\n ));\n}\n\nexport { LoadingIndicator };\n//# sourceMappingURL=LoadingIndicator.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { useStyles2, useTheme2, Tooltip, Icon, IconButton } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { css, cx } from '@emotion/css';\nimport { LoadingIndicator } from './LoadingIndicator.js';\n\nfunction ControlsLabel(props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const isVertical = props.layout === \"vertical\";\n const loadingIndicator = Boolean(props.isLoading) ? /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: { marginLeft: theme.spacing(1), marginTop: \"-1px\" },\n \"aria-label\": selectors.components.LoadingIndicator.icon\n },\n /* @__PURE__ */ React.createElement(\n LoadingIndicator,\n {\n onCancel: (e) => {\n var _a;\n e.preventDefault();\n e.stopPropagation();\n (_a = props.onCancel) == null ? void 0 : _a.call(props);\n }\n }\n )\n ) : null;\n let errorIndicator = null;\n if (props.error) {\n errorIndicator = /* @__PURE__ */ React.createElement(Tooltip, { content: props.error, placement: \"bottom\" }, /* @__PURE__ */ React.createElement(Icon, { className: styles.errorIcon, name: \"exclamation-triangle\" }));\n }\n let descriptionIndicator = null;\n if (props.description) {\n descriptionIndicator = /* @__PURE__ */ React.createElement(Tooltip, { content: props.description, placement: isVertical ? \"top\" : \"bottom\" }, /* @__PURE__ */ React.createElement(Icon, { className: styles.normalIcon, name: \"info-circle\" }));\n }\n const testId = typeof props.label === \"string\" ? selectors.pages.Dashboard.SubMenu.submenuItemLabels(props.label) : \"\";\n let labelElement;\n if (isVertical) {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", { className: cx(styles.verticalLabel, props.className), \"data-testid\": testId, htmlFor: props.htmlFor }, props.prefix, props.label, descriptionIndicator, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, { name: props.icon, className: styles.normalIcon }), loadingIndicator, props.onRemove && /* @__PURE__ */ React.createElement(\n IconButton,\n {\n variant: \"secondary\",\n size: \"xs\",\n name: \"times\",\n onClick: props.onRemove,\n tooltip: t(\"grafana-scenes.utils.controls-label.tooltip-remove\", \"Remove\")\n }\n ), props.suffix);\n } else {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", { className: cx(styles.horizontalLabel, props.className), \"data-testid\": testId, htmlFor: props.htmlFor }, props.prefix, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, { name: props.icon, className: styles.normalIcon }), props.label, descriptionIndicator, loadingIndicator, props.suffix);\n }\n return labelElement;\n}\nconst getStyles = (theme) => ({\n horizontalLabel: css({\n background: theme.isDark ? theme.colors.background.primary : theme.colors.background.secondary,\n display: `flex`,\n alignItems: \"center\",\n padding: theme.spacing(0, 1),\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n height: theme.spacing(theme.components.height.md),\n lineHeight: theme.spacing(theme.components.height.md),\n borderRadius: `${theme.shape.radius.default} 0 0 ${theme.shape.radius.default}`,\n border: `1px solid ${theme.components.input.borderColor}`,\n position: \"relative\",\n // To make the border line up with the input border\n right: -1,\n whiteSpace: \"nowrap\",\n gap: theme.spacing(0.5)\n }),\n verticalLabel: css({\n display: `flex`,\n alignItems: \"center\",\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n lineHeight: theme.typography.bodySmall.lineHeight,\n whiteSpace: \"nowrap\",\n marginBottom: theme.spacing(0.5),\n gap: theme.spacing(1)\n }),\n errorIcon: css({\n color: theme.colors.error.text\n }),\n normalIcon: css({\n color: theme.colors.text.secondary\n })\n});\n\nexport { ControlsLabel };\n//# sourceMappingURL=ControlsLabel.js.map\n","import { fuzzyFind } from '../filter.js';\n\nfunction getAdhocOptionSearcher(options) {\n const haystack = options.map((o) => {\n var _a;\n return (_a = o.label) != null ? _a : String(o.value);\n });\n return (search) => fuzzyFind(options, haystack, search);\n}\n\nexport { getAdhocOptionSearcher };\n//# sourceMappingURL=getAdhocOptionSearcher.js.map\n","import { t } from '@grafana/i18n';\nimport React, { useState, useMemo } from 'react';\nimport { isMultiValueOperator } from './AdHocFiltersVariable.js';\nimport { useStyles2, Select, Field, Button } from '@grafana/ui';\nimport { css, cx } from '@emotion/css';\nimport { ControlsLabel } from '../../utils/ControlsLabel.js';\nimport { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';\nimport { handleOptionGroups } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\n\nfunction keyLabelToOption(key, label) {\n return key !== \"\" ? {\n value: key,\n label: label || key\n } : null;\n}\nconst filterNoOp = () => true;\nfunction AdHocFilterRenderer({ filter, model }) {\n var _a, _b, _c, _d, _e;\n const styles = useStyles2(getStyles);\n const [keys, setKeys] = useState([]);\n const [values, setValues] = useState([]);\n const [isKeysLoading, setIsKeysLoading] = useState(false);\n const [isValuesLoading, setIsValuesLoading] = useState(false);\n const [isKeysOpen, setIsKeysOpen] = useState(false);\n const [isValuesOpen, setIsValuesOpen] = useState(false);\n const [isOperatorOpen, setIsOperatorOpen] = useState(false);\n const [valueInputValue, setValueInputValue] = useState(\"\");\n const [valueHasCustomValue, setValueHasCustomValue] = useState(false);\n const [uncommittedValue, setUncommittedValue] = useState(\n filter.values ? filter.values.map((value, index) => {\n var _a2;\n return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);\n }) : []\n );\n const isMultiValue = isMultiValueOperator(filter.operator);\n const keyValue = keyLabelToOption(filter.key, filter.keyLabel);\n const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);\n const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);\n const onAddCustomValue = model.state.onAddCustomValue;\n const onValueInputChange = (value, { action }) => {\n if (action === \"input-change\") {\n setValueInputValue(value);\n }\n return value;\n };\n const onOperatorChange = (v) => {\n var _a2, _b2;\n const existingOperator = filter.operator;\n const newOperator = v.value;\n const update = { operator: newOperator };\n if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {\n update.value = \"\";\n update.valueLabels = [\"\"];\n update.values = void 0;\n setUncommittedValue([]);\n } else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {\n update.values = [filter.value];\n setUncommittedValue([\n {\n value: filter.value,\n label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value\n }\n ]);\n }\n model._updateFilter(filter, update);\n };\n const filteredValueOptions = useMemo(\n () => handleOptionGroups(optionSearcher(valueInputValue)),\n [optionSearcher, valueInputValue]\n );\n const multiValueProps = {\n isMulti: true,\n value: uncommittedValue,\n components: {\n Option: OptionWithCheckbox\n },\n hideSelectedOptions: false,\n closeMenuOnSelect: false,\n openMenuOnFocus: false,\n onChange: (v) => {\n setUncommittedValue(v);\n if (v.some((value) => value.__isNew__)) {\n setValueInputValue(\"\");\n }\n },\n onBlur: () => {\n var _a2, _b2;\n model._updateFilter(filter, {\n value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : \"\",\n // TODO remove expect-error when we're on the latest version of @grafana/data\n values: uncommittedValue.map((option) => option.value),\n valueLabels: uncommittedValue.map((option) => option.label)\n });\n }\n };\n const valueSelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n virtualized: true,\n allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,\n isValidNewOption: (inputValue) => inputValue.trim().length > 0,\n allowCreateWhileLoading: true,\n formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,\n disabled: model.state.readOnly,\n className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n value: valueValue,\n filterOption: filterNoOp,\n placeholder: t(\n \"grafana-scenes.variables.ad-hoc-filter-renderer.value-select.placeholder-select-value\",\n \"Select value\"\n ),\n options: filteredValueOptions,\n inputValue: valueInputValue,\n onInputChange: onValueInputChange,\n onChange: (v) => {\n if (onAddCustomValue && v.__isNew__) {\n model._updateFilter(filter, onAddCustomValue(v, filter));\n } else {\n model._updateFilter(filter, {\n value: v.value,\n valueLabels: v.label ? [v.label] : [v.value]\n });\n }\n if (valueHasCustomValue !== v.__isNew__) {\n setValueHasCustomValue(v.__isNew__);\n }\n },\n isOpen: isValuesOpen && !isValuesLoading,\n isLoading: isValuesLoading,\n openMenuOnFocus: true,\n onOpenMenu: async () => {\n var _a2;\n setIsValuesLoading(true);\n setIsValuesOpen(true);\n const values2 = await model._getValuesFor(filter);\n setIsValuesLoading(false);\n setValues(values2);\n if (valueHasCustomValue) {\n setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : \"\");\n }\n },\n onCloseMenu: () => {\n setIsValuesOpen(false);\n setValueInputValue(\"\");\n },\n ...isMultiValue && multiValueProps\n }\n );\n const keySelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n key: `${isValuesLoading ? \"loading\" : \"loaded\"}`,\n disabled: model.state.readOnly,\n className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,\n value: keyValue,\n placeholder: t(\n \"grafana-scenes.variables.ad-hoc-filter-renderer.key-select.placeholder-select-label\",\n \"Select label\"\n ),\n options: handleOptionGroups(keys),\n onChange: (v) => {\n model._updateFilter(filter, {\n key: v.value,\n keyLabel: v.label,\n // clear value if key has changed\n value: \"\",\n valueLabels: [\"\"],\n values: void 0\n });\n setUncommittedValue([]);\n },\n autoFocus: filter.key === \"\",\n isOpen: isKeysOpen && !isKeysLoading,\n isLoading: isKeysLoading,\n onOpenMenu: async () => {\n setIsKeysOpen(true);\n setIsKeysLoading(true);\n const keys2 = await model._getKeys(filter.key);\n setIsKeysLoading(false);\n setKeys(keys2);\n },\n onCloseMenu: () => {\n setIsKeysOpen(false);\n },\n onBlur: () => {\n if (filter.key === \"\") {\n model._removeFilter(filter);\n }\n },\n openMenuOnFocus: true\n }\n );\n const operatorSelect = /* @__PURE__ */ React.createElement(\n Select,\n {\n className: cx(styles.operator, {\n [styles.widthWhenOpen]: isOperatorOpen\n }),\n value: filter.operator,\n disabled: model.state.readOnly,\n options: model._getOperators(),\n onChange: onOperatorChange,\n onOpenMenu: () => {\n setIsOperatorOpen(true);\n },\n onCloseMenu: () => {\n setIsOperatorOpen(false);\n }\n }\n );\n if (model.state.layout === \"vertical\") {\n if (filter.key) {\n const label = /* @__PURE__ */ React.createElement(ControlsLabel, { layout: \"vertical\", label: (_d = filter.key) != null ? _d : \"\", onRemove: () => model._removeFilter(filter) });\n return /* @__PURE__ */ React.createElement(Field, { label, \"data-testid\": `AdHocFilter-${filter.key}`, className: styles.field }, /* @__PURE__ */ React.createElement(\"div\", { className: styles.wrapper }, operatorSelect, valueSelect));\n } else {\n return /* @__PURE__ */ React.createElement(\n Field,\n {\n label: t(\"grafana-scenes.variables.ad-hoc-filter-renderer.label-select-label\", \"Select label\"),\n \"data-testid\": `AdHocFilter-${filter.key}`,\n className: styles.field\n },\n keySelect\n );\n }\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: styles.wrapper, \"data-testid\": `AdHocFilter-${filter.key}` }, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(\n Button,\n {\n variant: \"secondary\",\n \"aria-label\": t(\"grafana-scenes.variables.ad-hoc-filter-renderer.aria-label-remove-filter\", \"Remove filter\"),\n title: t(\"grafana-scenes.variables.ad-hoc-filter-renderer.title-remove-filter\", \"Remove filter\"),\n className: styles.removeButton,\n icon: \"times\",\n \"data-testid\": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : \"\"}`,\n onClick: () => model._removeFilter(filter)\n }\n ));\n}\nconst getStyles = (theme) => ({\n field: css({\n marginBottom: 0\n }),\n wrapper: css({\n display: \"flex\",\n \"> *\": {\n \"&:not(:first-child)\": {\n // Negative margin hides the double-border on adjacent selects\n marginLeft: -1\n },\n \"&:first-child\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n \"&:last-child\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n \"&:not(:first-child):not(:last-child)\": {\n borderRadius: 0\n },\n // Fix focus state zIndex issues\n position: \"relative\",\n zIndex: 0,\n // Adjacent borders are overlapping, so raise children up when hovering etc\n // so all that child's borders are visible.\n \"&:hover\": {\n zIndex: 1\n },\n \"&:focus-within\": {\n zIndex: 2\n }\n }\n }),\n widthWhenOpen: css({\n minWidth: theme.spacing(16)\n }),\n value: css({\n flexBasis: \"content\",\n flexShrink: 1,\n minWidth: \"90px\"\n }),\n key: css({\n flexBasis: \"content\",\n minWidth: \"90px\",\n flexShrink: 1\n }),\n operator: css({\n flexShrink: 0,\n flexBasis: \"content\"\n }),\n removeButton: css({\n paddingLeft: theme.spacing(3 / 2),\n paddingRight: theme.spacing(3 / 2),\n borderLeft: \"none\",\n width: theme.spacing(3),\n marginRight: theme.spacing(1),\n boxSizing: \"border-box\",\n // To not have button background and last select border intersect\n position: \"relative\",\n left: \"1px\"\n })\n});\n\nexport { AdHocFilterRenderer };\n//# sourceMappingURL=AdHocFilterRenderer.js.map\n","import { t } from '@grafana/i18n';\nimport React from 'react';\nimport { AdHocFilterRenderer } from './AdHocFilterRenderer.js';\nimport { Button } from '@grafana/ui';\n\nfunction AdHocFilterBuilder({ model, addFilterButtonText }) {\n const { _wip } = model.useState();\n if (!_wip) {\n return /* @__PURE__ */ React.createElement(\n Button,\n {\n variant: \"secondary\",\n icon: \"plus\",\n title: t(\"grafana-scenes.variables.ad-hoc-filter-builder.title-add-filter\", \"Add filter\"),\n \"aria-label\": t(\"grafana-scenes.variables.ad-hoc-filter-builder.aria-label-add-filter\", \"Add filter\"),\n \"data-testid\": `AdHocFilter-add`,\n onClick: () => model._addWip()\n },\n addFilterButtonText\n );\n }\n return /* @__PURE__ */ React.createElement(AdHocFilterRenderer, { filter: _wip, model });\n}\n\nexport { AdHocFilterBuilder };\n//# sourceMappingURL=AdHocFilterBuilder.js.map\n","import { isFilterComplete, isMultiValueOperator, isMatchAllFilter } from './AdHocFiltersVariable.js';\nimport { escapeOriginFilterUrlDelimiters, toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass AdHocFiltersVariableUrlSyncHandler {\n constructor(_variable) {\n this._variable = _variable;\n }\n getKey() {\n return `var-${this._variable.state.name}`;\n }\n getKeys() {\n return [this.getKey()];\n }\n getUrlState() {\n const filters = this._variable.state.filters;\n const originFilters = this._variable.state.originFilters;\n let value = [];\n if (filters.length === 0 && (originFilters == null ? void 0 : originFilters.length) === 0) {\n return { [this.getKey()]: [\"\"] };\n }\n if (filters.length) {\n value.push(\n ...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join(\"|\"))\n );\n }\n if (originFilters == null ? void 0 : originFilters.length) {\n value.push(\n ...originFilters == null ? void 0 : originFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.restorable).map(\n (filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join(\"|\").concat(`#${filter.origin}#restorable`)\n )\n );\n }\n return {\n [this.getKey()]: value.length ? value : [\"\"]\n };\n }\n updateFromUrl(values) {\n const urlValue = values[this.getKey()];\n if (urlValue == null) {\n return;\n }\n const filters = deserializeUrlToFilters(urlValue);\n const originFilters = updateOriginFilters([...this._variable.state.originFilters || []], filters);\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n originFilters\n });\n }\n}\nfunction updateOriginFilters(prevOriginFilters, filters) {\n const updatedOriginFilters = [...prevOriginFilters];\n for (let i = 0; i < filters.length; i++) {\n const foundOriginFilterIndex = prevOriginFilters.findIndex((f) => f.key === filters[i].key);\n if (foundOriginFilterIndex > -1) {\n if (!filters[i].origin && prevOriginFilters[foundOriginFilterIndex].origin === \"dashboard\") {\n filters[i].origin = \"dashboard\";\n filters[i].restorable = true;\n }\n if (isMatchAllFilter(filters[i])) {\n filters[i].matchAllFilter = true;\n }\n updatedOriginFilters[foundOriginFilterIndex] = filters[i];\n } else if (filters[i].origin === \"dashboard\") {\n delete filters[i].origin;\n delete filters[i].restorable;\n } else if (foundOriginFilterIndex === -1 && filters[i].origin === \"scope\" && filters[i].restorable) {\n updatedOriginFilters.push(filters[i]);\n }\n }\n return updatedOriginFilters;\n}\nfunction deserializeUrlToFilters(value) {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\nfunction toArray(filter) {\n var _a;\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n filter.values.forEach((value, index) => {\n var _a2;\n result.push(toUrlCommaDelimitedString(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]));\n }\n return result;\n}\nfunction toFilter(urlValue) {\n if (typeof urlValue !== \"string\" || urlValue.length === 0) {\n return null;\n }\n const [filter, origin, restorable] = urlValue.split(\"#\");\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split(\"|\").reduce((acc, v) => {\n const [key2, label] = v.split(\",\");\n acc.push(key2, label != null ? label : key2);\n return acc;\n }, []).map(unescapeUrlDelimiters);\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: \"\",\n ...isFilterOrigin(origin) && { origin },\n ...!!restorable && { restorable: true }\n };\n}\nfunction isFilterOrigin(value) {\n return value === \"scope\" || value === \"dashboard\";\n}\nfunction isFilter(filter) {\n return filter !== null && typeof filter.key === \"string\" && typeof filter.value === \"string\";\n}\n\nexport { AdHocFiltersVariableUrlSyncHandler };\n//# sourceMappingURL=AdHocFiltersVariableUrlSyncHandler.js.map\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome,
    ,