From 18784eb886a1ba162979e1fb12f9a24de12e7924 Mon Sep 17 00:00:00 2001 From: Sina Date: Fri, 19 Jul 2024 09:36:42 +0330 Subject: [PATCH 1/7] Usage Coefficient Added to NodesModal --- app/dashboard/public/locales/en.json | 1 + app/dashboard/public/locales/fa.json | 1 + app/dashboard/public/locales/ru.json | 1 + app/dashboard/public/locales/zh.json | 1 + app/dashboard/src/components/NodesModal.tsx | 19 +++++++++++++++---- app/dashboard/src/contexts/NodesContext.tsx | 2 ++ 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/dashboard/public/locales/en.json b/app/dashboard/public/locales/en.json index a81f47b5..22828b2f 100644 --- a/app/dashboard/public/locales/en.json +++ b/app/dashboard/public/locales/en.json @@ -131,6 +131,7 @@ "nodes.editNode": "Update Node", "nodes.reconnect": "Reconnect", "nodes.reconnecting": "Reconnecting...", + "nodes.usageCoefficient": "Usage Ratio", "deleteNode.title": "Delete Node", "deleteNode.prompt": "Are you sure you want to delete the {{name}} node?", "deleteNode.deleteSuccess": "Node {{name}} removed successfully", diff --git a/app/dashboard/public/locales/fa.json b/app/dashboard/public/locales/fa.json index 0b0fbd88..10efdddd 100644 --- a/app/dashboard/public/locales/fa.json +++ b/app/dashboard/public/locales/fa.json @@ -130,6 +130,7 @@ "nodes.show-certificate": "نمایش دادن گواهی", "nodes.hide-certificate": "مخفی کردن گواهی", "nodes.reconnecting": "درحال اتصال مجدد...", + "nodes.usageCoefficient": "ضریب گره", "deleteNode.title": "حذف گره", "deleteNode.prompt": "از حذف گره {{name}} مطمئن هستید؟", "deleteNode.deleteSuccess": "گره {{name}} با موفقیت حذف شد", diff --git a/app/dashboard/public/locales/ru.json b/app/dashboard/public/locales/ru.json index 6e52cec1..23648147 100644 --- a/app/dashboard/public/locales/ru.json +++ b/app/dashboard/public/locales/ru.json @@ -127,6 +127,7 @@ "nodes.show-certificate": "Показать сертификат", "nodes.hide-certificate": "Скрыть сертификат", "nodes.reconnecting": "Переподключение...", + "nodes.usageCoefficient": "Коэффициент использования", "deleteNode.title": "Удалить узел", "deleteNode.prompt": "Вы уверены, что хотите удалить узел {{name}}?", "deleteNode.deleteSuccess": "Узел {{name}} успешно удалён", diff --git a/app/dashboard/public/locales/zh.json b/app/dashboard/public/locales/zh.json index 65789ad4..8e64e86a 100644 --- a/app/dashboard/public/locales/zh.json +++ b/app/dashboard/public/locales/zh.json @@ -120,6 +120,7 @@ "nodes.show-certificate": "如何证书", "nodes.hide-certificate": "隐藏证书", "nodes.reconnecting": "重连中...", + "nodes.usageCoefficient": "使用系数", "deleteNode.title": "删除节点", "deleteNode.prompt": "您确实要删除 {{name}} 节点吗?", "deleteNode.deleteSuccess": "节点 {{name}} 删除成功", diff --git a/app/dashboard/src/components/NodesModal.tsx b/app/dashboard/src/components/NodesModal.tsx index 78446f38..8555100b 100644 --- a/app/dashboard/src/components/NodesModal.tsx +++ b/app/dashboard/src/components/NodesModal.tsx @@ -470,8 +470,8 @@ const NodeForm: NodeFormType = ({ /> - - + + - + + + - + + + + {addAsHost && ( diff --git a/app/dashboard/src/contexts/NodesContext.tsx b/app/dashboard/src/contexts/NodesContext.tsx index 84ae0c61..6717e4b1 100644 --- a/app/dashboard/src/contexts/NodesContext.tsx +++ b/app/dashboard/src/contexts/NodesContext.tsx @@ -23,6 +23,7 @@ export const NodeSchema = z.object({ .optional(), message: z.string().nullable().optional(), add_as_new_host: z.boolean().optional(), + usage_coefficient: z.number().or(z.string().transform((v) => parseFloat(v))), }); export type NodeType = z.infer; @@ -33,6 +34,7 @@ export const getNodeDefaultValues = (): NodeType => ({ port: 62050, api_port: 62051, xray_version: "", + usage_coefficient: 1, }); export const FetchNodesQueryKey = "fetch-nodes-query-key"; From fb13c70000a5c9908c70a727951f97c2f5514354 Mon Sep 17 00:00:00 2001 From: Sina Date: Fri, 19 Jul 2024 09:46:14 +0330 Subject: [PATCH 2/7] On Hold Property Added to UserDialog --- app/dashboard/public/locales/en.json | 2 + app/dashboard/public/locales/fa.json | 2 + app/dashboard/public/locales/ru.json | 2 + app/dashboard/public/locales/zh.json | 2 + app/dashboard/src/components/UserDialog.tsx | 257 +++++++++++++++----- app/dashboard/src/types/User.ts | 2 + 6 files changed, 203 insertions(+), 64 deletions(-) diff --git a/app/dashboard/public/locales/en.json b/app/dashboard/public/locales/en.json index 22828b2f..62442243 100644 --- a/app/dashboard/public/locales/en.json +++ b/app/dashboard/public/locales/en.json @@ -68,6 +68,8 @@ "userDialog.revokeSubscription": "Revoke Subscription", "revoke": "Revoke", "userDialog.total": "Total: ", + "userDialog.onHold" : "On Hold", + "userDialog.onHoldExpireDuration":"Expire Duration", "hostsDialog.title": "Using this setting, you are able to assign specific address for each inbound.", "hostsDialog.desc": "Use these variables to make it dynamic", "hostsDialog.username": "The username of the user", diff --git a/app/dashboard/public/locales/fa.json b/app/dashboard/public/locales/fa.json index 10efdddd..dce878a5 100644 --- a/app/dashboard/public/locales/fa.json +++ b/app/dashboard/public/locales/fa.json @@ -71,6 +71,8 @@ "userDialog.startDate": "تاریخ شروع", "userDialog.endDate": "تاریخ پایان", "userDialog.total": "مجموع: ", + "userDialog.onHold" : "در انتظار", + "userDialog.onHoldExpireDuration":"مدت انقضا", "hostsDialog.title": "با انتخاب این تنظیمات، می‌توانید برای هر ورودی یک آدرس منحصر به فرد انتخاب کنید.", "hostsDialog.desc": "برای ساخت نوشته پویا، از این متغیرها استفاده کنید", "hostsDialog.username": "نام کاربری کاربر", diff --git a/app/dashboard/public/locales/ru.json b/app/dashboard/public/locales/ru.json index 23648147..cc26c232 100644 --- a/app/dashboard/public/locales/ru.json +++ b/app/dashboard/public/locales/ru.json @@ -68,6 +68,8 @@ "userDialog.revokeSubscription": "Отозвать подписку", "revoke": "Отозвать", "userDialog.total": "Всего: ", + "userDialog.onHold": "В режиме ожидания", + "userDialog.onHoldExpireDuration":"Продолжительность срока действия", "hostsDialog.title": "Используя эту настройку, Вы можете настроить свои inbound.", "hostsDialog.desc": "Используйте эти переменные, чтобы сделать его динамическим", "hostsDialog.username": "Имя пользователя", diff --git a/app/dashboard/public/locales/zh.json b/app/dashboard/public/locales/zh.json index 8e64e86a..827ac2b9 100644 --- a/app/dashboard/public/locales/zh.json +++ b/app/dashboard/public/locales/zh.json @@ -64,6 +64,8 @@ "userDialog.startDate": "开始日期", "userDialog.endDate": "结束日期", "userDialog.total": "总共:", + "userDialog.onHold" : "保持", + "userDialog.onHoldExpireDuration":"过期时间", "hostsDialog.title": "使用此设置,您可以为每个入站分配特定的地址。", "hostsDialog.desc": "使用这些变量使其可以动态替换", "hostsDialog.username": "用户的用户名", diff --git a/app/dashboard/src/components/UserDialog.tsx b/app/dashboard/src/components/UserDialog.tsx index cf87d590..86aa660a 100644 --- a/app/dashboard/src/components/UserDialog.tsx +++ b/app/dashboard/src/components/UserDialog.tsx @@ -112,6 +112,15 @@ const schema = z.object({ return 0; }), expire: z.number().nullable(), + on_hold_expire_duration: z + .string() + .min(0.1, "The minimum number is 0.1") + .or(z.number()) + .nullable() + .transform((str) => { + if (str) return Number(parseFloat(String(str)) * (24 * 60 * 60)); + return 0; + }), data_limit_reset_strategy: z.string(), status: z.string(), inbounds: z.record(z.string(), z.array(z.string())).transform((ins) => { @@ -135,6 +144,9 @@ const formatUser = (user: User): FormType => { data_limit: user.data_limit ? Number((user.data_limit / 1073741824).toFixed(5)) : user.data_limit, + on_hold_expire_duration: user.on_hold_expire_duration + ? Number(user.on_hold_expire_duration / (24 * 60 * 60)) + : user.on_hold_expire_duration, selected_proxies: Object.keys(user.proxies) as ProxyKeys, }; }; @@ -151,6 +163,7 @@ const getDefaultValues = (): FormType => { username: "", data_limit_reset_strategy: "no_reset", status: "active", + on_hold_expire_duration: null, note: "", inbounds, proxies: { @@ -242,6 +255,7 @@ export const UserDialog: FC = () => { useEffect(() => { if (editingUser) { form.reset(formatUser(editingUser)); + setUserStatus(form.getValues().status); fetchUsageWithFilter({ start: dayjs().utc().subtract(30, "day").format("YYYY-MM-DDTHH:00:00"), @@ -266,7 +280,9 @@ export const UserDialog: FC = () => { ? values.data_limit_reset_strategy : "no_reset", status: - values.status === "active" || values.status === "disabled" + values.status === "active" || + values.status === "disabled" || + values.status === "on_hold" ? values.status : "active", }; @@ -313,6 +329,7 @@ export const UserDialog: FC = () => { setError(null); setUsageVisible(false); setUsageFilter("1m"); + setUserStatus(null); }; const handleResetUsage = () => { @@ -325,6 +342,18 @@ export const UserDialog: FC = () => { const disabled = loading; + const [userStatus, setUserStatus] = useState(); + const [statusOnEditing, setStatusOnEditing] = useState< + User["status"] | null + >(); + + useEffect(() => { + setUserStatus(form.getValues().status); + }, [form]); + useEffect(() => { + setStatusOnEditing(form.getValues().status); + }, []); + return ( @@ -390,8 +419,8 @@ export const UserDialog: FC = () => { { @@ -464,74 +493,174 @@ export const UserDialog: FC = () => { /> - - {t("userDialog.expiryDate")} - { - function createDateAsUTC(num: number) { - return dayjs( - dayjs(num * 1000).utc() - // .format("MMMM D, YYYY") // exception with: dayjs.locale(lng); - ).toDate(); - } - const { status, time } = relativeExpiryDate( - field.value - ); - return ( - <> - { + + + {t("userDialog.expiryDate")} + + { + function createDateAsUTC(num: number) { + return dayjs( + dayjs(num * 1000).utc() + // .format("MMMM D, YYYY") // exception with: dayjs.locale(lng); + ).toDate(); + } + const { status, time } = relativeExpiryDate( + field.value + ); + return ( + <> + { + form.setValue( + "on_hold_expire_duration", + null + ); + field.onChange({ + target: { + value: date + ? dayjs( + dayjs(date) + .set("hour", 23) + .set("minute", 59) + .set("second", 59) + ) + .utc() + .valueOf() / 1000 + : 0, + name: "expire", + }, + }); + }} + customInput={ + + } + /> + {field.value ? ( + + {t(status, { time: time })} + + ) : ( + "" + )} + + ); + }} + /> + + + + + {t("userDialog.onHoldExpireDuration")} + + { + return ( + { + form.setValue("expire", null); field.onChange({ target: { - value: date - ? dayjs( - dayjs(date) - .set("hour", 23) - .set("minute", 59) - .set("second", 59) - ) - .utc() - .valueOf() / 1000 - : 0, - name: "expire", + value: on_hold, }, }); }} - customInput={ - + disabled={disabled} + error={ + form.formState.errors + .on_hold_expire_duration?.message } + value={field.value ? String(field.value) : ""} /> - {field.value ? ( - - {t(status, { time: time })} - - ) : ( - "" - )} - - ); - }} - /> - + ); + }} + /> + + + + + {t("userDialog.onHold")} + + { + function createDateAsUTC(num: number) { + return dayjs( + dayjs(num * 1000).utc() + // .format("MMMM D, YYYY") // exception with: dayjs.locale(lng); + ).toDate(); + } + const status = field.value; + return ( + <> + {status ? ( + { + if (e.target.checked) { + field.onChange("on_hold"); + setUserStatus("on_hold"); + } else { + field.onChange(statusOnEditing); + setUserStatus(statusOnEditing); + } + }} + /> + ) : ( + "" + )} + + ); + }} + /> + + Date: Fri, 19 Jul 2024 09:49:08 +0330 Subject: [PATCH 3/7] Built and Ready for Production --- app/dashboard/.env.example | 1 + ...file.2cd9a851.svg => add_file.4f1404b6.svg} | 0 app/dashboard/build/assets/index.14386dcd.css | 6 ++++++ app/dashboard/build/assets/index.59de2328.css | 6 ------ app/dashboard/build/assets/index.71322f3d.js | 14 -------------- app/dashboard/build/assets/index.8ee3e03d.js | 14 ++++++++++++++ .../{logo.2507bd68.svg => logo.3890828c.svg} | 0 .../{vendor.8aa8dc93.js => vendor.7a7a2a97.js} | 2 +- app/dashboard/build/index.html | 18 +++++++++--------- app/dashboard/build/locales/en.json | 3 +++ app/dashboard/build/locales/fa.json | 3 +++ app/dashboard/build/locales/ru.json | 3 +++ app/dashboard/build/locales/zh.json | 3 +++ 13 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 app/dashboard/.env.example rename app/dashboard/build/assets/{add_file.2cd9a851.svg => add_file.4f1404b6.svg} (100%) create mode 100644 app/dashboard/build/assets/index.14386dcd.css delete mode 100644 app/dashboard/build/assets/index.59de2328.css delete mode 100644 app/dashboard/build/assets/index.71322f3d.js create mode 100644 app/dashboard/build/assets/index.8ee3e03d.js rename app/dashboard/build/assets/{logo.2507bd68.svg => logo.3890828c.svg} (100%) rename app/dashboard/build/assets/{vendor.8aa8dc93.js => vendor.7a7a2a97.js} (97%) diff --git a/app/dashboard/.env.example b/app/dashboard/.env.example new file mode 100644 index 00000000..14093555 --- /dev/null +++ b/app/dashboard/.env.example @@ -0,0 +1 @@ +VITE_BASE_API= diff --git a/app/dashboard/build/assets/add_file.2cd9a851.svg b/app/dashboard/build/assets/add_file.4f1404b6.svg similarity index 100% rename from app/dashboard/build/assets/add_file.2cd9a851.svg rename to app/dashboard/build/assets/add_file.4f1404b6.svg diff --git a/app/dashboard/build/assets/index.14386dcd.css b/app/dashboard/build/assets/index.14386dcd.css new file mode 100644 index 00000000..c5997d1e --- /dev/null +++ b/app/dashboard/build/assets/index.14386dcd.css @@ -0,0 +1,6 @@ +@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{margin-left:-4px;position:absolute;width:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px;content:"";z-index:-1;border-width:8px;left:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{bottom:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker-wrapper{display:inline-block;padding:0;border:0;width:100%}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{padding-top:10px}.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=top]{padding-bottom:10px}.react-datepicker-popper[data-placement^=right]{padding-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{padding-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:white;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day-names,.react-datepicker__week{white-space:nowrap}.react-datepicker__day-names{margin-bottom:-8px}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__month--selected,.react-datepicker__month--in-selecting-range,.react-datepicker__month--in-range,.react-datepicker__quarter--selected,.react-datepicker__quarter--in-selecting-range,.react-datepicker__quarter--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__month--selected:hover,.react-datepicker__month--in-selecting-range:hover,.react-datepicker__month--in-range:hover,.react-datepicker__quarter--selected:hover,.react-datepicker__quarter--in-selecting-range:hover,.react-datepicker__quarter--in-range:hover{background-color:#1d5d90}.react-datepicker__month--disabled,.react-datepicker__quarter--disabled{color:#ccc;pointer-events:none}.react-datepicker__month--disabled:hover,.react-datepicker__quarter--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover,.react-datepicker__year-text:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover,.react-datepicker__year-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--in-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--in-range:hover,.react-datepicker__year-text--selected:hover,.react-datepicker__year-text--in-selecting-range:hover,.react-datepicker__year-text--in-range:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover,.react-datepicker__year-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover,.react-datepicker__year-text--disabled:hover{background-color:transparent}.react-datepicker__month-text.react-datepicker__month--selected:hover,.react-datepicker__month-text.react-datepicker__month--in-range:hover,.react-datepicker__month-text.react-datepicker__quarter--selected:hover,.react-datepicker__month-text.react-datepicker__quarter--in-range:hover,.react-datepicker__quarter-text.react-datepicker__month--selected:hover,.react-datepicker__quarter-text.react-datepicker__month--in-range:hover,.react-datepicker__quarter-text.react-datepicker__quarter--selected:hover,.react-datepicker__quarter-text.react-datepicker__quarter--in-range:hover{background-color:#216ba5}.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{background-color:#f0f0f0}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"\d7"}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px),(max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color: #ebebeb;--highlight-color: #f5f5f5;--animation-duration: 1.5s;--animation-direction: normal;--pseudo-element-display: block;background-color:var(--base-color);width:100%;border-radius:.25rem;display:inline-flex;line-height:1;position:relative;overflow:hidden;z-index:1}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:linear-gradient(90deg,var(--base-color),var(--highlight-color),var(--base-color));transform:translate(-100%);animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite}.jsoneditor input,.jsoneditor input:not([type]),.jsoneditor input[type=text],.jsoneditor input[type=search],.jsoneditor-modal input,.jsoneditor-modal input:not([type]),.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=search]{height:auto;border:inherit;box-shadow:none;font-size:inherit;box-sizing:inherit;padding:inherit;font-family:inherit;transition:none;line-height:inherit}.jsoneditor input:focus,.jsoneditor input:not([type]):focus,.jsoneditor input[type=text]:focus,.jsoneditor input[type=search]:focus,.jsoneditor-modal input:focus,.jsoneditor-modal input:not([type]):focus,.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal input[type=search]:focus{border:inherit;box-shadow:inherit}.jsoneditor textarea,.jsoneditor-modal textarea{height:inherit}.jsoneditor select,.jsoneditor-modal select{display:inherit;height:inherit}.jsoneditor label,.jsoneditor-modal label{font-size:inherit;font-weight:inherit;color:inherit}.jsoneditor table,.jsoneditor-modal table{border-collapse:collapse;width:auto}.jsoneditor td,.jsoneditor th,.jsoneditor-modal td,.jsoneditor-modal th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}.jsoneditor .autocomplete.dropdown{position:absolute;background:#ffffff;box-shadow:2px 2px 12px #8080804d;border:1px solid #d3d3d3;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding:5px;text-align:left;outline:0;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px}.jsoneditor .autocomplete.dropdown .item{color:#1a1a1a}.jsoneditor .autocomplete.dropdown .item.hover{background-color:#ebebeb}.jsoneditor .autocomplete.hint{color:#a1a1a1;top:4px;left:4px}.jsoneditor-contextmenu-root{position:relative;width:0;height:0}.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:2}.jsoneditor-contextmenu .jsoneditor-menu{position:relative;left:0;top:0;width:128px;height:auto;background:#ffffff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px #8080804d;list-style:none;margin:0;padding:0}.jsoneditor-contextmenu .jsoneditor-menu button{position:relative;padding:0 8px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:transparent;font-size:14px;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}.jsoneditor-contextmenu .jsoneditor-menu button::-moz-focus-inner{padding:0;border:0}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-default{width:96px}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}.jsoneditor-contextmenu .jsoneditor-menu li{overflow:hidden}.jsoneditor-contextmenu .jsoneditor-menu li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px #80808080;padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.jsoneditor-contextmenu .jsoneditor-menu li ul .jsoneditor-icon{margin-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li ul li button{padding-left:24px;animation:all ease-in-out 1s}.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:0 -72px}.jsoneditor-contextmenu .jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg)}.jsoneditor-contextmenu .jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}.jsoneditor-contextmenu .jsoneditor-text.jsoneditor-right-margin{padding-right:24px}.jsoneditor-contextmenu .jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}.jsoneditor-contextmenu button.jsoneditor-remove .jsoneditor-icon{background-position:-24px 0}.jsoneditor-contextmenu button.jsoneditor-append .jsoneditor-icon,.jsoneditor-contextmenu button.jsoneditor-insert .jsoneditor-icon{background-position:0 0}.jsoneditor-contextmenu button.jsoneditor-duplicate .jsoneditor-icon{background-position:-48px 0}.jsoneditor-contextmenu button.jsoneditor-sort-asc .jsoneditor-icon{background-position:-168px 0}.jsoneditor-contextmenu button.jsoneditor-sort-desc .jsoneditor-icon{background-position:-192px 0}.jsoneditor-contextmenu button.jsoneditor-transform .jsoneditor-icon{background-position:-216px 0}.jsoneditor-contextmenu button.jsoneditor-extract .jsoneditor-icon{background-position:0 -24px}.jsoneditor-contextmenu button.jsoneditor-type-string .jsoneditor-icon{background-position:-144px 0}.jsoneditor-contextmenu button.jsoneditor-type-auto .jsoneditor-icon{background-position:-120px 0}.jsoneditor-contextmenu button.jsoneditor-type-object .jsoneditor-icon{background-position:-72px 0}.jsoneditor-contextmenu button.jsoneditor-type-array .jsoneditor-icon{background-position:-96px 0}.jsoneditor-contextmenu button.jsoneditor-type-modes .jsoneditor-icon{background-image:none;width:6px}.jsoneditor-contextmenu ul,.jsoneditor-contextmenu li{box-sizing:content-box;position:relative}.jsoneditor-contextmenu .jsoneditor-menu button:hover,.jsoneditor-contextmenu .jsoneditor-menu button:focus{color:#1a1a1a;background-color:#f5f5f5;outline:none}.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:hover,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:focus{color:#fff;background-color:#ee422e}.jsoneditor-contextmenu .jsoneditor-menu li ul li button:hover,.jsoneditor-contextmenu .jsoneditor-menu li ul li button:focus{background-color:#f5f5f5}.jsoneditor-modal{max-width:95%;border-radius:2px!important;padding:45px 15px 15px!important;box-shadow:2px 2px 12px #8080804d;color:#4d4d4d;line-height:1.3em}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;padding:0 10px;height:30px;line-height:30px;font-family:arial,sans-serif;font-size:11pt;background:#3883fa;color:#fff}.jsoneditor-modal table{width:100%}.jsoneditor-modal table td{padding:3px 0}.jsoneditor-modal table td.jsoneditor-modal-input{text-align:right;padding-right:0;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal table th{vertical-align:middle}.jsoneditor-modal p:first-child{margin-top:0}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal .jsoneditor-jmespath-block{margin-bottom:10px}.jsoneditor-modal .pico-close{background:none!important;font-size:24px!important;top:7px!important;right:7px!important;color:#fff}.jsoneditor-modal input{padding:4px}.jsoneditor-modal input[type=text]{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:gray}.jsoneditor-modal .jsoneditor-select-wrapper{position:relative;display:inline-block}.jsoneditor-modal .jsoneditor-select-wrapper:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #666;position:absolute;right:8px;top:14px;pointer-events:none}.jsoneditor-modal select{padding:3px 24px 3px 10px;min-width:180px;max-width:350px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:0;text-overflow:"";font-size:14px;line-height:1.5em}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{padding:4px 10px;margin:0;border-radius:0;border-left-style:none}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-top-left-radius:3px;border-bottom-left-radius:3px;border-left-style:solid}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-top-right-radius:3px;border-bottom-right-radius:3px}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{line-height:1.2em;width:100%;padding:0;border-radius:3px}.jsoneditor-modal .jsoneditor-jmespath-label{font-weight:700;color:#1e90ff;margin-top:20px;margin-bottom:5px}.jsoneditor-modal .jsoneditor-jmespath-wizard-table{width:100%;border-collapse:collapse}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px}.jsoneditor-modal .jsoneditor-inline{position:relative;display:inline-block;width:100%;padding-top:2px;padding-bottom:2px}.jsoneditor-modal .jsoneditor-inline:not(:last-child){padding-right:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:180px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{min-width:180px;flex:1}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .jsoneditor-jmespath-select-fields{width:100%}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}.jsoneditor-modal table th,.jsoneditor-modal table td{text-align:left;vertical-align:middle;font-weight:400;color:#4d4d4d;border-spacing:0;border-collapse:collapse}.jsoneditor-modal select,.jsoneditor-modal textarea,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal #query{background:#ffffff;border:1px solid #d3d3d3;color:#4d4d4d;border-radius:3px;padding:4px}.jsoneditor-modal textarea,.jsoneditor-modal #query{border-radius:unset}.jsoneditor-modal,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal select,.jsoneditor-modal option,.jsoneditor-modal textarea,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal #query{font-size:10.5pt;font-family:arial,sans-serif}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;width:100%;box-sizing:border-box}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal select,.jsoneditor-modal input{cursor:pointer}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor{color:#1a1a1a;border:thin solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-field,div.jsoneditor-value,div.jsoneditor-readonly,div.jsoneditor-default{border:1px solid transparent;min-height:16px;min-width:32px;line-height:16px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-value.jsoneditor-empty:after{content:"value"}div.jsoneditor-value.jsoneditor-string{color:#006000}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-color-value,div.jsoneditor-value.jsoneditor-invalid{color:#1a1a1a}div.jsoneditor-readonly{min-width:16px;color:gray}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty:after{content:"field"}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:gray}div.jsoneditor td.jsoneditor-tree{vertical-align:top}div.jsoneditor.busy pre.jsoneditor-preview{background:#f5f5f5;color:gray}div.jsoneditor.busy div.jsoneditor-busy{display:inherit}div.jsoneditor code.jsoneditor-preview{background:none}div.jsoneditor.jsoneditor-mode-preview pre.jsoneditor-preview{width:100%;height:100%;box-sizing:border-box;overflow:auto;padding:2px;margin:0;white-space:pre-wrap;word-break:break-all}div.jsoneditor-default{color:gray;padding-left:10px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto;background:#ffffff}div.jsoneditor-tree button.jsoneditor-button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background-color:transparent;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg)}div.jsoneditor-tree button.jsoneditor-button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu-button{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:none}div.jsoneditor-tree button.jsoneditor-dragarea{background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-72px -72px;cursor:move}div.jsoneditor-tree *:focus{outline:none}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:gray;font-family:arial,sans-serif;font-size:14px}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:gray}div.jsoneditor-tree div.jsoneditor-color{display:inline-block;width:12px;height:12px;margin:4px;border:1px solid #808080;cursor:pointer}div.jsoneditor-tree div.jsoneditor-color.jsoneditor-color-readonly{cursor:inherit}div.jsoneditor-tree div.jsoneditor-date{background:#a1a1a1;color:#fff;font-family:arial,sans-serif;border-radius:3px;display:inline-block;padding:3px;margin:0 3px}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree .jsoneditor-button{display:block}div.jsoneditor-tree .jsoneditor-button.jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;background-color:transparent}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:0;padding:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin-top:-26px;padding-top:26px}div.jsoneditor-outer.has-nav-bar.has-main-menu-bar{margin-top:-61px;padding-top:61px}div.jsoneditor-outer.has-status-bar{margin-bottom:-26px;padding-bottom:26px}div.jsoneditor-outer.has-main-menu-bar{margin-top:-35px;padding-top:35px}div.jsoneditor-busy{position:absolute;top:15%;left:0;box-sizing:border-box;width:100%;text-align:center;display:none}div.jsoneditor-busy span{background-color:#ffffab;border:1px solid #ffee00;border-radius:3px;padding:5px 15px;box-shadow:0 0 5px #0006}div.jsoneditor-field.jsoneditor-empty:after,div.jsoneditor-value.jsoneditor-empty:after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-value.jsoneditor-url,a.jsoneditor-value.jsoneditor-url{color:#006000;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:hover,a.jsoneditor-value.jsoneditor-url:focus{color:#ee422e}div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover,div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-value.jsoneditor-highlight{background-color:#ffffab;border:1px solid #ffee00;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-object,div.jsoneditor-value.jsoneditor-array{min-width:16px}div.jsoneditor-tree button.jsoneditor-contextmenu-button:hover,div.jsoneditor-tree button.jsoneditor-contextmenu-button:focus,div.jsoneditor-tree button.jsoneditor-contextmenu-button.jsoneditor-selected,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{background-position:-48px -48px}div.jsoneditor-tree div.jsoneditor-show-more a:hover,div.jsoneditor-tree div.jsoneditor-show-more a:focus{color:#ee422e}textarea.jsoneditor-text,.ace-jsoneditor{min-height:150px}textarea.jsoneditor-text.ace_editor,.ace-jsoneditor.ace_editor{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-dragarea,tr.jsoneditor-selected button.jsoneditor-contextmenu-button{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea:hover,div.jsoneditor-tree button.jsoneditor-dragarea:focus,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor tr,div.jsoneditor th,div.jsoneditor td{padding:0;margin:0}div.jsoneditor-field,div.jsoneditor-value,div.jsoneditor td,div.jsoneditor th,div.jsoneditor textarea,pre.jsoneditor-preview,.jsoneditor-schema-error,.jsoneditor-popover{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}.jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px #0006;color:#fff;padding:7px 10px;position:absolute;cursor:auto;width:200px}.jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:"";top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:"";top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:"";display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-text-errors tr.jump-to-line:hover{text-decoration:underline;cursor:pointer}.jsoneditor-schema-error:hover .jsoneditor-popover,.jsoneditor-schema-error:focus .jsoneditor-popover{display:block;animation:fade-in .3s linear 1,move-up .3s linear 1}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-validation-errors-container{max-height:130px;overflow-y:auto}.jsoneditor .jsoneditor-validation-errors{width:100%;overflow:hidden}.jsoneditor .jsoneditor-additional-errors{position:absolute;margin:auto;bottom:31px;left:calc(50% - 92px);color:gray;background-color:#ebebeb;padding:7px 15px;border-radius:8px}.jsoneditor .jsoneditor-additional-errors.visible{visibility:visible;opacity:1;transition:opacity 2s linear}.jsoneditor .jsoneditor-additional-errors.hidden{visibility:hidden;opacity:0;transition:visibility 0s 2s,opacity 2s linear}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;border-top:1px solid #ffc700}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor .jsoneditor-text-errors td pre{margin:0;white-space:pre-wrap}.jsoneditor .jsoneditor-text-errors tr{background-color:#ffffab}.jsoneditor .jsoneditor-text-errors tr.parse-error{background-color:#ee2e2e70}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;cursor:pointer}.jsoneditor-text-errors tr .jsoneditor-schema-error{background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;background-color:transparent}.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-25px 0px;background-color:transparent}.jsoneditor-anchor{cursor:pointer}.jsoneditor-anchor .picker_wrapper.popup.popup_bottom{top:28px;left:-10px}.fadein{-webkit-animation:fadein .3s;animation:fadein .3s;-moz-animation:fadein .3s;-o-animation:fadein .3s}@keyframes fadein{0%{opacity:0}to{opacity:1}}.jsoneditor-modal input[type=search].selectr-input{border:1px solid #d3d3d3;width:calc(100% - 4px);margin:2px;padding:4px;box-sizing:border-box}.jsoneditor-modal button.selectr-input-clear{right:8px}.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}.jsoneditor-menu>button,.jsoneditor-menu>.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background-color:transparent;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:14px;float:left}.jsoneditor-menu>button:hover,.jsoneditor-menu>.jsoneditor-modes>button:hover{background-color:#fff3;border:1px solid rgba(255,255,255,.4)}.jsoneditor-menu>button:focus,.jsoneditor-menu>button:active,.jsoneditor-menu>.jsoneditor-modes>button:focus,.jsoneditor-menu>.jsoneditor-modes>button:active{background-color:#ffffff4d}.jsoneditor-menu>button:disabled,.jsoneditor-menu>.jsoneditor-modes>button:disabled{opacity:.5;background-color:transparent;border:none}.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-transform,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-transform{display:none}.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}.jsoneditor-menu>.jsoneditor-modes{display:inline-block;float:left}.jsoneditor-menu>.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}.jsoneditor-menu>button.jsoneditor-separator,.jsoneditor-menu>.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}.jsoneditor-menu a{font-family:arial,sans-serif;font-size:14px;color:#fff;opacity:.8;vertical-align:middle}.jsoneditor-menu a:hover{opacity:1}.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:gray;background-color:#ebebeb;overflow:hidden;font-family:arial,sans-serif;font-size:14px}.jsoneditor-search{font-family:arial,sans-serif;position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0;display:flex}.jsoneditor-search input{color:#1a1a1a;width:120px;border:none;outline:none;margin:1px;line-height:20px;font-family:arial,sans-serif}.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(/assets/jsoneditor-icons.45c98bf0.svg);vertical-align:top}.jsoneditor-search button:hover{background-color:transparent}.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}.jsoneditor-results{font-family:arial,sans-serif;color:#fff;padding-right:5px;line-height:26px}.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}.jsoneditor-statusbar{line-height:26px;height:26px;color:gray;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px}.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}.jsoneditor-statusbar>.jsoneditor-validation-error-icon{float:right;width:24px;height:24px;padding:0;margin-top:1px;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;cursor:pointer}.jsoneditor-statusbar>.jsoneditor-validation-error-count{float:right;margin:0 4px 0 0;cursor:pointer}.jsoneditor-statusbar>.jsoneditor-parse-error-icon{float:right;width:24px;height:24px;padding:0;margin:1px;background-image:url(/assets/jsoneditor-icons.45c98bf0.svg);background-position:-25px 0px}.jsoneditor-statusbar .jsoneditor-array-info a{color:inherit}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label,div.jsoneditor-statusbar>.jsoneditor-size-info{margin:0 4px}.jsoneditor-treepath{padding:0 5px;overflow:hidden;white-space:nowrap;outline:none}.jsoneditor-treepath.show-all{word-wrap:break-word;white-space:normal;position:absolute;background-color:#ebebeb;z-index:1;box-shadow:2px 2px 12px #8080804d}.jsoneditor-treepath.show-all span.jsoneditor-treepath-show-all-btn{display:none}.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}.jsoneditor-treepath .jsoneditor-treepath-show-all-btn{position:absolute;background-color:#ebebeb;left:0;height:20px;padding:0 3px;cursor:pointer}.jsoneditor-treepath .jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:14px}.jsoneditor-treepath .jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}.jsoneditor-treepath span.jsoneditor-treepath-element:hover,.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}/*! + * Selectr 2.4.13 + * http://mobius.ovh/docs/selectr + * + * Released under the MIT license + */.selectr-container{position:relative}.selectr-container li{list-style:none}.selectr-hidden{position:absolute;overflow:hidden;clip:rect(0px,0px,0px,0px);width:1px;height:1px;margin:-1px;padding:0;border:0 none}.selectr-visible{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;z-index:11}.selectr-desktop.multiple .selectr-visible{display:none}.selectr-desktop.multiple.native-open .selectr-visible{top:100%;min-height:200px!important;height:auto;opacity:1;display:block}.selectr-container.multiple.selectr-mobile .selectr-selected{z-index:0}.selectr-selected{position:relative;z-index:1;box-sizing:border-box;width:100%;padding:7px 28px 7px 14px;cursor:pointer;border:1px solid #999999;border-radius:3px;background-color:#fff}.selectr-selected:before{position:absolute;top:50%;right:10px;width:0;height:0;content:"";-o-transform:rotate(0deg) translate3d(0px,-50%,0px);-ms-transform:rotate(0deg) translate3d(0px,-50%,0px);-moz-transform:rotate(0deg) translate3d(0px,-50%,0px);-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0);border-width:4px 4px 0 4px;border-style:solid;border-color:#6c7a86 transparent transparent}.selectr-container.open .selectr-selected:before,.selectr-container.native-open .selectr-selected:before{border-width:0 4px 4px 4px;border-style:solid;border-color:transparent transparent #6c7a86}.selectr-label{display:none;overflow:hidden;width:100%;white-space:nowrap;text-overflow:ellipsis}.selectr-placeholder{color:#6c7a86}.selectr-tags{margin:0;padding:0;white-space:normal}.has-selected .selectr-tags{margin:0 0 -2px}.selectr-tag{list-style:none;position:relative;float:left;padding:2px 25px 2px 8px;margin:0 2px 2px 0;cursor:default;color:#fff;border:medium none;border-radius:10px;background:#acb7bf none repeat scroll 0 0}.selectr-container.multiple.has-selected .selectr-selected{padding:5px 28px 5px 5px}.selectr-options-container{position:absolute;z-index:10000;top:calc(100% - 1px);left:0;display:none;box-sizing:border-box;width:100%;border-width:0 1px 1px;border-style:solid;border-color:transparent #999999 #999999;border-radius:0 0 3px 3px;background-color:#fff}.selectr-container.open .selectr-options-container{display:block}.selectr-input-container{position:relative;display:none}.selectr-clear,.selectr-input-clear,.selectr-tag-remove{position:absolute;top:50%;right:22px;width:20px;height:20px;padding:0;cursor:pointer;-o-transform:translate3d(0px,-50%,0px);-ms-transform:translate3d(0px,-50%,0px);-moz-transform:translate3d(0px,-50%,0px);-webkit-transform:translate3d(0px,-50%,0px);transform:translate3d(0,-50%,0);border:medium none;background-color:transparent;z-index:11}.selectr-clear,.selectr-input-clear{display:none}.selectr-container.has-selected .selectr-clear,.selectr-input-container.active .selectr-input-clear{display:block}.selectr-selected .selectr-tag-remove{right:2px}.selectr-clear:before,.selectr-clear:after,.selectr-input-clear:before,.selectr-input-clear:after,.selectr-tag-remove:before,.selectr-tag-remove:after{position:absolute;top:5px;left:9px;width:2px;height:10px;content:" ";background-color:#6c7a86}.selectr-tag-remove:before,.selectr-tag-remove:after{top:4px;width:3px;height:12px;background-color:#fff}.selectr-clear:before,.selectr-input-clear:before,.selectr-tag-remove:before{-o-transform:rotate(45deg);-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.selectr-clear:after,.selectr-input-clear:after,.selectr-tag-remove:after{-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.selectr-input-container.active,.selectr-input-container.active .selectr-clear{display:block}.selectr-input{top:5px;left:5px;box-sizing:border-box;width:calc(100% - 30px);margin:10px 15px;padding:7px 30px 7px 9px;border:1px solid #999999;border-radius:3px}.selectr-notice{display:none;box-sizing:border-box;width:100%;padding:8px 16px;border-top:1px solid #999999;border-radius:0 0 3px 3px;background-color:#fff}.selectr-container.notice .selectr-notice{display:block}.selectr-container.notice .selectr-selected{border-radius:3px 3px 0 0}.selectr-options{position:relative;top:calc(100% + 2px);display:none;overflow-x:auto;overflow-y:scroll;max-height:200px;margin:0;padding:0}.selectr-container.open .selectr-options,.selectr-container.open .selectr-input-container,.selectr-container.notice .selectr-options-container{display:block}.selectr-option{position:relative;display:block;padding:5px 20px;list-style:outside none none;cursor:pointer;font-weight:400}.selectr-options.optgroups>.selectr-option{padding-left:25px}.selectr-optgroup{font-weight:700;padding:0}.selectr-optgroup--label{font-weight:700;margin-top:10px;padding:5px 15px}.selectr-match{text-decoration:underline}.selectr-option.selected{background-color:#ddd}.selectr-option.active{color:#fff;background-color:#5897fb}.selectr-option.disabled{opacity:.4}.selectr-option.excluded{display:none}.selectr-container.open .selectr-selected{border-color:#999999 #999999 transparent #999999;border-radius:3px 3px 0 0}.selectr-container.open .selectr-selected:after{-o-transform:rotate(180deg) translate3d(0px,50%,0px);-ms-transform:rotate(180deg) translate3d(0px,50%,0px);-moz-transform:rotate(180deg) translate3d(0px,50%,0px);-webkit-transform:rotate(180deg) translate3d(0px,50%,0px);transform:rotate(180deg) translate3d(0,50%,0)}.selectr-disabled{opacity:.6}.selectr-empty,.has-selected .selectr-placeholder{display:none}.has-selected .selectr-label{display:block}.taggable .selectr-selected{padding:4px 28px 4px 4px}.taggable .selectr-selected:after{display:table;content:" ";clear:both}.taggable .selectr-label{width:auto}.taggable .selectr-tags{float:left;display:block}.taggable .selectr-placeholder{display:none}.input-tag{float:left;min-width:90px;width:auto}.selectr-tag-input{border:medium none;padding:3px 10px;width:100%;font-family:inherit;font-weight:inherit;font-size:inherit}.selectr-input-container.loading:after{position:absolute;top:50%;right:20px;width:20px;height:20px;content:"";-o-transform:translate3d(0px,-50%,0px);-ms-transform:translate3d(0px,-50%,0px);-moz-transform:translate3d(0px,-50%,0px);-webkit-transform:translate3d(0px,-50%,0px);transform:translate3d(0,-50%,0);-o-transform-origin:50% 0 0;-ms-transform-origin:50% 0 0;-moz-transform-origin:50% 0 0;-webkit-transform-origin:50% 0 0;transform-origin:50% 0 0;-moz-animation:.5s linear 0s normal forwards infinite running selectr-spin;-webkit-animation:.5s linear 0s normal forwards infinite running selectr-spin;animation:.5s linear 0s normal forwards infinite running selectr-spin;border-width:3px;border-style:solid;border-color:#aaa #ddd #ddd;border-radius:50%}@-webkit-keyframes selectr-spin{0%{-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0)}to{-webkit-transform:rotate(360deg) translate3d(0px,-50%,0px);transform:rotate(360deg) translate3d(0,-50%,0)}}@keyframes selectr-spin{0%{-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0)}to{-webkit-transform:rotate(360deg) translate3d(0px,-50%,0px);transform:rotate(360deg) translate3d(0,-50%,0)}}.selectr-container.open.inverted .selectr-selected{border-color:transparent #999999 #999999;border-radius:0 0 3px 3px}.selectr-container.inverted .selectr-options-container{border-width:1px 1px 0;border-color:#999999 #999999 transparent;border-radius:3px 3px 0 0;background-color:#fff}.selectr-container.inverted .selectr-options-container{top:auto;bottom:calc(100% - 1px)}.selectr-container ::-webkit-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::-moz-placeholder{color:#6c7a86;opacity:1}.selectr-container :-ms-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::placeholder{color:#6c7a86;opacity:1}.ace_gutter-cell{padding-left:20px;padding-right:16px!important}.ace_editor,.jsoneditor{border-radius:4px}.ace_editor{min-height:300px}.jsoneditor{border:0}.ace-dawn .ace_gutter{background:#ebebeb;color:#333}.ace-dawn .ace_print-margin{width:1px;background:#e8e8e8}.ace-dawn{background-color:#f9f9f9;color:#080808}.ace-dawn .ace_cursor{color:#000}.ace-dawn .ace_marker-layer .ace_selection{background:rgba(39,95,255,.3)}.ace-dawn.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px #f9f9f9}.ace-dawn .ace_marker-layer .ace_step{background:rgb(255,255,0)}.ace-dawn .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px;border:1px solid rgba(75,75,126,.5)}.ace-dawn .ace_marker-layer .ace_active-line{background:rgba(36,99,180,.12)}.ace-dawn .ace_gutter-active-line{background-color:#dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word{border:1px solid rgba(39,95,255,.3)}.ace-dawn .ace_invisible{color:#4b4b7e80}.ace-dawn .ace_keyword,.ace-dawn .ace_meta{color:#794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other{color:#811f24}.ace-dawn .ace_invalid.ace_illegal{text-decoration:underline;font-style:italic;color:#f8f8f8;background-color:#b52a1d}.ace-dawn .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#b52a1d}.ace-dawn .ace_support{color:#691c97}.ace-dawn .ace_support.ace_constant{color:#b4371f}.ace-dawn .ace_fold{background-color:#794938;border-color:#080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function{color:#693a17}.ace-dawn .ace_storage{font-style:italic;color:#a71d5d}.ace-dawn .ace_string{color:#0b6125}.ace-dawn .ace_string.ace_regexp{color:#cf5628}.ace-dawn .ace_comment{font-style:italic;color:#5a525f}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading{color:#19356d}.ace-dawn .ace_variable{color:#234a97}.ace-dawn .ace_indent-guide{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}.ace-dawn .ace_indent-guide-active{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC) right repeat-y}.ace-nord-dark .ace_gutter{color:#616e88}.ace-nord-dark .ace_print-margin{width:1px;background:#4c566a}.ace-nord-dark{background-color:#2e3440;color:#d8dee9}.ace-nord-dark .ace_entity.ace_other.ace_attribute-name,.ace-nord-dark .ace_storage,.ace-nord-dark .ace_cursor{color:#d8dee9}.ace-nord-dark .ace_string.ace_regexp{color:#bf616a}.ace-nord-dark .ace_marker-layer .ace_active-line,.ace-nord-dark .ace_marker-layer .ace_selection{background:#434c5ecc}.ace-nord-dark.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px #2e3440}.ace-nord-dark .ace_marker-layer .ace_step{background:#ebcb8b}.ace-nord-dark .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px;border:1px solid #88c0d066}.ace-nord-dark .ace_gutter-active-line{background-color:#434c5ecc}.ace-nord-dark .ace_marker-layer .ace_selected-word{border:1px solid #88c0d066}.ace-nord-dark .ace_invisible{color:#4c566a}.ace-nord-dark .ace_keyword,.ace-nord-dark .ace_meta,.ace-nord-dark .ace_support.ace_class,.ace-nord-dark .ace_support.ace_type{color:#81a1c1}.ace-nord-dark .ace_constant.ace_character,.ace-nord-dark .ace_constant.ace_other{color:#d8dee9}.ace-nord-dark .ace_constant.ace_language{color:#5e81ac}.ace-nord-dark .ace_constant.ace_escape{color:#ebcb8b}.ace-nord-dark .ace_constant.ace_numeric{color:#b48ead}.ace-nord-dark .ace_fold{background-color:#4c566a;border-color:#d8dee9}.ace-nord-dark .ace_entity.ace_name.ace_function,.ace-nord-dark .ace_entity.ace_name.ace_tag,.ace-nord-dark .ace_support.ace_function,.ace-nord-dark .ace_variable,.ace-nord-dark .ace_variable.ace_language{color:#8fbcbb}.ace-nord-dark .ace_string{color:#a3be8c}.ace-nord-dark .ace_comment{color:#616e88}.ace-nord-dark .ace_indent-guide{box-shadow:inset -1px 0 #434c5eb3}.ace-nord-dark .ace_indent-guide-active{box-shadow:inset -1px 0 #8395b8b3}.slick-loading .slick-list{background:#fff url(/assets/ajax-loader.e7b44c86.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(data:application/vnd.ms-fontobject;base64,AAgAAGQHAAABAAIAAAAAAAIABQkAAAAAAAABAJABAAAAAExQAQAAgCAAAAAAAAAAAAAAAAEAAAAAAAAATxDE8AAAAAAAAAAAAAAAAAAAAAAAAAoAcwBsAGkAYwBrAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAKAHMAbABpAGMAawAAAAAAAAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=);src:url(data:application/vnd.ms-fontobject;base64,AAgAAGQHAAABAAIAAAAAAAIABQkAAAAAAAABAJABAAAAAExQAQAAgCAAAAAAAAAAAAAAAAEAAAAAAAAATxDE8AAAAAAAAAAAAAAAAAAAAAAAAAoAcwBsAGkAYwBrAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAKAHMAbABpAGMAawAAAAAAAAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=) format("embedded-opentype"),url(data:font/woff;base64,d09GRk9UVE8AAAVkAAsAAAAAB1wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABCAAAAi4AAAKbH/pWDkZGVE0AAAM4AAAAGgAAABxt0civR0RFRgAAA1QAAAAcAAAAIAAyAARPUy8yAAADcAAAAFIAAABgUBj/rmNtYXAAAAPEAAAAUAAAAWIiC0SwaGVhZAAABBQAAAAuAAAANgABMftoaGVhAAAERAAAABwAAAAkA+UCA2htdHgAAARgAAAADgAAAA4ESgBKbWF4cAAABHAAAAAGAAAABgAFUABuYW1lAAAEeAAAANwAAAFuBSeBwnBvc3QAAAVUAAAAEAAAACAAAwABeJw9ks9vEkEUx2cpWyeUoFYgNkHi2Wt7N3rVm3cTs3UVLC4LxIWEQvi1P3i7O1tYLJDAmlgKGEhQrsajf0j7J3jYTXrQWUrMJG+++b55n5e8NwwKBhHDMLv5kxT3ATEBxKBn3qOAl9zxHgb1MAPhHQgHkyF08Gr/L8B/Eb6zWnmCJ7AJVLubQOheArXvJ1A4EXi6j4I+Zg9F0QFKvsnlBCmXeve+sFEnb/nCptdtQ4QYhVFRAT1HrF8UQK/RL/SbmUbclsvGVFXRZKDHUE38cc4qpkbAAsuwiImvro+ufcfaOIQ6szlrmjRJDaKZKnbjN3GWKIbiIzRFUfCffuxxKOL+3LDlDVvx2TdxN84qZEsnhNBa6pgm2dAsnzbLsETdsmRFxUeHV4e+I2/ptN8TyqV8T3Dt29t7EYOuajVIw2y1Wy3M86w0zg/Fz2IvawmQAUHOVrPVfLkoScVynsqsTG0MGUs4z55nh3mnOJa+li+rl9WpPIcFfDubDeaDC+fLBdYN3QADzLauGfj4B6sZmq6CCpqmtSvF0qlUl2qf5AJIUCSlTqlb7lUG+LRfGzZGzZEyBgccMu6MuqPecNDvD4Y9Kjtj4gD+DsvKVMTcMdtqtZtmkzQstQvYje7Syep0PDSAhSOeHYXYWThEF//A/0YvYV1fSQtpKU5STtrhbQ444OtpKSWJIg3pOg8cBs7maTY1EZf07aq+hjWs7IWzdCYTGhb2CtZ47x+Uhx28AAB4nGNgYGBkAIJz765vANHnCyvqYTQAWnkHswAAeJxjYGRgYOADYgkGEGBiYARCFjAG8RgABHYAN3icY2BmYmCcwMDKwMHow5jGwMDgDqW/MkgytDAwMDGwcjKAQQMDAyOQUmCAgoA01xQGB4ZExUmMD/4/YNBjvP3/NgNEDQPjbbBKBQZGADfLDgsAAHicY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQzMCQqKClOUJz0/z9YHRLv/+L7D+8V3cuHmgAHjGwM6ELUByxUMIOZCmbgAAA5LQ8XeJxjYGRgYABiO68w73h+m68M3EwMIHC+sKIeTqsyqDLeZrwN5HIwgKUB/aYJUgAAeJxjYGRgYLzNwMCgx8QAAkA2IwMqYAIAMGIB7QIAAAACAAAlACUAJQAlAAAAAFAAAAUAAHicbY49asNAEIU/2ZJDfkiRIvXapUFCEqpcptABUrg3ZhEiQoKVfY9UqVLlGDlADpAT5e16IUWysMz3hjfzBrjjjQT/EjKpCy+4YhN5yZoxcirPe+SMWz4jr6S+5UzSa3VuwpTnBfc8RF7yxDZyKs9r5IxHPiKv1P9iZqDnyAvMQ39UecbScVb/gJO03Xk4CFom3XYK1clhMdQUlKo7/d9NF13RkIdfy+MV7TSe2sl11tRFaXYmJKpWTd7kdVnJ8veevZKc+n3I93t9Jnvr5n4aTVWU/0z9AI2qMkV4nGNgZkAGjAxoAAAAjgAF) format("woff"),url(data:font/ttf;base64,AAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=) format("truetype"),url(/assets/slick.12459f22.svg#slick) format("svg")}.slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translateY(-50%);cursor:pointer;color:transparent;border:none;outline:none;background:transparent}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:transparent;outline:none;background:transparent}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:"\2190"}[dir=rtl] .slick-prev:before{content:"\2192"}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:"\2192"}[dir=rtl] .slick-next:before{content:"\2190"}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:none;background:transparent}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}.slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:"\2022";text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translateZ(0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:""}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}.bg-blue-animate{animation:blur-animate .2s ease-in;backdrop-filter:blur(10px)}@keyframes blur-animate{0%{backdrop-filter:blur(1px)}to{backdrop-filter:blur(10px)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}table thead th:first-of-type{border-top-left-radius:8px}table thead th:last-of-type{border-top-right-radius:8px}.last-row td:first-of-type{border-bottom-left-radius:8px}.last-row td:last-of-type{border-bottom-right-radius:8px}.slick-prev{left:-40px}.slick-next{right:-40px}.slick-prev,.slick-next{z-index:100}.chakra-popover__popper{z-index:9999!important}.inbound-item .chakra-checkbox__label{max-width:100%;width:100%}.react-datepicker__navigation.react-datepicker__navigation--previous,.react-datepicker__navigation.react-datepicker__navigation--next{padding-top:6px}.react-datepicker{background-color:var(--chakra-colors-white)!important;border:1px solid var(--chakra-colors-gray-200);border-radius:var(--chakra-radii-md)!important;position:relative}.chakra-ui-dark .react-datepicker{background-color:var(--chakra-colors-gray-700)!important;border:1px solid var(--chakra-colors-gray-600);border-radius:var(--chakra-radii-md)!important;position:relative}.react-datepicker__header{text-align:center;background-color:unset;position:relative;border-bottom:1px solid var(--chakra-colors-gray-200)}.chakra-ui-dark .react-datepicker__header{border-bottom:1px solid var(--chakra-colors-gray-600)}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:var(--chakra-colors-white)}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:var(--chakra-colors-gray-200)}.chakra-ui-dark .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:var(--chakra-colors-gray-700)}.chakra-ui-dark .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:var(--chakra-colors-gray-600)}.react-datepicker__current-month,.react-datepicker__day-name,.react-datepicker__day{color:var(--chakra-colors-chakra-body-text)!important}.chakra-ui-dark .react-datepicker__current-month,.chakra-ui-dark .react-datepicker__day-name,.chakra-ui-dark .react-datepicker__day{color:var(--chakra-colors-gray-300)!important}.react-datepicker__day:hover{border-radius:.3rem;background-color:var(--chakra-colors-primary-300)!important;color:var(--chakra-colors-white)!important}.chakra-ui-dark .react-datepicker__day:hover{border-radius:.3rem;background-color:var(--chakra-colors-primary-500)!important;color:var(--chakra-colors-gray-800)!important}.react-datepicker__day--disabled{color:var(--chakra-colors-gray-400)!important}.react-datepicker__day--disabled:hover{background-color:transparent!important;color:var(--chakra-colors-gray-400)!important}.chakra-ui-dark .react-datepicker__day--disabled{color:var(--chakra-colors-gray-500)!important}.chakra-ui-dark .react-datepicker__day--disabled:hover{background-color:transparent!important;color:var(--chakra-colors-gray-500)!important}.react-datepicker__day--keyboard-selected,.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range{border-radius:.3rem;background-color:var(--chakra-colors-primary-500)!important;color:var(--chakra-colors-white)!important}.chakra-ui-dark .react-datepicker__day--keyboard-selected,.chakra-ui-dark .react-datepicker__day--selected,.chakra-ui-dark .react-datepicker__day--in-selecting-range,.chakra-ui-dark .react-datepicker__day--in-range{border-radius:.3rem;background-color:var(--chakra-colors-primary-200)!important;color:var(--chakra-colors-gray-800)!important}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range){border-radius:.3rem;background-color:var(--chakra-colors-primary-400)!important}.chakra-ui-dark .react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range){border-radius:.3rem;background-color:var(--chakra-colors-primary-400)!important}.react-datepicker__day--outside-month{visibility:hidden}.datepicker-panel .react-datepicker{background-color:unset;border:unset;border-radius:unset;display:inline-block;position:relative}.green{background:#66ff99}.red{background:#e53e3e}.orange{background:#fbd38d}.circle{min-width:10px;min-height:10px;border-radius:50%;box-shadow:0 0 1px 1px #0000001a}.pulse{animation:pulse-animation 3s infinite}.pulse.green{animation:green-pulse-animation 3s infinite}.pulse.red{animation:red-pulse-animation 3s infinite}.pulse.orange{animation:orange-pulse-animation 3s infinite}@keyframes pulse-animation{0%{box-shadow:0 0 #0006}to{box-shadow:0 0 0 10px #0000}}@keyframes green-pulse-animation{0%{box-shadow:0 0 #66ff9975}to{box-shadow:0 0 0 10px #6f90}}@keyframes red-pulse-animation{0%{box-shadow:0 0 #e53e3e8c}to{box-shadow:0 0 0 10px #e53e3e00}}@keyframes orange-pulse-animation{0%{box-shadow:0 0 #fbd38d85}to{box-shadow:0 0 0 10px #fbd38d00}}.flex-status{display:flex;align-items:center;justify-content:start;gap:.7rem} diff --git a/app/dashboard/build/assets/index.59de2328.css b/app/dashboard/build/assets/index.59de2328.css deleted file mode 100644 index 1128601e..00000000 --- a/app/dashboard/build/assets/index.59de2328.css +++ /dev/null @@ -1,6 +0,0 @@ -@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{margin-left:-4px;position:absolute;width:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px;content:"";z-index:-1;border-width:8px;left:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{top:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:after{bottom:0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker-wrapper{display:inline-block;padding:0;border:0;width:100%}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{padding-top:10px}.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle,.react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle{left:auto;right:50px}.react-datepicker-popper[data-placement^=top]{padding-bottom:10px}.react-datepicker-popper[data-placement^=right]{padding-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{padding-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:white;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day-names,.react-datepicker__week{white-space:nowrap}.react-datepicker__day-names{margin-bottom:-8px}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__month--selected,.react-datepicker__month--in-selecting-range,.react-datepicker__month--in-range,.react-datepicker__quarter--selected,.react-datepicker__quarter--in-selecting-range,.react-datepicker__quarter--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__month--selected:hover,.react-datepicker__month--in-selecting-range:hover,.react-datepicker__month--in-range:hover,.react-datepicker__quarter--selected:hover,.react-datepicker__quarter--in-selecting-range:hover,.react-datepicker__quarter--in-range:hover{background-color:#1d5d90}.react-datepicker__month--disabled,.react-datepicker__quarter--disabled{color:#ccc;pointer-events:none}.react-datepicker__month--disabled:hover,.react-datepicker__quarter--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:hover,.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover,.react-datepicker__year-text:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover,.react-datepicker__month-text--highlighted:hover,.react-datepicker__quarter-text--highlighted:hover,.react-datepicker__year-text--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--in-range:hover,.react-datepicker__month-text--selected:hover,.react-datepicker__month-text--in-selecting-range:hover,.react-datepicker__month-text--in-range:hover,.react-datepicker__quarter-text--selected:hover,.react-datepicker__quarter-text--in-selecting-range:hover,.react-datepicker__quarter-text--in-range:hover,.react-datepicker__year-text--selected:hover,.react-datepicker__year-text--in-selecting-range:hover,.react-datepicker__year-text--in-range:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:hover,.react-datepicker__month-text--keyboard-selected:hover,.react-datepicker__quarter-text--keyboard-selected:hover,.react-datepicker__year-text--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover,.react-datepicker__month-text--disabled:hover,.react-datepicker__quarter-text--disabled:hover,.react-datepicker__year-text--disabled:hover{background-color:transparent}.react-datepicker__month-text.react-datepicker__month--selected:hover,.react-datepicker__month-text.react-datepicker__month--in-range:hover,.react-datepicker__month-text.react-datepicker__quarter--selected:hover,.react-datepicker__month-text.react-datepicker__quarter--in-range:hover,.react-datepicker__quarter-text.react-datepicker__month--selected:hover,.react-datepicker__quarter-text.react-datepicker__month--in-range:hover,.react-datepicker__quarter-text.react-datepicker__quarter--selected:hover,.react-datepicker__quarter-text.react-datepicker__quarter--in-range:hover{background-color:#216ba5}.react-datepicker__month-text:hover,.react-datepicker__quarter-text:hover{background-color:#f0f0f0}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"\d7"}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px),(max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color: #ebebeb;--highlight-color: #f5f5f5;--animation-duration: 1.5s;--animation-direction: normal;--pseudo-element-display: block;background-color:var(--base-color);width:100%;border-radius:.25rem;display:inline-flex;line-height:1;position:relative;overflow:hidden;z-index:1}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:linear-gradient(90deg,var(--base-color),var(--highlight-color),var(--base-color));transform:translate(-100%);animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite}.jsoneditor input,.jsoneditor input:not([type]),.jsoneditor input[type=text],.jsoneditor input[type=search],.jsoneditor-modal input,.jsoneditor-modal input:not([type]),.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=search]{height:auto;border:inherit;box-shadow:none;font-size:inherit;box-sizing:inherit;padding:inherit;font-family:inherit;transition:none;line-height:inherit}.jsoneditor input:focus,.jsoneditor input:not([type]):focus,.jsoneditor input[type=text]:focus,.jsoneditor input[type=search]:focus,.jsoneditor-modal input:focus,.jsoneditor-modal input:not([type]):focus,.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal input[type=search]:focus{border:inherit;box-shadow:inherit}.jsoneditor textarea,.jsoneditor-modal textarea{height:inherit}.jsoneditor select,.jsoneditor-modal select{display:inherit;height:inherit}.jsoneditor label,.jsoneditor-modal label{font-size:inherit;font-weight:inherit;color:inherit}.jsoneditor table,.jsoneditor-modal table{border-collapse:collapse;width:auto}.jsoneditor td,.jsoneditor th,.jsoneditor-modal td,.jsoneditor-modal th{padding:0;display:table-cell;text-align:left;vertical-align:inherit;border-radius:inherit}.jsoneditor .autocomplete.dropdown{position:absolute;background:#ffffff;box-shadow:2px 2px 12px #8080804d;border:1px solid #d3d3d3;overflow-x:hidden;overflow-y:auto;cursor:default;margin:0;padding:5px;text-align:left;outline:0;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px}.jsoneditor .autocomplete.dropdown .item{color:#1a1a1a}.jsoneditor .autocomplete.dropdown .item.hover{background-color:#ebebeb}.jsoneditor .autocomplete.hint{color:#a1a1a1;top:4px;left:4px}.jsoneditor-contextmenu-root{position:relative;width:0;height:0}.jsoneditor-contextmenu{position:absolute;box-sizing:content-box;z-index:2}.jsoneditor-contextmenu .jsoneditor-menu{position:relative;left:0;top:0;width:128px;height:auto;background:#ffffff;border:1px solid #d3d3d3;box-shadow:2px 2px 12px #8080804d;list-style:none;margin:0;padding:0}.jsoneditor-contextmenu .jsoneditor-menu button{position:relative;padding:0 8px 0 0;margin:0;width:128px;height:auto;border:none;cursor:pointer;color:#4d4d4d;background:transparent;font-size:14px;font-family:arial,sans-serif;box-sizing:border-box;text-align:left}.jsoneditor-contextmenu .jsoneditor-menu button::-moz-focus-inner{padding:0;border:0}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-default{width:96px}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-expand{float:right;width:32px;height:24px;border-left:1px solid #e5e5e5}.jsoneditor-contextmenu .jsoneditor-menu li{overflow:hidden}.jsoneditor-contextmenu .jsoneditor-menu li ul{display:none;position:relative;left:-10px;top:0;border:none;box-shadow:inset 0 0 10px #80808080;padding:0 10px;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.jsoneditor-contextmenu .jsoneditor-menu li ul .jsoneditor-icon{margin-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li ul li button{padding-left:24px;animation:all ease-in-out 1s}.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{position:absolute;top:0;right:0;width:24px;height:24px;padding:0;margin:0 4px 0 0;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:0 -72px}.jsoneditor-contextmenu .jsoneditor-icon{position:absolute;top:0;left:0;width:24px;height:24px;border:none;padding:0;margin:0;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg)}.jsoneditor-contextmenu .jsoneditor-text{padding:4px 0 4px 24px;word-wrap:break-word}.jsoneditor-contextmenu .jsoneditor-text.jsoneditor-right-margin{padding-right:24px}.jsoneditor-contextmenu .jsoneditor-separator{height:0;border-top:1px solid #e5e5e5;padding-top:5px;margin-top:5px}.jsoneditor-contextmenu button.jsoneditor-remove .jsoneditor-icon{background-position:-24px 0}.jsoneditor-contextmenu button.jsoneditor-append .jsoneditor-icon,.jsoneditor-contextmenu button.jsoneditor-insert .jsoneditor-icon{background-position:0 0}.jsoneditor-contextmenu button.jsoneditor-duplicate .jsoneditor-icon{background-position:-48px 0}.jsoneditor-contextmenu button.jsoneditor-sort-asc .jsoneditor-icon{background-position:-168px 0}.jsoneditor-contextmenu button.jsoneditor-sort-desc .jsoneditor-icon{background-position:-192px 0}.jsoneditor-contextmenu button.jsoneditor-transform .jsoneditor-icon{background-position:-216px 0}.jsoneditor-contextmenu button.jsoneditor-extract .jsoneditor-icon{background-position:0 -24px}.jsoneditor-contextmenu button.jsoneditor-type-string .jsoneditor-icon{background-position:-144px 0}.jsoneditor-contextmenu button.jsoneditor-type-auto .jsoneditor-icon{background-position:-120px 0}.jsoneditor-contextmenu button.jsoneditor-type-object .jsoneditor-icon{background-position:-72px 0}.jsoneditor-contextmenu button.jsoneditor-type-array .jsoneditor-icon{background-position:-96px 0}.jsoneditor-contextmenu button.jsoneditor-type-modes .jsoneditor-icon{background-image:none;width:6px}.jsoneditor-contextmenu ul,.jsoneditor-contextmenu li{box-sizing:content-box;position:relative}.jsoneditor-contextmenu .jsoneditor-menu button:hover,.jsoneditor-contextmenu .jsoneditor-menu button:focus{color:#1a1a1a;background-color:#f5f5f5;outline:none}.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:hover,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:focus{color:#fff;background-color:#ee422e}.jsoneditor-contextmenu .jsoneditor-menu li ul li button:hover,.jsoneditor-contextmenu .jsoneditor-menu li ul li button:focus{background-color:#f5f5f5}.jsoneditor-modal{max-width:95%;border-radius:2px!important;padding:45px 15px 15px!important;box-shadow:2px 2px 12px #8080804d;color:#4d4d4d;line-height:1.3em}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;padding:0 10px;height:30px;line-height:30px;font-family:arial,sans-serif;font-size:11pt;background:#3883fa;color:#fff}.jsoneditor-modal table{width:100%}.jsoneditor-modal table td{padding:3px 0}.jsoneditor-modal table td.jsoneditor-modal-input{text-align:right;padding-right:0;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal table th{vertical-align:middle}.jsoneditor-modal p:first-child{margin-top:0}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal .jsoneditor-jmespath-block{margin-bottom:10px}.jsoneditor-modal .pico-close{background:none!important;font-size:24px!important;top:7px!important;right:7px!important;color:#fff}.jsoneditor-modal input{padding:4px}.jsoneditor-modal input[type=text]{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:gray}.jsoneditor-modal .jsoneditor-select-wrapper{position:relative;display:inline-block}.jsoneditor-modal .jsoneditor-select-wrapper:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #666;position:absolute;right:8px;top:14px;pointer-events:none}.jsoneditor-modal select{padding:3px 24px 3px 10px;min-width:180px;max-width:350px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:0;text-overflow:"";font-size:14px;line-height:1.5em}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{padding:4px 10px;margin:0;border-radius:0;border-left-style:none}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-top-left-radius:3px;border-bottom-left-radius:3px;border-left-style:solid}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-top-right-radius:3px;border-bottom-right-radius:3px}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{line-height:1.2em;width:100%;padding:0;border-radius:3px}.jsoneditor-modal .jsoneditor-jmespath-label{font-weight:700;color:#1e90ff;margin-top:20px;margin-bottom:5px}.jsoneditor-modal .jsoneditor-jmespath-wizard-table{width:100%;border-collapse:collapse}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px}.jsoneditor-modal .jsoneditor-inline{position:relative;display:inline-block;width:100%;padding-top:2px;padding-bottom:2px}.jsoneditor-modal .jsoneditor-inline:not(:last-child){padding-right:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:180px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{min-width:180px;flex:1}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .jsoneditor-jmespath-select-fields{width:100%}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}.jsoneditor-modal table th,.jsoneditor-modal table td{text-align:left;vertical-align:middle;font-weight:400;color:#4d4d4d;border-spacing:0;border-collapse:collapse}.jsoneditor-modal select,.jsoneditor-modal textarea,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal #query{background:#ffffff;border:1px solid #d3d3d3;color:#4d4d4d;border-radius:3px;padding:4px}.jsoneditor-modal textarea,.jsoneditor-modal #query{border-radius:unset}.jsoneditor-modal,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal select,.jsoneditor-modal option,.jsoneditor-modal textarea,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal #query{font-size:10.5pt;font-family:arial,sans-serif}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;width:100%;box-sizing:border-box}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal select,.jsoneditor-modal input{cursor:pointer}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor{color:#1a1a1a;border:thin solid #3883fa;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;position:relative;padding:0;line-height:100%}div.jsoneditor-field,div.jsoneditor-value,div.jsoneditor-readonly,div.jsoneditor-default{border:1px solid transparent;min-height:16px;min-width:32px;line-height:16px;padding:2px;margin:1px;word-wrap:break-word;float:left}div.jsoneditor-field p,div.jsoneditor-value p{margin:0}div.jsoneditor-value{word-break:break-word}div.jsoneditor-value.jsoneditor-empty:after{content:"value"}div.jsoneditor-value.jsoneditor-string{color:#006000}div.jsoneditor-value.jsoneditor-number{color:#ee422e}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-value.jsoneditor-color-value,div.jsoneditor-value.jsoneditor-invalid{color:#1a1a1a}div.jsoneditor-readonly{min-width:16px;color:gray}div.jsoneditor-empty{border-color:#d3d3d3;border-style:dashed;border-radius:2px}div.jsoneditor-field.jsoneditor-empty:after{content:"field"}div.jsoneditor td{vertical-align:top}div.jsoneditor td.jsoneditor-separator{padding:3px 0;vertical-align:top;color:gray}div.jsoneditor td.jsoneditor-tree{vertical-align:top}div.jsoneditor.busy pre.jsoneditor-preview{background:#f5f5f5;color:gray}div.jsoneditor.busy div.jsoneditor-busy{display:inherit}div.jsoneditor code.jsoneditor-preview{background:none}div.jsoneditor.jsoneditor-mode-preview pre.jsoneditor-preview{width:100%;height:100%;box-sizing:border-box;overflow:auto;padding:2px;margin:0;white-space:pre-wrap;word-break:break-all}div.jsoneditor-default{color:gray;padding-left:10px}div.jsoneditor-tree{width:100%;height:100%;position:relative;overflow:auto;background:#ffffff}div.jsoneditor-tree button.jsoneditor-button{width:24px;height:24px;padding:0;margin:0;border:none;cursor:pointer;background-color:transparent;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg)}div.jsoneditor-tree button.jsoneditor-button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu-button{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-invisible{visibility:hidden;background:none}div.jsoneditor-tree button.jsoneditor-dragarea{background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-72px -72px;cursor:move}div.jsoneditor-tree *:focus{outline:none}div.jsoneditor-tree div.jsoneditor-show-more{display:inline-block;padding:3px 4px;margin:2px 0;background-color:#e5e5e5;border-radius:3px;color:gray;font-family:arial,sans-serif;font-size:14px}div.jsoneditor-tree div.jsoneditor-show-more a{display:inline-block;color:gray}div.jsoneditor-tree div.jsoneditor-color{display:inline-block;width:12px;height:12px;margin:4px;border:1px solid #808080;cursor:pointer}div.jsoneditor-tree div.jsoneditor-color.jsoneditor-color-readonly{cursor:inherit}div.jsoneditor-tree div.jsoneditor-date{background:#a1a1a1;color:#fff;font-family:arial,sans-serif;border-radius:3px;display:inline-block;padding:3px;margin:0 3px}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree .jsoneditor-button{display:block}div.jsoneditor-tree .jsoneditor-button.jsoneditor-schema-error{width:24px;height:24px;padding:0;margin:0 4px 0 0;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;background-color:transparent}div.jsoneditor-outer{position:static;width:100%;height:100%;margin:0;padding:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div.jsoneditor-outer.has-nav-bar{margin-top:-26px;padding-top:26px}div.jsoneditor-outer.has-nav-bar.has-main-menu-bar{margin-top:-61px;padding-top:61px}div.jsoneditor-outer.has-status-bar{margin-bottom:-26px;padding-bottom:26px}div.jsoneditor-outer.has-main-menu-bar{margin-top:-35px;padding-top:35px}div.jsoneditor-busy{position:absolute;top:15%;left:0;box-sizing:border-box;width:100%;text-align:center;display:none}div.jsoneditor-busy span{background-color:#ffffab;border:1px solid #ffee00;border-radius:3px;padding:5px 15px;box-shadow:0 0 5px #0006}div.jsoneditor-field.jsoneditor-empty:after,div.jsoneditor-value.jsoneditor-empty:after{pointer-events:none;color:#d3d3d3;font-size:8pt}div.jsoneditor-value.jsoneditor-url,a.jsoneditor-value.jsoneditor-url{color:#006000;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;padding:2px;margin:2px}a.jsoneditor-value.jsoneditor-url:hover,a.jsoneditor-value.jsoneditor-url:focus{color:#ee422e}div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover,div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-value.jsoneditor-highlight{background-color:#ffffab;border:1px solid #ffee00;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-object,div.jsoneditor-value.jsoneditor-array{min-width:16px}div.jsoneditor-tree button.jsoneditor-contextmenu-button:hover,div.jsoneditor-tree button.jsoneditor-contextmenu-button:focus,div.jsoneditor-tree button.jsoneditor-contextmenu-button.jsoneditor-selected,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{background-position:-48px -48px}div.jsoneditor-tree div.jsoneditor-show-more a:hover,div.jsoneditor-tree div.jsoneditor-show-more a:focus{color:#ee422e}textarea.jsoneditor-text,.ace-jsoneditor{min-height:150px}textarea.jsoneditor-text.ace_editor,.ace-jsoneditor.ace_editor{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace}textarea.jsoneditor-text{width:100%;height:100%;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;outline-width:0;border:none;background-color:#fff;resize:none}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}tr.jsoneditor-selected button.jsoneditor-dragarea,tr.jsoneditor-selected button.jsoneditor-contextmenu-button{visibility:hidden}tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{visibility:visible}div.jsoneditor-tree button.jsoneditor-dragarea:hover,div.jsoneditor-tree button.jsoneditor-dragarea:focus,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}div.jsoneditor tr,div.jsoneditor th,div.jsoneditor td{padding:0;margin:0}div.jsoneditor-field,div.jsoneditor-value,div.jsoneditor td,div.jsoneditor th,div.jsoneditor textarea,pre.jsoneditor-preview,.jsoneditor-schema-error,.jsoneditor-popover{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;color:#1a1a1a}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}.jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px #0006;color:#fff;padding:7px 10px;position:absolute;cursor:auto;width:200px}.jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-popover.jsoneditor-below{top:32px;left:-98px}.jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-popover.jsoneditor-left{top:-7px;right:32px}.jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:"";top:19px;right:-14px;left:inherit;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-popover.jsoneditor-right{top:-7px;left:32px}.jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;border-top:7px solid transparent;border-bottom:7px solid transparent;content:"";top:19px;left:-14px;margin-left:inherit;margin-top:-7px;position:absolute}.jsoneditor-popover:before{border-right:7px solid transparent;border-left:7px solid transparent;content:"";display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-text-errors tr.jump-to-line:hover{text-decoration:underline;cursor:pointer}.jsoneditor-schema-error:hover .jsoneditor-popover,.jsoneditor-schema-error:focus .jsoneditor-popover{display:block;animation:fade-in .3s linear 1,move-up .3s linear 1}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.jsoneditor .jsoneditor-validation-errors-container{max-height:130px;overflow-y:auto}.jsoneditor .jsoneditor-validation-errors{width:100%;overflow:hidden}.jsoneditor .jsoneditor-additional-errors{position:absolute;margin:auto;bottom:31px;left:calc(50% - 92px);color:gray;background-color:#ebebeb;padding:7px 15px;border-radius:8px}.jsoneditor .jsoneditor-additional-errors.visible{visibility:visible;opacity:1;transition:opacity 2s linear}.jsoneditor .jsoneditor-additional-errors.hidden{visibility:hidden;opacity:0;transition:visibility 0s 2s,opacity 2s linear}.jsoneditor .jsoneditor-text-errors{width:100%;border-collapse:collapse;border-top:1px solid #ffc700}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor .jsoneditor-text-errors td pre{margin:0;white-space:pre-wrap}.jsoneditor .jsoneditor-text-errors tr{background-color:#ffffab}.jsoneditor .jsoneditor-text-errors tr.parse-error{background-color:#ee2e2e70}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;width:24px;height:24px;padding:0;margin:0 4px 0 0;cursor:pointer}.jsoneditor-text-errors tr .jsoneditor-schema-error{background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;background-color:transparent}.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-25px 0px;background-color:transparent}.jsoneditor-anchor{cursor:pointer}.jsoneditor-anchor .picker_wrapper.popup.popup_bottom{top:28px;left:-10px}.fadein{-webkit-animation:fadein .3s;animation:fadein .3s;-moz-animation:fadein .3s;-o-animation:fadein .3s}@keyframes fadein{0%{opacity:0}to{opacity:1}}.jsoneditor-modal input[type=search].selectr-input{border:1px solid #d3d3d3;width:calc(100% - 4px);margin:2px;padding:4px;box-sizing:border-box}.jsoneditor-modal button.selectr-input-clear{right:8px}.jsoneditor-menu{width:100%;height:35px;padding:2px;margin:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;background-color:#3883fa;border-bottom:1px solid #3883fa}.jsoneditor-menu>button,.jsoneditor-menu>.jsoneditor-modes>button{width:26px;height:26px;margin:2px;padding:0;border-radius:2px;border:1px solid transparent;background-color:transparent;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);color:#fff;opacity:.8;font-family:arial,sans-serif;font-size:14px;float:left}.jsoneditor-menu>button:hover,.jsoneditor-menu>.jsoneditor-modes>button:hover{background-color:#fff3;border:1px solid rgba(255,255,255,.4)}.jsoneditor-menu>button:focus,.jsoneditor-menu>button:active,.jsoneditor-menu>.jsoneditor-modes>button:focus,.jsoneditor-menu>.jsoneditor-modes>button:active{background-color:#ffffff4d}.jsoneditor-menu>button:disabled,.jsoneditor-menu>.jsoneditor-modes>button:disabled{opacity:.5;background-color:transparent;border:none}.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-transform,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-transform{display:none}.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}.jsoneditor-menu>.jsoneditor-modes{display:inline-block;float:left}.jsoneditor-menu>.jsoneditor-modes>button{background-image:none;width:auto;padding-left:6px;padding-right:6px}.jsoneditor-menu>button.jsoneditor-separator,.jsoneditor-menu>.jsoneditor-modes>button.jsoneditor-separator{margin-left:10px}.jsoneditor-menu a{font-family:arial,sans-serif;font-size:14px;color:#fff;opacity:.8;vertical-align:middle}.jsoneditor-menu a:hover{opacity:1}.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;position:absolute;right:0;top:0;padding:10px}.jsoneditor-navigation-bar{width:100%;height:26px;line-height:26px;padding:0;margin:0;border-bottom:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:gray;background-color:#ebebeb;overflow:hidden;font-family:arial,sans-serif;font-size:14px}.jsoneditor-search{font-family:arial,sans-serif;position:absolute;right:4px;top:4px;border-collapse:collapse;border-spacing:0;display:flex}.jsoneditor-search input{color:#1a1a1a;width:120px;border:none;outline:none;margin:1px;line-height:20px;font-family:arial,sans-serif}.jsoneditor-search button{width:16px;height:24px;padding:0;margin:0;border:none;background:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);vertical-align:top}.jsoneditor-search button:hover{background-color:transparent}.jsoneditor-search button.jsoneditor-refresh{width:18px;background-position:-99px -73px}.jsoneditor-search button.jsoneditor-next{cursor:pointer;background-position:-124px -73px}.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}.jsoneditor-search button.jsoneditor-previous{cursor:pointer;background-position:-148px -73px;margin-right:2px}.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}.jsoneditor-results{font-family:arial,sans-serif;color:#fff;padding-right:5px;line-height:26px}.jsoneditor-frame{border:1px solid transparent;background-color:#fff;padding:0 2px;margin:0}.jsoneditor-statusbar{line-height:26px;height:26px;color:gray;background-color:#ebebeb;border-top:1px solid #d3d3d3;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px}.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}.jsoneditor-statusbar>.jsoneditor-curserinfo-count{margin-left:4px}.jsoneditor-statusbar>.jsoneditor-validation-error-icon{float:right;width:24px;height:24px;padding:0;margin-top:1px;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-168px -48px;cursor:pointer}.jsoneditor-statusbar>.jsoneditor-validation-error-count{float:right;margin:0 4px 0 0;cursor:pointer}.jsoneditor-statusbar>.jsoneditor-parse-error-icon{float:right;width:24px;height:24px;padding:0;margin:1px;background-image:url(/dashboard/assets/jsoneditor-icons.45c98bf0.svg);background-position:-25px 0px}.jsoneditor-statusbar .jsoneditor-array-info a{color:inherit}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label,div.jsoneditor-statusbar>.jsoneditor-size-info{margin:0 4px}.jsoneditor-treepath{padding:0 5px;overflow:hidden;white-space:nowrap;outline:none}.jsoneditor-treepath.show-all{word-wrap:break-word;white-space:normal;position:absolute;background-color:#ebebeb;z-index:1;box-shadow:2px 2px 12px #8080804d}.jsoneditor-treepath.show-all span.jsoneditor-treepath-show-all-btn{display:none}.jsoneditor-treepath div.jsoneditor-contextmenu-root{position:absolute;left:0}.jsoneditor-treepath .jsoneditor-treepath-show-all-btn{position:absolute;background-color:#ebebeb;left:0;height:20px;padding:0 3px;cursor:pointer}.jsoneditor-treepath .jsoneditor-treepath-element{margin:1px;font-family:arial,sans-serif;font-size:14px}.jsoneditor-treepath .jsoneditor-treepath-seperator{margin:2px;font-size:9pt;font-family:arial,sans-serif}.jsoneditor-treepath span.jsoneditor-treepath-element:hover,.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}/*! - * Selectr 2.4.13 - * http://mobius.ovh/docs/selectr - * - * Released under the MIT license - */.selectr-container{position:relative}.selectr-container li{list-style:none}.selectr-hidden{position:absolute;overflow:hidden;clip:rect(0px,0px,0px,0px);width:1px;height:1px;margin:-1px;padding:0;border:0 none}.selectr-visible{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;z-index:11}.selectr-desktop.multiple .selectr-visible{display:none}.selectr-desktop.multiple.native-open .selectr-visible{top:100%;min-height:200px!important;height:auto;opacity:1;display:block}.selectr-container.multiple.selectr-mobile .selectr-selected{z-index:0}.selectr-selected{position:relative;z-index:1;box-sizing:border-box;width:100%;padding:7px 28px 7px 14px;cursor:pointer;border:1px solid #999999;border-radius:3px;background-color:#fff}.selectr-selected:before{position:absolute;top:50%;right:10px;width:0;height:0;content:"";-o-transform:rotate(0deg) translate3d(0px,-50%,0px);-ms-transform:rotate(0deg) translate3d(0px,-50%,0px);-moz-transform:rotate(0deg) translate3d(0px,-50%,0px);-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0);border-width:4px 4px 0 4px;border-style:solid;border-color:#6c7a86 transparent transparent}.selectr-container.open .selectr-selected:before,.selectr-container.native-open .selectr-selected:before{border-width:0 4px 4px 4px;border-style:solid;border-color:transparent transparent #6c7a86}.selectr-label{display:none;overflow:hidden;width:100%;white-space:nowrap;text-overflow:ellipsis}.selectr-placeholder{color:#6c7a86}.selectr-tags{margin:0;padding:0;white-space:normal}.has-selected .selectr-tags{margin:0 0 -2px}.selectr-tag{list-style:none;position:relative;float:left;padding:2px 25px 2px 8px;margin:0 2px 2px 0;cursor:default;color:#fff;border:medium none;border-radius:10px;background:#acb7bf none repeat scroll 0 0}.selectr-container.multiple.has-selected .selectr-selected{padding:5px 28px 5px 5px}.selectr-options-container{position:absolute;z-index:10000;top:calc(100% - 1px);left:0;display:none;box-sizing:border-box;width:100%;border-width:0 1px 1px;border-style:solid;border-color:transparent #999999 #999999;border-radius:0 0 3px 3px;background-color:#fff}.selectr-container.open .selectr-options-container{display:block}.selectr-input-container{position:relative;display:none}.selectr-clear,.selectr-input-clear,.selectr-tag-remove{position:absolute;top:50%;right:22px;width:20px;height:20px;padding:0;cursor:pointer;-o-transform:translate3d(0px,-50%,0px);-ms-transform:translate3d(0px,-50%,0px);-moz-transform:translate3d(0px,-50%,0px);-webkit-transform:translate3d(0px,-50%,0px);transform:translate3d(0,-50%,0);border:medium none;background-color:transparent;z-index:11}.selectr-clear,.selectr-input-clear{display:none}.selectr-container.has-selected .selectr-clear,.selectr-input-container.active .selectr-input-clear{display:block}.selectr-selected .selectr-tag-remove{right:2px}.selectr-clear:before,.selectr-clear:after,.selectr-input-clear:before,.selectr-input-clear:after,.selectr-tag-remove:before,.selectr-tag-remove:after{position:absolute;top:5px;left:9px;width:2px;height:10px;content:" ";background-color:#6c7a86}.selectr-tag-remove:before,.selectr-tag-remove:after{top:4px;width:3px;height:12px;background-color:#fff}.selectr-clear:before,.selectr-input-clear:before,.selectr-tag-remove:before{-o-transform:rotate(45deg);-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.selectr-clear:after,.selectr-input-clear:after,.selectr-tag-remove:after{-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.selectr-input-container.active,.selectr-input-container.active .selectr-clear{display:block}.selectr-input{top:5px;left:5px;box-sizing:border-box;width:calc(100% - 30px);margin:10px 15px;padding:7px 30px 7px 9px;border:1px solid #999999;border-radius:3px}.selectr-notice{display:none;box-sizing:border-box;width:100%;padding:8px 16px;border-top:1px solid #999999;border-radius:0 0 3px 3px;background-color:#fff}.selectr-container.notice .selectr-notice{display:block}.selectr-container.notice .selectr-selected{border-radius:3px 3px 0 0}.selectr-options{position:relative;top:calc(100% + 2px);display:none;overflow-x:auto;overflow-y:scroll;max-height:200px;margin:0;padding:0}.selectr-container.open .selectr-options,.selectr-container.open .selectr-input-container,.selectr-container.notice .selectr-options-container{display:block}.selectr-option{position:relative;display:block;padding:5px 20px;list-style:outside none none;cursor:pointer;font-weight:400}.selectr-options.optgroups>.selectr-option{padding-left:25px}.selectr-optgroup{font-weight:700;padding:0}.selectr-optgroup--label{font-weight:700;margin-top:10px;padding:5px 15px}.selectr-match{text-decoration:underline}.selectr-option.selected{background-color:#ddd}.selectr-option.active{color:#fff;background-color:#5897fb}.selectr-option.disabled{opacity:.4}.selectr-option.excluded{display:none}.selectr-container.open .selectr-selected{border-color:#999999 #999999 transparent #999999;border-radius:3px 3px 0 0}.selectr-container.open .selectr-selected:after{-o-transform:rotate(180deg) translate3d(0px,50%,0px);-ms-transform:rotate(180deg) translate3d(0px,50%,0px);-moz-transform:rotate(180deg) translate3d(0px,50%,0px);-webkit-transform:rotate(180deg) translate3d(0px,50%,0px);transform:rotate(180deg) translate3d(0,50%,0)}.selectr-disabled{opacity:.6}.selectr-empty,.has-selected .selectr-placeholder{display:none}.has-selected .selectr-label{display:block}.taggable .selectr-selected{padding:4px 28px 4px 4px}.taggable .selectr-selected:after{display:table;content:" ";clear:both}.taggable .selectr-label{width:auto}.taggable .selectr-tags{float:left;display:block}.taggable .selectr-placeholder{display:none}.input-tag{float:left;min-width:90px;width:auto}.selectr-tag-input{border:medium none;padding:3px 10px;width:100%;font-family:inherit;font-weight:inherit;font-size:inherit}.selectr-input-container.loading:after{position:absolute;top:50%;right:20px;width:20px;height:20px;content:"";-o-transform:translate3d(0px,-50%,0px);-ms-transform:translate3d(0px,-50%,0px);-moz-transform:translate3d(0px,-50%,0px);-webkit-transform:translate3d(0px,-50%,0px);transform:translate3d(0,-50%,0);-o-transform-origin:50% 0 0;-ms-transform-origin:50% 0 0;-moz-transform-origin:50% 0 0;-webkit-transform-origin:50% 0 0;transform-origin:50% 0 0;-moz-animation:.5s linear 0s normal forwards infinite running selectr-spin;-webkit-animation:.5s linear 0s normal forwards infinite running selectr-spin;animation:.5s linear 0s normal forwards infinite running selectr-spin;border-width:3px;border-style:solid;border-color:#aaa #ddd #ddd;border-radius:50%}@-webkit-keyframes selectr-spin{0%{-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0)}to{-webkit-transform:rotate(360deg) translate3d(0px,-50%,0px);transform:rotate(360deg) translate3d(0,-50%,0)}}@keyframes selectr-spin{0%{-webkit-transform:rotate(0deg) translate3d(0px,-50%,0px);transform:rotate(0) translate3d(0,-50%,0)}to{-webkit-transform:rotate(360deg) translate3d(0px,-50%,0px);transform:rotate(360deg) translate3d(0,-50%,0)}}.selectr-container.open.inverted .selectr-selected{border-color:transparent #999999 #999999;border-radius:0 0 3px 3px}.selectr-container.inverted .selectr-options-container{border-width:1px 1px 0;border-color:#999999 #999999 transparent;border-radius:3px 3px 0 0;background-color:#fff}.selectr-container.inverted .selectr-options-container{top:auto;bottom:calc(100% - 1px)}.selectr-container ::-webkit-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::-moz-placeholder{color:#6c7a86;opacity:1}.selectr-container :-ms-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::placeholder{color:#6c7a86;opacity:1}.ace_gutter-cell{padding-left:20px;padding-right:16px!important}.ace_editor,.jsoneditor{border-radius:4px}.ace_editor{min-height:300px}.jsoneditor{border:0}.ace-dawn .ace_gutter{background:#ebebeb;color:#333}.ace-dawn .ace_print-margin{width:1px;background:#e8e8e8}.ace-dawn{background-color:#f9f9f9;color:#080808}.ace-dawn .ace_cursor{color:#000}.ace-dawn .ace_marker-layer .ace_selection{background:rgba(39,95,255,.3)}.ace-dawn.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px #f9f9f9}.ace-dawn .ace_marker-layer .ace_step{background:rgb(255,255,0)}.ace-dawn .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px;border:1px solid rgba(75,75,126,.5)}.ace-dawn .ace_marker-layer .ace_active-line{background:rgba(36,99,180,.12)}.ace-dawn .ace_gutter-active-line{background-color:#dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word{border:1px solid rgba(39,95,255,.3)}.ace-dawn .ace_invisible{color:#4b4b7e80}.ace-dawn .ace_keyword,.ace-dawn .ace_meta{color:#794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other{color:#811f24}.ace-dawn .ace_invalid.ace_illegal{text-decoration:underline;font-style:italic;color:#f8f8f8;background-color:#b52a1d}.ace-dawn .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#b52a1d}.ace-dawn .ace_support{color:#691c97}.ace-dawn .ace_support.ace_constant{color:#b4371f}.ace-dawn .ace_fold{background-color:#794938;border-color:#080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function{color:#693a17}.ace-dawn .ace_storage{font-style:italic;color:#a71d5d}.ace-dawn .ace_string{color:#0b6125}.ace-dawn .ace_string.ace_regexp{color:#cf5628}.ace-dawn .ace_comment{font-style:italic;color:#5a525f}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading{color:#19356d}.ace-dawn .ace_variable{color:#234a97}.ace-dawn .ace_indent-guide{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}.ace-dawn .ace_indent-guide-active{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC) right repeat-y}.ace-nord-dark .ace_gutter{color:#616e88}.ace-nord-dark .ace_print-margin{width:1px;background:#4c566a}.ace-nord-dark{background-color:#2e3440;color:#d8dee9}.ace-nord-dark .ace_entity.ace_other.ace_attribute-name,.ace-nord-dark .ace_storage,.ace-nord-dark .ace_cursor{color:#d8dee9}.ace-nord-dark .ace_string.ace_regexp{color:#bf616a}.ace-nord-dark .ace_marker-layer .ace_active-line,.ace-nord-dark .ace_marker-layer .ace_selection{background:#434c5ecc}.ace-nord-dark.ace_multiselect .ace_selection.ace_start{box-shadow:0 0 3px #2e3440}.ace-nord-dark .ace_marker-layer .ace_step{background:#ebcb8b}.ace-nord-dark .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px;border:1px solid #88c0d066}.ace-nord-dark .ace_gutter-active-line{background-color:#434c5ecc}.ace-nord-dark .ace_marker-layer .ace_selected-word{border:1px solid #88c0d066}.ace-nord-dark .ace_invisible{color:#4c566a}.ace-nord-dark .ace_keyword,.ace-nord-dark .ace_meta,.ace-nord-dark .ace_support.ace_class,.ace-nord-dark .ace_support.ace_type{color:#81a1c1}.ace-nord-dark .ace_constant.ace_character,.ace-nord-dark .ace_constant.ace_other{color:#d8dee9}.ace-nord-dark .ace_constant.ace_language{color:#5e81ac}.ace-nord-dark .ace_constant.ace_escape{color:#ebcb8b}.ace-nord-dark .ace_constant.ace_numeric{color:#b48ead}.ace-nord-dark .ace_fold{background-color:#4c566a;border-color:#d8dee9}.ace-nord-dark .ace_entity.ace_name.ace_function,.ace-nord-dark .ace_entity.ace_name.ace_tag,.ace-nord-dark .ace_support.ace_function,.ace-nord-dark .ace_variable,.ace-nord-dark .ace_variable.ace_language{color:#8fbcbb}.ace-nord-dark .ace_string{color:#a3be8c}.ace-nord-dark .ace_comment{color:#616e88}.ace-nord-dark .ace_indent-guide{box-shadow:inset -1px 0 #434c5eb3}.ace-nord-dark .ace_indent-guide-active{box-shadow:inset -1px 0 #8395b8b3}.slick-loading .slick-list{background:#fff url(/dashboard/assets/ajax-loader.e7b44c86.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(data:application/vnd.ms-fontobject;base64,AAgAAGQHAAABAAIAAAAAAAIABQkAAAAAAAABAJABAAAAAExQAQAAgCAAAAAAAAAAAAAAAAEAAAAAAAAATxDE8AAAAAAAAAAAAAAAAAAAAAAAAAoAcwBsAGkAYwBrAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAKAHMAbABpAGMAawAAAAAAAAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=);src:url(data:application/vnd.ms-fontobject;base64,AAgAAGQHAAABAAIAAAAAAAIABQkAAAAAAAABAJABAAAAAExQAQAAgCAAAAAAAAAAAAAAAAEAAAAAAAAATxDE8AAAAAAAAAAAAAAAAAAAAAAAAAoAcwBsAGkAYwBrAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAKAHMAbABpAGMAawAAAAAAAAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=) format("embedded-opentype"),url(data:font/woff;base64,d09GRk9UVE8AAAVkAAsAAAAAB1wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABCAAAAi4AAAKbH/pWDkZGVE0AAAM4AAAAGgAAABxt0civR0RFRgAAA1QAAAAcAAAAIAAyAARPUy8yAAADcAAAAFIAAABgUBj/rmNtYXAAAAPEAAAAUAAAAWIiC0SwaGVhZAAABBQAAAAuAAAANgABMftoaGVhAAAERAAAABwAAAAkA+UCA2htdHgAAARgAAAADgAAAA4ESgBKbWF4cAAABHAAAAAGAAAABgAFUABuYW1lAAAEeAAAANwAAAFuBSeBwnBvc3QAAAVUAAAAEAAAACAAAwABeJw9ks9vEkEUx2cpWyeUoFYgNkHi2Wt7N3rVm3cTs3UVLC4LxIWEQvi1P3i7O1tYLJDAmlgKGEhQrsajf0j7J3jYTXrQWUrMJG+++b55n5e8NwwKBhHDMLv5kxT3ATEBxKBn3qOAl9zxHgb1MAPhHQgHkyF08Gr/L8B/Eb6zWnmCJ7AJVLubQOheArXvJ1A4EXi6j4I+Zg9F0QFKvsnlBCmXeve+sFEnb/nCptdtQ4QYhVFRAT1HrF8UQK/RL/SbmUbclsvGVFXRZKDHUE38cc4qpkbAAsuwiImvro+ufcfaOIQ6szlrmjRJDaKZKnbjN3GWKIbiIzRFUfCffuxxKOL+3LDlDVvx2TdxN84qZEsnhNBa6pgm2dAsnzbLsETdsmRFxUeHV4e+I2/ptN8TyqV8T3Dt29t7EYOuajVIw2y1Wy3M86w0zg/Fz2IvawmQAUHOVrPVfLkoScVynsqsTG0MGUs4z55nh3mnOJa+li+rl9WpPIcFfDubDeaDC+fLBdYN3QADzLauGfj4B6sZmq6CCpqmtSvF0qlUl2qf5AJIUCSlTqlb7lUG+LRfGzZGzZEyBgccMu6MuqPecNDvD4Y9Kjtj4gD+DsvKVMTcMdtqtZtmkzQstQvYje7Syep0PDSAhSOeHYXYWThEF//A/0YvYV1fSQtpKU5STtrhbQ444OtpKSWJIg3pOg8cBs7maTY1EZf07aq+hjWs7IWzdCYTGhb2CtZ47x+Uhx28AAB4nGNgYGBkAIJz765vANHnCyvqYTQAWnkHswAAeJxjYGRgYOADYgkGEGBiYARCFjAG8RgABHYAN3icY2BmYmCcwMDKwMHow5jGwMDgDqW/MkgytDAwMDGwcjKAQQMDAyOQUmCAgoA01xQGB4ZExUmMD/4/YNBjvP3/NgNEDQPjbbBKBQZGADfLDgsAAHicY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQzMCQqKClOUJz0/z9YHRLv/+L7D+8V3cuHmgAHjGwM6ELUByxUMIOZCmbgAAA5LQ8XeJxjYGRgYABiO68w73h+m68M3EwMIHC+sKIeTqsyqDLeZrwN5HIwgKUB/aYJUgAAeJxjYGRgYLzNwMCgx8QAAkA2IwMqYAIAMGIB7QIAAAACAAAlACUAJQAlAAAAAFAAAAUAAHicbY49asNAEIU/2ZJDfkiRIvXapUFCEqpcptABUrg3ZhEiQoKVfY9UqVLlGDlADpAT5e16IUWysMz3hjfzBrjjjQT/EjKpCy+4YhN5yZoxcirPe+SMWz4jr6S+5UzSa3VuwpTnBfc8RF7yxDZyKs9r5IxHPiKv1P9iZqDnyAvMQ39UecbScVb/gJO03Xk4CFom3XYK1clhMdQUlKo7/d9NF13RkIdfy+MV7TSe2sl11tRFaXYmJKpWTd7kdVnJ8veevZKc+n3I93t9Jnvr5n4aTVWU/0z9AI2qMkV4nGNgZkAGjAxoAAAAjgAF) format("woff"),url(data:font/ttf;base64,AAEAAAANAIAAAwBQRkZUTW3RyK8AAAdIAAAAHEdERUYANAAGAAAHKAAAACBPUy8yT/b9sgAAAVgAAABWY21hcCIPRb0AAAHIAAABYmdhc3D//wADAAAHIAAAAAhnbHlmP5u2YAAAAzwAAAIsaGVhZAABMfsAAADcAAAANmhoZWED5QIFAAABFAAAACRobXR4BkoASgAAAbAAAAAWbG9jYQD2AaIAAAMsAAAAEG1heHAASwBHAAABOAAAACBuYW1lBSeBwgAABWgAAAFucG9zdC+zMgMAAAbYAAAARQABAAAAAQAA8MQQT18PPPUACwIAAAAAAM9xeH8AAAAAz3F4fwAlACUB2wHbAAAACAACAAAAAAAAAAEAAAHbAAAALgIAAAAAAAHbAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAAHAEQAAgAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQkAAAAAAACAAAABAAAAIAAAAAAAAAAAUGZFZABAAGEhkgHg/+AALgHb/9sAAAABAAAAAAAAAgAAAAAAAAACAAAAAgAAJQAlACUAJQAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAEAAAAYSAiIZAhkv//AAAAAABhICIhkCGS//8AAP+l3+PedN5xAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAIwAsAEWAAIAJQAlAdsB2wAYACwAAD8BNjQvASYjIg8BBhUUHwEHBhUUHwEWMzI2FAcGBwYiJyYnJjQ3Njc2MhcWF/GCBgaCBQcIBR0GBldXBgYdBQgH7x0eMjB8MDIeHR0eMjB8MDIecYIGDgaCBQUeBQcJBFhYBAkHBR4F0nwwMh4dHR4yMHwwMh4dHR4yAAAAAgAlACUB2wHbABgALAAAJTc2NTQvATc2NTQvASYjIg8BBhQfARYzMjYUBwYHBiInJicmNDc2NzYyFxYXASgdBgZXVwYGHQUIBwWCBgaCBQcIuB0eMjB8MDIeHR0eMjB8MDIecR4FBwkEWFgECQcFHgUFggYOBoIF0nwwMh4dHR4yMHwwMh4dHR4yAAABACUAJQHbAdsAEwAAABQHBgcGIicmJyY0NzY3NjIXFhcB2x0eMjB8MDIeHR0eMjB8MDIeAT58MDIeHR0eMjB8MDIeHR0eMgABACUAJQHbAdsAQwAAARUUBisBIicmPwEmIyIHBgcGBwYUFxYXFhcWMzI3Njc2MzIfARYVFAcGBwYjIicmJyYnJjQ3Njc2NzYzMhcWFzc2FxYB2woIgAsGBQkoKjodHBwSFAwLCwwUEhwcHSIeIBMGAQQDJwMCISspNC8mLBobFBERFBsaLCYvKicpHSUIDAsBt4AICgsLCScnCwwUEhwcOhwcEhQMCw8OHAMDJwMDAgQnFBQRFBsaLCZeJiwaGxQRDxEcJQgEBgAAAAAAAAwAlgABAAAAAAABAAUADAABAAAAAAACAAcAIgABAAAAAAADACEAbgABAAAAAAAEAAUAnAABAAAAAAAFAAsAugABAAAAAAAGAAUA0gADAAEECQABAAoAAAADAAEECQACAA4AEgADAAEECQADAEIAKgADAAEECQAEAAoAkAADAAEECQAFABYAogADAAEECQAGAAoAxgBzAGwAaQBjAGsAAHNsaWNrAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHMAbABpAGMAawAgADoAIAAxADQALQA0AC0AMgAwADEANAAARm9udEZvcmdlIDIuMCA6IHNsaWNrIDogMTQtNC0yMDE0AABzAGwAaQBjAGsAAHNsaWNrAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABzAGwAaQBjAGsAAHNsaWNrAAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMAhwBECmFycm93cmlnaHQJYXJyb3dsZWZ0AAAAAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzu7XsAAAAADPcXh/AAAAAM9xeH8=) format("truetype"),url(/dashboard/assets/slick.12459f22.svg#slick) format("svg")}.slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translateY(-50%);cursor:pointer;color:transparent;border:none;outline:none;background:transparent}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:transparent;outline:none;background:transparent}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:"\2190"}[dir=rtl] .slick-prev:before{content:"\2192"}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:"\2192"}[dir=rtl] .slick-next:before{content:"\2190"}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:none;background:transparent}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}.slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:"\2022";text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translateZ(0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:""}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}.bg-blue-animate{animation:blur-animate .2s ease-in;backdrop-filter:blur(10px)}@keyframes blur-animate{0%{backdrop-filter:blur(1px)}to{backdrop-filter:blur(10px)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}table thead th:first-of-type{border-top-left-radius:8px}table thead th:last-of-type{border-top-right-radius:8px}.last-row td:first-of-type{border-bottom-left-radius:8px}.last-row td:last-of-type{border-bottom-right-radius:8px}.slick-prev{left:-40px}.slick-next{right:-40px}.slick-prev,.slick-next{z-index:100}.chakra-popover__popper{z-index:9999!important}.inbound-item .chakra-checkbox__label{max-width:100%;width:100%}.react-datepicker__navigation.react-datepicker__navigation--previous,.react-datepicker__navigation.react-datepicker__navigation--next{padding-top:6px}.react-datepicker{background-color:var(--chakra-colors-white)!important;border:1px solid var(--chakra-colors-gray-200);border-radius:var(--chakra-radii-md)!important;position:relative}.chakra-ui-dark .react-datepicker{background-color:var(--chakra-colors-gray-700)!important;border:1px solid var(--chakra-colors-gray-600);border-radius:var(--chakra-radii-md)!important;position:relative}.react-datepicker__header{text-align:center;background-color:unset;position:relative;border-bottom:1px solid var(--chakra-colors-gray-200)}.chakra-ui-dark .react-datepicker__header{border-bottom:1px solid var(--chakra-colors-gray-600)}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:var(--chakra-colors-white)}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:var(--chakra-colors-gray-200)}.chakra-ui-dark .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:after{border-top:none;border-bottom-color:var(--chakra-colors-gray-700)}.chakra-ui-dark .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:var(--chakra-colors-gray-600)}.react-datepicker__current-month,.react-datepicker__day-name,.react-datepicker__day{color:var(--chakra-colors-chakra-body-text)!important}.chakra-ui-dark .react-datepicker__current-month,.chakra-ui-dark .react-datepicker__day-name,.chakra-ui-dark .react-datepicker__day{color:var(--chakra-colors-gray-300)!important}.react-datepicker__day:hover{border-radius:.3rem;background-color:var(--chakra-colors-primary-300)!important;color:var(--chakra-colors-white)!important}.chakra-ui-dark .react-datepicker__day:hover{border-radius:.3rem;background-color:var(--chakra-colors-primary-500)!important;color:var(--chakra-colors-gray-800)!important}.react-datepicker__day--disabled{color:var(--chakra-colors-gray-400)!important}.react-datepicker__day--disabled:hover{background-color:transparent!important;color:var(--chakra-colors-gray-400)!important}.chakra-ui-dark .react-datepicker__day--disabled{color:var(--chakra-colors-gray-500)!important}.chakra-ui-dark .react-datepicker__day--disabled:hover{background-color:transparent!important;color:var(--chakra-colors-gray-500)!important}.react-datepicker__day--keyboard-selected,.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range{border-radius:.3rem;background-color:var(--chakra-colors-primary-500)!important;color:var(--chakra-colors-white)!important}.chakra-ui-dark .react-datepicker__day--keyboard-selected,.chakra-ui-dark .react-datepicker__day--selected,.chakra-ui-dark .react-datepicker__day--in-selecting-range,.chakra-ui-dark .react-datepicker__day--in-range{border-radius:.3rem;background-color:var(--chakra-colors-primary-200)!important;color:var(--chakra-colors-gray-800)!important}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range){border-radius:.3rem;background-color:var(--chakra-colors-primary-400)!important}.chakra-ui-dark .react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range){border-radius:.3rem;background-color:var(--chakra-colors-primary-400)!important}.react-datepicker__day--outside-month{visibility:hidden}.datepicker-panel .react-datepicker{background-color:unset;border:unset;border-radius:unset;display:inline-block;position:relative}.green{background:#66ff99}.red{background:#e53e3e}.orange{background:#fbd38d}.circle{min-width:10px;min-height:10px;border-radius:50%;box-shadow:0 0 1px 1px #0000001a}.pulse{animation:pulse-animation 3s infinite}.pulse.green{animation:green-pulse-animation 3s infinite}.pulse.red{animation:red-pulse-animation 3s infinite}.pulse.orange{animation:orange-pulse-animation 3s infinite}@keyframes pulse-animation{0%{box-shadow:0 0 #0006}to{box-shadow:0 0 0 10px #0000}}@keyframes green-pulse-animation{0%{box-shadow:0 0 #66ff9975}to{box-shadow:0 0 0 10px #6f90}}@keyframes red-pulse-animation{0%{box-shadow:0 0 #e53e3e8c}to{box-shadow:0 0 0 10px #e53e3e00}}@keyframes orange-pulse-animation{0%{box-shadow:0 0 #fbd38d85}to{box-shadow:0 0 0 10px #fbd38d00}}.flex-status{display:flex;align-items:center;justify-content:start;gap:.7rem} diff --git a/app/dashboard/build/assets/index.71322f3d.js b/app/dashboard/build/assets/index.71322f3d.js deleted file mode 100644 index 096d1eab..00000000 --- a/app/dashboard/build/assets/index.71322f3d.js +++ /dev/null @@ -1,14 +0,0 @@ -import{i as Tt,B as nn,a as on,b as sn,j as kr,d as j,U as Wt,z as an,r as ln,f as cn,Q as dn,e as hn,$ as un,c as vt,g as x,h as pn,C as mn,k as It,u as Ot,l as O,m as r,H as k,n as e,T as h,o as gn,p as z,s as fn,q as f,t as lt,J as bn,v as _r,A as zt,w as xn,x as yn,M as re,y as ne,D as oe,E as se,F as ae,G as ue,I as Be,K as vr,L as Sn,N as st,O as ie,P as R,R as B,S as Ir,V as te,W as U,X as De,Y,Z as Ue,_ as N,a0 as Dt,a1 as tt,a2 as Cn,a3 as Ee,a4 as Ne,a5 as wn,a6 as zr,a7 as Dr,a8 as rt,a9 as yt,aa as kn,ab as We,ac as St,ad as Xt,ae as _n,af as Er,ag as Ur,ah as Rr,ai as he,aj as vn,ak as In,al as zn,am as Dn,an as En,ao as jt,ap as Lr,aq as Tr,ar as ye,as as Jt,at as Un,au as Rn,av as Ln,aw as At,ax as Tn,ay as An,az as Mn,aA as Nn,aB as Fn,aC as Pn,aD as Ct,aE as Wn,aF as Me,aG as On,aH as w,aI as ct,aJ as Ar,aK as dt,aL as M,aM as Ht,aN as jn,aO as Oe,aP as je,aQ as Mt,aR as He,aS as Se,aT as Ce,aU as we,aV as ke,aW as _e,aX as ve,aY as Kt,aZ as Hn,a_ as Bt,a$ as nt,b0 as $t,b1 as Bn,b2 as $n,b3 as Vn,b4 as Mr,b5 as Gn,b6 as at,b7 as wt,b8 as Nr,b9 as Yn,ba as Zn,bb as Fr,bc as Te,bd as Qn,be as qn,bf as Xn,bg as Vt,bh as Et,bi as er,bj as Pr,bk as Jn,bl as Kn,bm as tr,bn as eo,bo as rr,bp as Wr,bq as to,br as Or,bs as ro,bt as no,bu as jr,bv as oo,bw as so,bx as Hr,by as Br,bz as $r,bA as X,bB as ao,bC as Vr,bD as io,bE as lo,bF as co,bG as ho,bH as uo,bI as po,bJ as mo,bK as Gr,bL as go,bM as nr,bN as or,bO as Pe,bP as Ie,bQ as sr,bR as de,bS as ar,bT as fo,bU as bo,bV as xo,bW as yo,bX as So,bY as Co,bZ as wo,b_ as ko,b$ as _o,c0 as vo,c1 as Io,c2 as zo,c3 as Do,c4 as Eo,c5 as Uo,c6 as Ro,c7 as Lo}from"./vendor.8aa8dc93.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function o(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerpolicy&&(i.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?i.credentials="include":a.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=o(a);fetch(a.href,i)}})();Tt.use(nn).use(on).use(sn).init({debug:{}.NODE_ENV==="development",returnNull:!1,fallbackLng:"en",interpolation:{escapeValue:!1},react:{useSuspense:!1},load:"languageOnly",detection:{caches:["localStorage","sessionStorage","cookie"]},backend:{loadPath:kr(["/dashboard/","locales/{{lng}}.json"])}},function(t,n){j.locale(Tt.language)});Tt.on("languageChanged",t=>{j.locale(t)});Wt("zh-cn",an);Wt("ru",ln);Wt("fa",cn);const Nt=new dn,Yr=t=>{const n=document.querySelector('meta[name="theme-color"]');n==null||n.setAttribute("content",t=="dark"?"#1A202C":"#3B81F6")},To=hn({shadows:{outline:"0 0 0 2px var(--chakra-colors-primary-200)"},fonts:{body:"Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif"},colors:{"light-border":"#d2d2d4",primary:{50:"#9cb7f2",100:"#88a9ef",200:"#749aec",300:"#618ce9",400:"#4d7de7",500:"#396fe4",600:"#3364cd",700:"#2e59b6",800:"#284ea0",900:"#224389"},gray:{750:"#222C3B"}},components:{Alert:{baseStyle:{container:{borderRadius:"6px",fontSize:"sm"}}},Select:{baseStyle:{field:{_dark:{borderColor:"gray.600",borderRadius:"6px"},_light:{borderRadius:"6px"}}}},FormHelperText:{baseStyle:{fontSize:"xs"}},FormLabel:{baseStyle:{fontSize:"sm",fontWeight:"medium",mb:"1",_dark:{color:"gray.300"}}},Input:{baseStyle:{addon:{_dark:{borderColor:"gray.600",_placeholder:{color:"gray.500"}}},field:{_focusVisible:{boxShadow:"none",borderColor:"primary.200",outlineColor:"primary.200"},_dark:{borderColor:"gray.600",_disabled:{color:"gray.400",borderColor:"gray.500"},_placeholder:{color:"gray.500"}}}}},Table:{baseStyle:{table:{borderCollapse:"separate",borderSpacing:0},thead:{borderBottomColor:"light-border"},th:{background:"#F9FAFB",borderColor:"light-border !important",borderBottomColor:"light-border !important",borderTop:"1px solid ",borderTopColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border !important"},_last:{borderRight:"1px solid",borderColor:"light-border !important"},_dark:{borderColor:"gray.600 !important",background:"gray.750"}},td:{transition:"all .1s ease-out",borderColor:"light-border",borderBottomColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_last:{borderRight:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_dark:{borderColor:"gray.600",borderBottomColor:"gray.600 !important"}},tr:{"&.interactive":{cursor:"pointer",_hover:{"& > td":{bg:"gray.200"},_dark:{"& > td":{bg:"gray.750"}}}},_last:{"& > td":{_first:{borderBottomLeftRadius:"8px"},_last:{borderBottomRightRadius:"8px"}}}}}}}});const kt=()=>localStorage.getItem("token"),Ao=t=>{localStorage.setItem("token",t)},Mo=()=>{localStorage.removeItem("token")},No=un.create({baseURL:"/api/"}),Fo=(t,n={})=>(kt()&&(n.headers={...(n==null?void 0:n.headers)||{},Authorization:`Bearer ${kt()}`}),No(t,n)),W=Fo,Po=vt(t=>({isLoading:!0,isPostLoading:!1,version:null,started:!1,logs_websocket:null,config:"",fetchCoreSettings:()=>{t({isLoading:!0}),Promise.all([W("/core").then(({version:n,started:o,logs_websocket:s})=>t({version:n,started:o,logs_websocket:s})),W("/core/config").then(n=>t({config:n}))]).finally(()=>t({isLoading:!1}))},updateConfig:n=>(t({isPostLoading:!0}),W("/core/config",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})})),restartCore:()=>W("/core/restart",{method:"POST"})}));function ee(t,n=2,o=!1){if(!+t)return"0 B";const s=1024,a=n<0?0:n,i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],l=Math.floor(Math.log(t)/Math.log(s));return o?[parseFloat((t/Math.pow(s,l)).toFixed(a)),i[l]]:`${parseFloat((t/Math.pow(s,l)).toFixed(a))} ${i[l]}`}const ir=t=>{if(t!==null)return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},Wo=x(pn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Oo=x(mn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),jo=x(It,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Ut=({title:t,content:n,icon:o})=>r(gn,{p:6,borderWidth:"1px",borderColor:"light-border",bg:"#F9FAFB",_dark:{borderColor:"gray.600",bg:"gray.750"},borderStyle:"solid",boxShadow:"none",borderRadius:"12px",width:"full",display:"flex",justifyContent:"space-between",flexDirection:"row",children:[r(k,{alignItems:"center",columnGap:"4",children:[e(z,{p:"2",position:"relative",color:"white",_before:{content:'""',position:"absolute",top:0,left:0,bg:"primary.400",display:"block",w:"full",h:"full",borderRadius:"5px",opacity:".5",z:"1"},_after:{content:'""',position:"absolute",top:"-5px",left:"-5px",bg:"primary.400",display:"block",w:"calc(100% + 10px)",h:"calc(100% + 10px)",borderRadius:"8px",opacity:".4",z:"1"},children:o}),e(h,{color:"gray.600",_dark:{color:"gray.300"},fontWeight:"medium",textTransform:"capitalize",fontSize:"sm",children:t})]}),e(z,{fontSize:"3xl",fontWeight:"semibold",mt:"2",children:n})]}),Ft="statistics-query-key",Ho=t=>{const{version:n}=I(),{data:o}=Ot({queryKey:Ft,queryFn:()=>W("/system"),refetchInterval:5e3,onSuccess:({version:a})=>{n!==a&&I.setState({version:a})}}),{t:s}=O();return r(k,{justifyContent:"space-between",gap:0,columnGap:{lg:4,md:0},rowGap:{lg:0,base:4},display:"flex",flexDirection:{lg:"row",base:"column"},...t,children:[e(Ut,{title:s("activeUsers"),content:o&&r(k,{alignItems:"flex-end",children:[e(h,{children:ir(o.users_active)}),r(h,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:["/ ",ir(o.total_user)]})]}),icon:e(Wo,{})}),e(Ut,{title:s("dataUsage"),content:o&&ee(o.incoming_bandwidth+o.outgoing_bandwidth),icon:e(Oo,{})}),e(Ut,{title:s("memoryUsage"),content:o&&r(k,{alignItems:"flex-end",children:[e(h,{children:ee(o.mem_used,1,!0)[0]}),r(h,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:[ee(o.mem_used,1,!0)[1]," /"," ",ee(o.mem_total,1)]})]}),icon:e(jo,{})})]})},Zr="marzban-num-users-per-page",lr=10,Bo=()=>{const t=localStorage.getItem(Zr)||lr.toString();return parseInt(t)||lr},$o=t=>localStorage.setItem(Zr,t),Vo=t=>{for(const n in t)t[n]||delete t[n];return I.setState({loading:!0}),W("/users",{query:t}).then(n=>(I.setState({users:n}),n)).finally(()=>{I.setState({loading:!1})})},Go=()=>W("/inbounds").then(t=>{I.setState({inbounds:new Map(Object.entries(t))})}).finally(()=>{I.setState({loading:!1})}),I=vt(fn((t,n)=>({version:null,editingUser:null,deletingUser:null,isCreatingNewUser:!1,QRcodeLinks:null,subscribeUrl:null,users:{users:[],total:0},loading:!0,isResetingAllUsage:!1,isEditingHosts:!1,isEditingNodes:!1,isShowingNodesUsage:!1,resetUsageUser:null,revokeSubscriptionUser:null,filters:{username:"",limit:Bo(),sort:"-created_at"},inbounds:new Map,isEditingCore:!1,refetchUsers:()=>{Vo(n().filters)},resetAllUsage:()=>W("/users/reset",{method:"POST"}).then(()=>{n().onResetAllUsage(!1),n().refetchUsers()}),onResetAllUsage:o=>t({isResetingAllUsage:o}),onCreateUser:o=>t({isCreatingNewUser:o}),onEditingUser:o=>{t({editingUser:o})},onDeletingUser:o=>{t({deletingUser:o})},onFilterChange:o=>{t({filters:{...n().filters,...o}}),n().refetchUsers()},setQRCode:o=>{t({QRcodeLinks:o})},deleteUser:o=>(t({editingUser:null}),W(`/user/${o.username}`,{method:"DELETE"}).then(()=>{t({deletingUser:null}),n().refetchUsers(),Nt.invalidateQueries(Ft)})),createUser:o=>W("/user",{method:"POST",body:o}).then(()=>{t({editingUser:null}),n().refetchUsers(),Nt.invalidateQueries(Ft)}),editUser:o=>W(`/user/${o.username}`,{method:"PUT",body:o}).then(()=>{n().onEditingUser(null),n().refetchUsers()}),fetchUserUsage:(o,s)=>{for(const a in s)s[a]||delete s[a];return W(`/user/${o.username}/usage`,{method:"GET",query:s})},onEditingHosts:o=>{t({isEditingHosts:o})},onEditingNodes:o=>{t({isEditingNodes:o})},onShowingNodesUsage:o=>{t({isShowingNodesUsage:o})},setSubLink:o=>{t({subscribeUrl:o})},resetDataUsage:o=>W(`/user/${o.username}/reset`,{method:"POST"}).then(()=>{t({resetUsageUser:null}),n().refetchUsers()}),revokeSubscription:o=>W(`/user/${o.username}/revoke_sub`,{method:"POST"}).then(s=>{t({revokeSubscriptionUser:null,editingUser:s}),n().refetchUsers()})}))),le=({children:t,color:n})=>e(z,{position:"relative",width:"36px",height:"36px",display:"flex",justifyContent:"center",alignItems:"center",_before:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100%)",height:"calc(100%)",bg:`${n}.400`,opacity:".5",borderRadius:"5px",zIndex:"1",_dark:{bg:`${n}.400`}},_after:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100% + 10px)",height:"calc(100% + 10px)",transform:"translate(-5px, -5px)",bg:`${n}.400`,opacity:".4",borderRadius:"8px",zIndex:"1",_dark:{bg:`${n}.400`}},children:e(h,{color:`${n}.500`,_dark:{color:`${n}.900`},position:"relative",zIndex:"2",children:t})});window.ace.define("ace/theme/nord_dark",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!0,n.cssClass="ace-nord-dark",t("../lib/dom").importCssString(n.cssText,n.cssClass)});window.ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!1,n.cssClass="ace-dawn",t("../lib/dom").importCssString(n.cssText,n.cssClass)});const Yo=f.exports.forwardRef(({json:t,onChange:n,mode:o="code"},s)=>{const{colorMode:a}=lt(),i={mode:o,onChangeText:n,statusBar:!1,mainMenuBar:!1,theme:a==="dark"?"ace/theme/nord_dark":"ace/theme/dawn"},l=f.exports.useRef(null),u=f.exports.useRef(null);return f.exports.useEffect(()=>(u.current=new bn(l.current,i),()=>{u.current&&u.current.destroy()}),[]),f.exports.useEffect(()=>{u.current&&u.current.update(t)},[t]),e(z,{ref:s,border:"1px solid",borderColor:"gray.300",_dark:{borderColor:"gray.500"},borderRadius:5,h:"full",children:e(z,{height:"full",ref:l})})}),cr=500,Zo=x(_r,{baseStyle:{w:5,h:5}}),Qo=x(zt,{baseStyle:{w:4,h:4}}),qo=x(xn,{baseStyle:{w:4,h:4}}),Xo=x(yn,{baseStyle:{w:3,h:3}}),Jo=t=>({[tt.ReadyState.CONNECTING]:"connecting",[tt.ReadyState.OPEN]:"connected",[tt.ReadyState.CLOSING]:"closed",[tt.ReadyState.CLOSED]:"closed",[tt.ReadyState.UNINSTANTIATED]:"closed"})[t],Ko=()=>{try{let t=new URL("/api/".startsWith("/")?window.location.origin+"/api/":"/api/");return(t.protocol==="https:"?"wss://":"ws://")+kr([t.host+t.pathname,"/core/logs"])+"?interval=1&token="+kt()}catch(t){return console.error("Unable to generate websocket url"),console.error(t),null}};let Re=[];const es=()=>{const{isEditingCore:t}=I(),{fetchCoreSettings:n,updateConfig:o,isLoading:s,config:a,isPostLoading:i,version:l,restartCore:u}=Po(),p=f.exports.useRef(null),[y,d]=f.exports.useState([]),{t:c}=O(),C=ue(),_=Be({defaultValues:{config:a||{}}});f.exports.useEffect(()=>{a&&_.setValue("config",a)},[a]),f.exports.useEffect(()=>{t&&n()},[t]);const g=f.exports.useRef(!0),S=f.exports.useCallback(vr(D=>{var Q,L,q;const F=Math.abs((((Q=p.current)==null?void 0:Q.scrollTop)||0)-(((L=p.current)==null?void 0:L.scrollHeight)||0)+(((q=p.current)==null?void 0:q.offsetHeight)||0))<10;p.current&&F?g.current=!0:g.current=!1,D.length<40&&d(D)},300),[]),{readyState:T}=Sn(Ko(),{onMessage:D=>{Re.push(D.data),Re.length>cr&&(Re=Re.splice(0,Re.length-cr)),S([...Re])},shouldReconnect:()=>!0,reconnectAttempts:10,reconnectInterval:1e3});f.exports.useEffect(()=>{var D;p.current&&g.current&&(p.current.scrollTop=(D=p.current)==null?void 0:D.scrollHeight)},[y]),f.exports.useEffect(()=>()=>{Re=[]},[]);const m=Jo(T.toString()),{mutate:b,isLoading:P}=st(u),H=({config:D})=>{o(D).then(()=>{C({title:c("core.successMessage"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(F=>{let Q=c("core.generalErrorMessage");typeof F.response._data.detail=="object"&&(Q=F.response._data.detail[Object.keys(F.response._data.detail)[0]]),typeof F.response._data.detail=="string"&&(Q=F.response._data.detail),C({title:Q,status:"error",isClosable:!0,position:"top",duration:3e3})})},E=f.exports.useRef(null),[A,V]=f.exports.useState(!1),Z=()=>{var D;document.fullscreenElement?(document.exitFullscreen(),V(!1)):((D=E.current)==null||D.requestFullscreen(),V(!0))};return r("form",{onSubmit:_.handleSubmit(H),children:[r(ie,{children:[r(R,{children:[r(k,{justifyContent:"space-between",alignItems:"flex-start",children:[r(B,{children:[c("core.configuration")," ",s&&e(Ir,{isIndeterminate:!0,size:"15px"})]}),e(k,{gap:0,children:e(te,{label:"Xray Version",placement:"top",children:e(U,{height:"100%",textTransform:"lowercase",children:l&&`v${l}`})})})]}),r(z,{position:"relative",ref:E,minHeight:"300px",children:[e(De,{control:_.control,name:"config",render:({field:D})=>e(Yo,{json:a,onChange:D.onChange})}),e(Y,{size:"xs","aria-label":"full screen",variant:"ghost",position:"absolute",top:"2",right:"4",onClick:Z,children:A?e(Xo,{}):e(qo,{})})]})]}),r(R,{mt:"4",children:[r(k,{justifyContent:"space-between",children:[e(B,{children:c("core.logs")}),e(h,{as:B,children:c(`core.socket.${m}`)})]}),e(z,{border:"1px solid",borderColor:"gray.300",bg:"#F9F9F9",_dark:{borderColor:"gray.500",bg:"#2e3440"},borderRadius:5,minHeight:"200px",maxHeight:"250px",p:2,overflowY:"auto",ref:p,children:y.map((D,F)=>e(h,{fontSize:"xs",opacity:.8,whiteSpace:"pre-line",children:D},F))})]})]}),e(Ue,{children:r(k,{w:"full",justifyContent:"space-between",children:[e(z,{children:e(N,{size:"sm",leftIcon:e(Qo,{className:Dt({"animate-spin":P})}),onClick:()=>b(),children:c(P?"core.restarting":"core.restartCore")})}),e(k,{children:e(N,{size:"sm",variant:"solid",colorScheme:"primary",px:"5",type:"submit",isDisabled:s||i,isLoading:i,children:c("core.save")})})]})})]})},ts=()=>{const{isEditingCore:t}=I(),n=I.setState.bind(null,{isEditingCore:!1}),{t:o}=O();return r(re,{isOpen:t,onClose:n,size:"3xl",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",w:"full",children:[e(se,{pt:6,children:r(k,{gap:2,children:[e(le,{color:"primary",children:e(Zo,{color:"white"})}),e(h,{fontWeight:"semibold",fontSize:"lg",children:o("core.title")})]})}),e(ae,{mt:3}),e(es,{})]})]})},ht=x(Cn,{baseStyle:{w:5,h:5}}),rs=()=>{const[t,n]=f.exports.useState(!1),{deletingUser:o,onDeletingUser:s,deleteUser:a}=I(),{t:i}=O(),l=ue(),u=()=>{s(null)},p=()=>{o&&(n(!0),a(o).then(()=>{l({title:i("deleteUser.deleteSuccess",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).then(u).finally(n.bind(null,!1)))};return r(re,{isCentered:!0,isOpen:!!o,onClose:u,size:"sm",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",children:[e(se,{pt:6,children:e(le,{color:"red",children:e(ht,{})})}),e(ae,{mt:3}),r(ie,{children:[e(h,{fontWeight:"semibold",fontSize:"lg",children:i("deleteUser.title")}),o&&e(h,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ee,{components:{b:e("b",{})},children:i("deleteUser.prompt",{username:o.username})})})]}),r(Ue,{display:"flex",children:[e(N,{size:"sm",onClick:u,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Ne,{size:"xs"}):void 0,children:i("delete")})]})]})]})},Gt={baseStyle:{w:4,h:4}},ns=x(wn,Gt),os=x(zr,Gt),Qr=x(zt,Gt),ss=vr(t=>{I.getState().onFilterChange({...I.getState().filters,offset:0,search:t})},300),as=({...t})=>{const{loading:n,filters:o,onFilterChange:s,refetchUsers:a,onCreateUser:i}=I(),{t:l}=O(),[u,p]=f.exports.useState(""),y=c=>{p(c.target.value),ss(c.target.value)},d=()=>{p(""),s({...o,offset:0,search:""})};return r(Dr,{id:"filters",templateColumns:{lg:"repeat(3, 1fr)",md:"repeat(4, 1fr)",base:"repeat(1, 1fr)"},position:"sticky",top:0,mx:"-6",px:"6",rowGap:4,gap:{lg:4,base:0},bg:"var(--chakra-colors-chakra-body-bg)",py:4,zIndex:"docked",...t,children:[e(rt,{colSpan:{base:1,md:2,lg:1},order:{base:2,md:1},children:r(yt,{children:[e(kn,{pointerEvents:"none",children:e(ns,{})}),e(We,{placeholder:l("search"),value:u,borderColor:"light-border",onChange:y}),r(St,{children:[n&&e(Ne,{size:"xs"}),o.search&&o.search.length>0&&e(Y,{onClick:d,"aria-label":"clear",size:"xs",variant:"ghost",children:e(os,{})})]})]})}),e(rt,{colSpan:2,order:{base:1,md:2},children:r(k,{justifyContent:"flex-end",alignItems:"center",h:"full",children:[e(Y,{"aria-label":"refresh users",disabled:n,onClick:a,size:"sm",variant:"outline",children:e(Qr,{className:Dt({"animate-spin":n})})}),e(N,{colorScheme:"primary",size:"sm",onClick:()=>i(!0),px:5,children:l("createUser")})]})})]})},qr="https://github.com/Gozargah/Marzban",is="https://github.com/Gozargah",ls="https://github.com/Gozargah/Marzban#donation",Xr=t=>{const{version:n}=I();return e(k,{w:"full",py:"0",position:"relative",...t,children:r(h,{display:"inline-block",flexGrow:1,textAlign:"center",color:"gray.500",fontSize:"xs",children:[e(Xt,{color:"blue.400",href:qr,children:"Marzban"}),n?` (v${n}), `:", ","Made with \u2764\uFE0F in"," ",e(Xt,{color:"blue.400",href:is,children:"Gozargah"})]})})},cs=x(_n,{baseStyle:{w:4,h:4}}),Jr=({actions:t})=>{const{i18n:n}=O();var o=s=>{n.changeLanguage(s)};return r(Er,{placement:"bottom-end",children:[e(Ur,{as:Y,size:"sm",variant:"outline",icon:e(cs,{}),position:"relative"}),r(Rr,{minW:"100px",zIndex:9999,children:[e(he,{maxW:"100px",fontSize:"sm",onClick:()=>o("en"),children:"English"}),e(he,{maxW:"100px",fontSize:"sm",onClick:()=>o("fa"),children:"\u0641\u0627\u0631\u0633\u06CC"}),e(he,{maxW:"100px",fontSize:"sm",onClick:()=>o("zh-cn"),children:"\u7B80\u4F53\u4E2D\u6587"}),e(he,{maxW:"100px",fontSize:"sm",onClick:()=>o("ru"),children:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"})]})]})},pe={baseStyle:{w:4,h:4}},ds=x(vn,pe),hs=x(In,pe),us=x(_r,pe),ps=x(zn,pe),ms=x(Dn,pe),gs=x(En,pe),fs=x(jt,pe),bs=x(Lr,pe),xs=x(It,pe),ys=x(Tr,pe),dr=x(z,{baseStyle:{bg:"yellow.500",w:"2",h:"2",rounded:"full",position:"absolute"}}),Kr="marzban-menu-notification",Ss=()=>{const t=localStorage.getItem(Kr);if(!t)return!0;try{return t&&Rn(parseInt(t))?Ln(new Date,new Date(parseInt(t)))>=7:!0}catch{return!0}},Cs=({actions:t})=>{const{onEditingHosts:n,onResetAllUsage:o,onEditingNodes:s,onShowingNodesUsage:a}=I(),{t:i}=O(),{colorMode:l,toggleColorMode:u}=lt(),[p,y]=f.exports.useState(Ss()),d=l==="dark"?"dark_dimmed":l,c=()=>{localStorage.setItem(Kr,new Date().getTime().toString()),y(!1)};return r(k,{gap:2,justifyContent:"space-between",__css:{"& .menuList":{direction:"ltr"}},position:"relative",children:[e(h,{as:"h1",fontWeight:"semibold",fontSize:"2xl",children:i("users")}),p&&e(dr,{top:"0",right:"0",zIndex:9999}),e(z,{overflow:"auto",css:{direction:"rtl"},children:r(k,{alignItems:"center",children:[r(Er,{children:[e(Ur,{as:Y,size:"sm",variant:"outline",icon:e(ye,{children:e(ps,{})}),position:"relative"}),r(Rr,{minW:"170px",zIndex:99999,className:"menuList",children:[e(he,{maxW:"170px",fontSize:"sm",icon:e(fs,{}),onClick:n.bind(null,!0),children:i("header.hostSettings")}),e(he,{maxW:"170px",fontSize:"sm",icon:e(bs,{}),onClick:s.bind(null,!0),children:i("header.nodeSettings")}),e(he,{maxW:"170px",fontSize:"sm",icon:e(xs,{}),onClick:a.bind(null,!0),children:i("header.nodesUsage")}),e(he,{maxW:"170px",fontSize:"sm",icon:e(ys,{}),onClick:o.bind(null,!0),children:i("resetAllUsage")}),e(Jt,{to:ls,target:"_blank",children:r(he,{maxW:"170px",fontSize:"sm",icon:e(gs,{}),position:"relative",onClick:c,children:[i("header.donation")," ",p&&e(dr,{top:"3",right:"2"})]})}),e(Jt,{to:"/login",children:e(he,{maxW:"170px",fontSize:"sm",icon:e(ms,{}),children:i("header.logout")})})]})]}),e(Y,{size:"sm",variant:"outline","aria-label":"core settings",onClick:()=>{I.setState({isEditingCore:!0})},children:e(us,{})}),e(Jr,{}),e(Y,{size:"sm",variant:"outline","aria-label":"switch theme",onClick:()=>{Yr(l=="dark"?"light":"dark"),u()},children:l==="light"?e(ds,{}):e(hs,{})}),e(z,{css:{direction:"ltr"},display:"flex",alignItems:"center",pr:"2",__css:{"& span":{display:"inline-flex"}},children:e(Un,{href:qr,"data-color-scheme":`no-preference: ${d}; light: ${d}; dark: ${d};`,"data-size":"large","data-show-count":"true","aria-label":"Star Marzban on GitHub",children:"Star"})})]})})]})},ws=[{title:"Inbound's default",value:"inbound_default"},{title:"TLS",value:"tls"},{title:"None",value:"none"}],ks=[{title:"",value:""},{title:"h3",value:"h3"},{title:"h2",value:"h2"},{title:"http/1.1",value:"http/1.1"},{title:"h3,h2,http/1.1",value:"h3,h2,http/1.1"},{title:"h3,h2",value:"h3,h2"},{title:"h2,http/1.1",value:"h2,http/1.1"}],_s=[{title:"",value:""},...["chrome","firefox","safari","ios","android","edge","360","qq","random","randomized"].map(t=>({title:t,value:t}))],vs=[{title:"none",value:""},{title:"xtls-rprx-vision",value:"xtls-rprx-vision"}],Is=["aes-128-gcm","aes-256-gcm","chacha20-ietf-poly1305"],zs=vt(t=>({isLoading:!1,isPostLoading:!1,hosts:{},fetchHosts:()=>{t({isLoading:!0}),W("/hosts").then(n=>t({hosts:n})).finally(()=>t({isLoading:!1}))},setHosts:n=>(t({isPostLoading:!0}),W("/hosts",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})}))}));const Ds=x(zr,{baseStyle:{w:4,h:4}}),Ae=At.forwardRef(({disabled:t,step:n,label:o,className:s,startAdornment:a,endAdornment:i,type:l="text",placeholder:u,onChange:p,onBlur:y,name:d,value:c,onClick:C,error:_,clearable:g=!1,...S},T)=>{const m=()=>{p&&p({target:{value:"",name:d}})},{size:b="md"}=S,P=l=="number"?Wn:We,H=l=="number"?Tn:At.Fragment,E=l=="number"?{keepWithinRange:!0,precision:5,format:A=>isNaN(parseFloat(String(A)))||Number(parseFloat(String(A)).toFixed(5))===0?A:Number(parseFloat(String(A)).toFixed(5)),min:0,step:n,name:d,type:l,placeholder:u,onChange:A=>{p&&p(A)},onBlur:y,value:c,onClick:C,disabled:t,flexGrow:1,size:b}:{};return r(R,{isInvalid:!!_,children:[o&&e(B,{children:o}),r(yt,{size:b,w:"full",rounded:"md",_focusWithin:{outline:"2px solid",outlineColor:"primary.200"},bg:t?"gray.100":"transparent",_dark:{bg:t?"gray.600":"transparent"},children:[a&&e(An,{children:a}),r(H,{...E,children:[e(P,{name:d,ref:T,step:n,className:Dt(s),type:l,placeholder:u,onChange:p,onBlur:y,value:c,onClick:C,disabled:t,flexGrow:1,_focusVisible:{outline:"none",borderTopColor:"transparent",borderRightColor:"transparent",borderBottomColor:"transparent"},_disabled:{cursor:"not-allowed"},...S,roundedLeft:a?"0":"md",roundedRight:i?"0":"md"}),l=="number"&&e(ye,{children:r(Mn,{children:[e(Nn,{}),e(Fn,{})]})})]}),i&&e(Pn,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",children:i}),g&&c&&c.length&&e(St,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",onClick:m,cursor:"pointer",children:e(Ds,{})})]}),!!_&&e(Ct,{children:_})]})}),Rt=x(Me,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Le=x(Ae,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Es=x(jt,{baseStyle:{w:5,h:5}}),ze=x(On,{baseStyle:{w:4,h:4,color:"gray.400",cursor:"pointer"}}),Us=w.record(w.string().min(1),w.array(w.object({remark:w.string().min(1,"Remark is required"),address:w.string().min(1,"Address is required"),port:w.string().or(w.number()).nullable().transform(t=>typeof t=="number"?t:t!==null&&!isNaN(parseInt(t))?Number(parseInt(t)):null),path:w.string().nullable(),sni:w.string().nullable(),host:w.string().nullable(),mux_enable:w.boolean().default(!1),allowinsecure:w.boolean().nullable().default(!1),is_disabled:w.boolean().default(!0),fragment_setting:w.string().nullable(),random_user_agent:w.boolean().default(!1),security:w.string(),alpn:w.string(),fingerprint:w.string()}))),xe=x(Ct,{baseStyle:{color:"red.400",display:"block",textAlign:"left",w:"100%"}}),Rs=({hostKey:t,isOpen:n,toggleAccordion:o})=>{const{inbounds:s}=I(),a=[...s.values()].flat().filter(_=>_.tag===t)[0],i=Ht(),{fields:l,append:u,remove:p}=jn({control:i.control,name:t}),{errors:y}=i.formState,{t:d}=O(),c=y[t],C=()=>{u({host:"",sni:"",port:null,path:null,address:"",remark:"",mux_enable:!1,allowinsecure:!1,is_disabled:!1,fragment_setting:"",random_user_agent:!1,security:"inbound_default",alpn:"",fingerprint:""})};return f.exports.useEffect(()=>{c&&!n&&o()},[c]),r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:o,children:[e(h,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:t}),e(Mt,{})]}),e(He,{px:2,pb:2,children:r(M,{gap:3,children:[l.map((_,g)=>{var S,T,m,b,P,H,E,A,V,Z,D,F,Q,L,q,K,mt,gt,me,Ve,Ge,Ye,Ze,Qe,v,$,ge,fe,ce,be,G,qe,Xe,Je,Ke,et,Fe;return r(M,{border:"1px solid",_dark:{borderColor:"gray.600",bg:"#273142"},_light:{borderColor:"gray.200",bg:"#fcfbfb"},p:2,w:"full",borderRadius:"4px",children:[e(k,{w:"100%",alignItems:"flex-start",children:r(R,{position:"relative",zIndex:10,isInvalid:!!(c&&((S=c[g])==null?void 0:S.remark)),children:[r(yt,{children:[e(Le,{...i.register(t+"."+g+".remark"),size:"sm",borderRadius:"4px",placeholder:"Remark"}),e(St,{children:r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(z,{mt:"-8px",children:e(ze,{})})}),e(we,{children:r(ke,{children:[e(_e,{}),e(ve,{}),e(Kt,{children:r(z,{fontSize:"xs",children:[e(h,{pr:"20px",children:d("hostsDialog.desc")}),r(h,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(h,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(h,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(h,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(h,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(h,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(h,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(h,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(h,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(h,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(h,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((T=c[g])==null?void 0:T.remark)&&e(xe,{children:(b=(m=c[g])==null?void 0:m.remark)==null?void 0:b.message})]})}),r(R,{isInvalid:!!(c&&((P=c[g])==null?void 0:P.address)),children:[r(yt,{children:[e(Le,{size:"sm",borderRadius:"4px",placeholder:"Address (e.g. example.com)",...i.register(t+"."+g+".address")}),e(St,{children:r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(z,{mt:"-8px",children:e(ze,{})})}),e(we,{children:r(ke,{children:[e(_e,{}),e(ve,{}),e(Kt,{children:r(z,{fontSize:"xs",children:[e(h,{pr:"20px",children:d("hostsDialog.desc")}),r(h,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(h,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(h,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(h,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(h,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(h,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(h,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(h,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(h,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(h,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(h,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(h,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((H=c[g])==null?void 0:H.address)&&e(xe,{children:(A=(E=c[g])==null?void 0:E.address)==null?void 0:A.message})]}),e(dt,{w:"full",allowToggle:!0,children:r(Oe,{border:"0",children:[r(je,{display:"flex",px:0,py:1,borderRadius:3,_hover:{bg:"transparent"},children:[r(h,{flex:"3",align:"start",fontSize:"xs",color:"gray.600",_dark:{color:"gray.500"},pl:1,children:[d("hostsDialog.advancedOptions"),e(Mt,{fontSize:"sm",ml:1})]}),r(Hn,{flex:"1",px:"0",children:[e(De,{control:i.control,name:`${t}.${g}.is_disabled`,render:({field:J})=>e(Bt,{mx:"1.5",colorScheme:"primary",...J,value:void 0,isChecked:!J.value,onChange:qt=>{console.log(qt.target.checked),J.onChange(!qt.target.checked)}})}),e(te,{label:"Delete",placement:"top",children:e(Y,{"aria-label":"Delete",size:"sm",colorScheme:"red",variant:"ghost",onClick:p.bind(null,g),children:e(ht,{})})})]})]}),e(He,{w:"full",p:1,children:r(M,{w:"full",borderRadius:"4px",children:[r(R,{isInvalid:!!(c&&((V=c[g])==null?void 0:V.port)),children:[r(B,{display:"flex",pb:1,alignItems:"center",justifyContent:"space-between",gap:1,m:"0",children:[e("span",{children:d("hostsDialog.port")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.port.info")})]})})]})]}),e(Le,{size:"sm",borderRadius:"4px",placeholder:String(a.port||"8080"),type:"number",...i.register(t+"."+g+".port")})]}),r(R,{isInvalid:!!(c&&((Z=c[g])==null?void 0:Z.sni)),children:[r(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.sni")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.sni.info")}),e(h,{fontSize:"xs",mt:"2",children:e(Ee,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(h,{fontSize:"xs",children:e(Ee,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Le,{size:"sm",borderRadius:"4px",placeholder:"SNI (e.g. example.com)",...i.register(t+"."+g+".sni")}),c&&((D=c[g])==null?void 0:D.sni)&&e(xe,{children:(Q=(F=c[g])==null?void 0:F.sni)==null?void 0:Q.message})]}),r(R,{isInvalid:!!(c&&((L=c[g])==null?void 0:L.host)),children:[r(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.host")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.host.info")}),e(h,{fontSize:"xs",mt:"2",children:e(Ee,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(h,{fontSize:"xs",children:e(Ee,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Le,{size:"sm",borderRadius:"4px",placeholder:"Host (e.g. example.com)",...i.register(t+"."+g+".host")}),c&&((q=c[g])==null?void 0:q.host)&&e(xe,{children:(mt=(K=c[g])==null?void 0:K.host)==null?void 0:mt.message})]}),r(R,{isInvalid:!!(c&&((gt=c[g])==null?void 0:gt.path)),children:[r(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.path")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.path.info")})]})})]})]}),e(Le,{size:"sm",borderRadius:"4px",placeholder:"path (e.g. /vless)",...i.register(t+"."+g+".path")}),c&&((me=c[g])==null?void 0:me.path)&&e(xe,{children:(Ge=(Ve=c[g])==null?void 0:Ve.path)==null?void 0:Ge.message})]}),r(R,{height:"66px",children:[r(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.security")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.security.info")})]})})]})]}),e(Rt,{size:"sm",...i.register(t+"."+g+".security"),children:ws.map(J=>e("option",{value:J.value,children:J.title},J.value))})]}),r(R,{height:"66px",children:[e(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.alpn")})}),e(Rt,{size:"sm",...i.register(t+"."+g+".alpn"),children:ks.map(J=>e("option",{value:J.value,children:J.title},J.value))})]}),r(R,{height:"66px",children:[e(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.fingerprint")})}),e(Rt,{size:"sm",...i.register(t+"."+g+".fingerprint"),children:_s.map(J=>e("option",{value:J.value,children:J.title},J.value))})]}),r(R,{isInvalid:!!(c&&((Ye=c[g])==null?void 0:Ye.fragment_setting)),children:[r(B,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.fragment")}),r(Se,{isLazy:!0,placement:"right",children:[e(Ce,{children:e(ze,{})}),e(we,{children:r(ke,{p:2,children:[e(_e,{}),e(ve,{}),e(h,{fontSize:"xs",pr:5,children:d("hostsDialog.fragment.info")}),e(h,{fontSize:"xs",pr:5,pt:2,pb:1,children:d("hostsDialog.fragment.info.examples")}),e(h,{fontSize:"xs",pr:5,children:"100-200,10-20,tlshello"}),e(h,{fontSize:"xs",pr:5,children:"100-200,10-20,1-3"}),e(h,{fontSize:"xs",pr:5,pt:"3",children:d("hostsDialog.fragment.info.attention")})]})})]})]}),e(Le,{size:"sm",borderRadius:"4px",placeholder:"Fragment settings by pattern",...i.register(t+"."+g+".fragment_setting")}),c&&((Ze=c[g])==null?void 0:Ze.fragment_setting)&&e(xe,{children:(v=(Qe=c[g])==null?void 0:Qe.fragment_setting)==null?void 0:v.message})]}),e(R,{isInvalid:!!(c&&(($=c[g])==null?void 0:$.allowinsecure)),children:r(nt,{...i.register(t+"."+g+".allowinsecure"),name:t+"."+g+".allowinsecure",children:[e(B,{children:d("hostsDialog.allowinsecure")}),c&&((ge=c[g])==null?void 0:ge.allowinsecure)&&e(xe,{children:(ce=(fe=c[g])==null?void 0:fe.allowinsecure)==null?void 0:ce.message})]})}),r(R,{isInvalid:!!(c&&((be=c[g])==null?void 0:be.mux_enable)),children:[e(nt,{...i.register(t+"."+g+".mux_enable"),children:e(B,{children:d("hostsDialog.muxEnable")})}),c&&((G=c[g])==null?void 0:G.mux_enable)&&e(xe,{children:(Xe=(qe=c[g])==null?void 0:qe.mux_enable)==null?void 0:Xe.message})]}),r(R,{isInvalid:!!(c&&((Je=c[g])==null?void 0:Je.random_user_agent)),children:[e(nt,{...i.register(t+"."+g+".random_user_agent"),children:e(B,{children:d("hostsDialog.randomUserAgent")})}),c&&((Ke=c[g])==null?void 0:Ke.random_user_agent)&&e(xe,{children:(Fe=(et=c[g])==null?void 0:et.random_user_agent)==null?void 0:Fe.message})]})]},g)})]})})]},g)}),e(N,{variant:"outline",w:"full",size:"sm",color:"",fontWeight:"normal",onClick:C,children:d("hostsDialog.addHost")})]})})]})},Ls=()=>{const{isEditingHosts:t,onEditingHosts:n,refetchUsers:o,inbounds:s}=I(),{isLoading:a,hosts:i,fetchHosts:l,isPostLoading:u,setHosts:p}=zs(),y=ue(),{t:d}=O(),[c,C]=f.exports.useState({});f.exports.useEffect(()=>{t&&l()},[t]);const _=Be({resolver:ct(Us)});f.exports.useEffect(()=>{i&&t&&_.reset(i)},[i]);const g=()=>{C({}),n(!1)},S=m=>{p(m).then(()=>{y({title:d("hostsDialog.savedSuccess"),status:"success",isClosable:!0,position:"top",duration:3e3}),o()}).catch(b=>{var P,H,E,A,V;(((P=b==null?void 0:b.response)==null?void 0:P.status)===409||((H=b==null?void 0:b.response)==null?void 0:H.status)===400)&&y({title:(A=(E=b.response)==null?void 0:E._data)==null?void 0:A.detail,status:"error",isClosable:!0,position:"top",duration:3e3}),((V=b==null?void 0:b.response)==null?void 0:V.status)===422&&Object.keys(b.response._data.detail).forEach(Z=>{y({title:b.response._data.detail[Z]+" ("+Z+")",status:"error",isClosable:!0,position:"top",duration:3e3})})})},T=m=>{c[String(m)]?delete c[String(m)]:c[String(m)]={},C({...c})};return r(re,{isOpen:t,onClose:g,children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(se,{pt:6,children:e(le,{color:"primary",children:e(Es,{color:"white"})})}),e(ae,{mt:3}),e(ie,{w:"440px",pb:3,pt:3,children:e(Ar,{..._,children:r("form",{onSubmit:_.handleSubmit(S),children:[e(h,{mb:3,opacity:.8,fontSize:"sm",children:d("hostsDialog.title")}),a&&d("hostsDialog.loading"),!a&&i&&(Object.keys(i).length>0?e(dt,{w:"full",allowToggle:!0,allowMultiple:!0,index:Object.keys(c).map(m=>parseInt(m)),children:e(M,{w:"full",children:Object.keys(i).map((m,b)=>e(Rs,{toggleAccordion:()=>T(b),isOpen:c[String(b)],hostKey:m},m))})}):"No inbound found. Please check your Xray config file."),e(k,{justifyContent:"flex-end",py:2,children:e(N,{variant:"solid",mt:"2",type:"submit",colorScheme:"primary",size:"sm",px:5,isLoading:u,disabled:u,children:d("hostsDialog.apply")})})]})})})]})]})},en=w.object({name:w.string().min(1),address:w.string().min(1),port:w.number().min(1).or(w.string().transform(t=>parseFloat(t))),api_port:w.number().min(1).or(w.string().transform(t=>parseFloat(t))),xray_version:w.string().nullable().optional(),id:w.number().nullable().optional(),status:w.enum(["connected","connecting","error","disabled"]).nullable().optional(),message:w.string().nullable().optional(),add_as_new_host:w.boolean().optional()}),Ts=()=>({name:"",address:"",port:62050,api_port:62051,xray_version:""}),it="fetch-nodes-query-key",As=()=>{const{isEditingNodes:t}=I();return Ot({queryKey:it,queryFn:ut.getState().fetchNodes,refetchInterval:t?3e3:void 0,refetchOnWindowFocus:!1})},ut=vt((t,n)=>({nodes:[],addNode(o){return W("/node",{method:"POST",body:o})},fetchNodes(){return W("/nodes")},fetchNodesUsage(o){return W("/nodes/usage",{query:o})},updateNode(o){return W(`/node/${o.id}`,{method:"PUT",body:o})},setDeletingNode(o){t({deletingNode:o})},reconnectNode(o){return W(`/node/${o.id}/reconnect`,{method:"POST"})},deleteNode:()=>{var o;return W(`/node/${(o=n().deletingNode)==null?void 0:o.id}`,{method:"DELETE"})}})),Yt=(t,n,o)=>{if(t.response&&t.response._data){if(typeof t.response._data.detail=="string")return n({title:t.response._data.detail,status:"error",isClosable:!0,position:"top",duration:3e3});if(typeof t.response._data.detail=="object"&&o){Object.keys(t.response._data.detail).forEach(s=>o.setError(s,{message:t.response._data.detail[s]}));return}}return n({title:"Something went wrong!",status:"error",isClosable:!0,position:"top",duration:3e3})},Zt=(t,n)=>n({title:t,status:"success",isClosable:!0,position:"top",duration:3e3}),Ms=({deleteCallback:t})=>{const{deleteNode:n,deletingNode:o,setDeletingNode:s}=ut(),{t:a}=O(),i=ue(),l=$t(),u=()=>{s(null)},{isLoading:p,mutate:y}=st(n,{onSuccess:()=>{Zt(a("deleteNode.deleteSuccess",{name:o&&o.name}),i),s(null),l.invalidateQueries(it),t&&t()},onError:d=>{Yt(d,i)}});return r(re,{isCentered:!0,isOpen:!!o,onClose:u,size:"sm",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",children:[e(se,{pt:6,children:e(le,{color:"red",children:e(ht,{})})}),e(ae,{mt:3}),r(ie,{children:[e(h,{fontWeight:"semibold",fontSize:"lg",children:a("deleteNode.title")}),o&&e(h,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ee,{components:{b:e("b",{})},children:a("deleteNode.prompt",{name:o.name})})})]}),r(Ue,{display:"flex",children:[e(N,{size:"sm",onClick:u,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:()=>y(),leftIcon:p?e(Ne,{size:"xs"}):void 0,children:a("delete")})]})]})]})},pt={baseStyle:{strokeWidth:"2px",w:4,h:4}},hr=x(Bn,pt),Ns=x($n,pt),ur=x(Vn,pt),pr=x(Mr,pt),Fs=x(Mr,pt),Pt=[{title:"No",value:"no_reset"},{title:"Daily",value:"day"},{title:"Weekly",value:"week"},{title:"Monthly",value:"month"},{title:"Annually",value:"year"}],ot={active:{statusColor:"green",bandWidthColor:"primary",icon:hr},connected:{statusColor:"green",bandWidthColor:"primary",icon:hr},disabled:{statusColor:"gray",bandWidthColor:"gray",icon:Ns},expired:{statusColor:"orange",bandWidthColor:"orange",icon:pr},on_hold:{statusColor:"purple",bandWidthColor:"purple",icon:Fs},connecting:{statusColor:"orange",bandWidthColor:"orange",icon:pr},limited:{statusColor:"red",bandWidthColor:"red",icon:ur},error:{statusColor:"red",bandWidthColor:"red",icon:ur}},Qt=t=>{let n={status:"",time:""};if(t){j(t*1e3).utc().isAfter(j().utc())?n.status="expires":n.status="expired";const o=[],s=j.duration(j(t*1e3).utc().diff(j()));s.years()!=0&&o.push(Math.abs(s.years())+" year"+(Math.abs(s.years())!=1?"s":"")),s.months()!=0&&o.push(Math.abs(s.months())+" month"+(Math.abs(s.months())!=1?"s":"")),s.days()!=0&&o.push(Math.abs(s.days())+" day"+(Math.abs(s.days())!=1?"s":"")),o.length===0&&(s.hours()!=0&&o.push(Math.abs(s.hours())+" hour"+(Math.abs(s.hours())!=1?"s":"")),s.minutes()!=0&&o.push(Math.abs(s.minutes())+" min"+(Math.abs(s.minutes())!=1?"s":""))),n.time=o.join(", ")}return n},xt=({expiryDate:t,status:n,compact:o=!1,showDetail:s=!0,extraText:a})=>{const{t:i}=O(),l=Qt(t),u=ot[n].icon;return r(ye,{children:[r(U,{colorScheme:ot[n].statusColor,rounded:"full",display:"inline-flex",px:3,py:1,columnGap:o?1:2,alignItems:"center",children:[e(u,{w:o?3:4}),s&&r(h,{textTransform:"capitalize",fontSize:o?".7rem":".875rem",lineHeight:o?"1rem":"1.25rem",fontWeight:"medium",letterSpacing:"tighter",children:[n,a&&`: ${a}`]})]}),s&&t&&e(h,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:i(l.status,{time:l.time})})]})},ft=x(Ae,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Ps=x(Lr,{baseStyle:{w:5,h:5}}),Ws=x(Gn,{baseStyle:{w:5,h:5,strokeWidth:2}}),Os=({toggleAccordion:t,node:n})=>{const{updateNode:o,reconnectNode:s,setDeletingNode:a}=ut(),{t:i}=O(),l=$t(),u=ue(),p=Be({defaultValues:n,resolver:ct(en)}),y=a.bind(null,n),{isLoading:d,mutate:c}=st(o,{onSuccess:()=>{Zt("Node updated successfully",u),l.invalidateQueries(it)},onError:S=>{Yt(S,u,p)}}),{isLoading:C,mutate:_}=st(s.bind(null,n),{onSuccess:()=>{l.invalidateQueries(it)}}),g=C?"connecting":n.status?n.status:"error";return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:t,children:[r(k,{w:"full",justifyContent:"space-between",pr:2,children:[e(h,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:n.name}),r(k,{children:[n.xray_version&&e(U,{colorScheme:"blue",rounded:"full",display:"inline-flex",px:3,py:1,children:r(h,{textTransform:"capitalize",fontSize:"0.7rem",fontWeight:"medium",letterSpacing:"tighter",children:["Xray ",n.xray_version]})}),n.status&&e(xt,{status:g,compact:!0})]})]}),e(Mt,{})]}),r(He,{px:2,pb:2,children:[e(M,{pb:3,alignItems:"flex-start",children:g==="error"&&e(at,{status:"error",size:"xs",children:r(z,{children:[r(k,{w:"full",children:[e(wt,{w:4}),e(h,{marginInlineEnd:0,children:n.message})]}),e(k,{justifyContent:"flex-end",w:"full",children:e(N,{size:"sm","aria-label":"reconnect node",leftIcon:e(Qr,{}),onClick:()=>_(),disabled:C,children:i(C?"nodes.reconnecting":"nodes.reconnect")})})]})})}),e(tn,{form:p,mutate:c,isLoading:d,submitBtnText:i("nodes.editNode"),btnLeftAdornment:e(te,{label:i("delete"),placement:"top",children:e(Y,{colorScheme:"red",variant:"ghost",size:"sm","aria-label":"delete node",onClick:y,children:e(ht,{})})})})]})]})},js=({toggleAccordion:t,resetAccordions:n})=>{const o=ue(),{t:s}=O(),a=$t(),{addNode:i}=ut(),l=Be({resolver:ct(en),defaultValues:{...Ts(),add_as_new_host:!0}}),{isLoading:u,mutate:p}=st(i,{onSuccess:()=>{Zt(s("nodes.addNodeSuccess",{name:l.getValues("name")}),o),a.invalidateQueries(it),l.reset(),n()},onError:y=>{Yt(y,o,l)}});return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[e(je,{px:2,borderRadius:"3px",onClick:t,children:r(h,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},display:"flex",gap:1,children:[e(Ws,{display:"inline-block"})," ",e("span",{children:s("nodes.addNewMarzbanNode")})]})}),e(He,{px:2,py:4,children:e(tn,{form:l,mutate:p,isLoading:u,submitBtnText:s("nodes.addNode"),btnProps:{variant:"solid"},addAsHost:!0})})]})},tn=({form:t,mutate:n,isLoading:o,submitBtnText:s,btnProps:a={},btnLeftAdornment:i,addAsHost:l=!1})=>{var _,g,S,T,m,b,P,H,E,A,V,Z;const{t:u}=O(),[p,y]=f.exports.useState(!1),{data:d,isLoading:c}=Ot({queryKey:"node-settings",queryFn:()=>W("/node/settings")});function C(D){if(document.body.createTextRange){const F=document.body.createTextRange();F.moveToElementText(D),F.select()}else if(window.getSelection){const F=window.getSelection(),Q=document.createRange();Q.selectNodeContents(D),F.removeAllRanges(),F.addRange(Q)}else console.warn("Could not select text in node: Unsupported browser.")}return e("form",{onSubmit:t.handleSubmit(D=>n(D)),children:r(M,{children:[d&&d.certificate&&e(at,{status:"info",alignItems:"start",children:r(Nr,{display:"flex",flexDirection:"column",overflow:"hidden",children:[e("span",{children:u("nodes.connection-hint")}),r(k,{justify:"end",py:2,children:[e(N,{as:"a",colorScheme:"primary",size:"xs",download:"ssl_client_cert.pem",href:URL.createObjectURL(new Blob([d.certificate],{type:"text/plain"})),children:u("nodes.download-certificate")}),e(te,{placement:"top",label:u("nodes.show-certificate"),children:e(Y,{"aria-label":u("nodes.show-certificate"),onClick:y.bind(null,!p),colorScheme:"whiteAlpha",color:"primary",size:"xs",children:p?e(Zn,{width:"15px"}):e(Yn,{width:"15px"})})})]}),e(Fr,{in:p,animateOpacity:!0,children:e(h,{bg:"rgba(255,255,255,.5)",_dark:{bg:"rgba(255,255,255,.2)"},rounded:"md",p:"2",lineHeight:"1.2",fontSize:"10px",fontFamily:"Courier",whiteSpace:"pre",overflow:"auto",onClick:D=>{C(D.target)},children:d.certificate})})]})}),r(k,{w:"full",children:[e(R,{children:e(ft,{label:u("nodes.nodeName"),size:"sm",placeholder:"Marzban-S2",...t.register("name"),error:(S=(g=(_=t.formState)==null?void 0:_.errors)==null?void 0:g.name)==null?void 0:S.message})}),e(k,{px:1,children:e(De,{name:"status",control:t.control,render:({field:D})=>e(te,{placement:"top",label:`${u("usersTable.status")}: `+(D.value!=="disabled"?u("active"):u("disabled")),textTransform:"capitalize",children:e(z,{mt:"6",children:e(Bt,{colorScheme:"primary",isChecked:D.value!=="disabled",onChange:F=>{F.target.checked?D.onChange("connecting"):D.onChange("disabled")}})})},D.value)})})]}),r(k,{alignItems:"flex-start",children:[e(z,{w:"50%",children:e(ft,{label:u("nodes.nodeAddress"),size:"sm",placeholder:"51.20.12.13",...t.register("address"),error:(b=(m=(T=t.formState)==null?void 0:T.errors)==null?void 0:m.address)==null?void 0:b.message})}),e(z,{w:"25%",children:e(ft,{label:u("nodes.nodePort"),size:"sm",placeholder:"62050",...t.register("port"),error:(E=(H=(P=t.formState)==null?void 0:P.errors)==null?void 0:H.port)==null?void 0:E.message})}),e(z,{w:"25%",children:e(ft,{label:u("nodes.nodeAPIPort"),size:"sm",placeholder:"62051",...t.register("api_port"),error:(Z=(V=(A=t.formState)==null?void 0:A.errors)==null?void 0:V.api_port)==null?void 0:Z.message})})]}),l&&e(R,{py:1,children:e(nt,{...t.register("add_as_new_host"),children:e(B,{m:0,children:u("nodes.addHostForEveryInbound")})})}),r(k,{w:"full",children:[i,e(N,{flexGrow:1,type:"submit",colorScheme:"primary",size:"sm",px:5,w:"full",isLoading:o,...a,children:s})]})]})})},Hs=()=>{const{isEditingNodes:t,onEditingNodes:n}=I(),{t:o}=O(),[s,a]=f.exports.useState({}),{data:i,isLoading:l}=As(),u=()=>{a({}),n(!1)},p=y=>{s[String(y)]?delete s[String(y)]:s[String(y)]={},a({...s})};return r(ye,{children:[r(re,{isOpen:t,onClose:u,children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(se,{pt:6,children:e(le,{color:"primary",children:e(Ps,{color:"white"})})}),e(ae,{mt:3}),r(ie,{w:"440px",pb:6,pt:3,children:[e(h,{mb:3,opacity:.8,fontSize:"sm",children:o("nodes.title")}),l&&"loading...",e(dt,{w:"full",allowToggle:!0,index:Object.keys(s).map(y=>parseInt(y)),children:r(M,{w:"full",children:[!l&&i&&i.map((y,d)=>e(Os,{toggleAccordion:()=>p(d),node:y},y.name)),e(js,{toggleAccordion:()=>p((i||[]).length),resetAccordions:()=>a({})})]})})]})]})]}),e(Ms,{deleteCallback:()=>a({})})]})};function Bs(t){const n=360/t,o=90,s=47,a=[];for(let i=0;i(C<0&&(C+=1),C>1&&(C-=1),C<.16666666666666666?d+(c-d)*6*C:C<.5?c:C<.6666666666666666?d+(c-d)*(.6666666666666666-C)*6:d),p=o<.5?o*(1+n):o+n-o*n,y=2*o-p;s=Math.round(u(y,p,t+1/3)*255),a=Math.round(u(y,p,t)*255),i=Math.round(u(y,p,t-1/3)*255)}const l=u=>{const p=u.toString(16);return p.length===1?"0"+p:p};return`#${l(s)}${l(a)}${l(i)}`}const mr=({border:t,...n})=>{const{getInputProps:o,getRadioProps:s}=to(n),a=Te({base:"xs",md:"sm"});return r(z,{as:"label",children:[e("input",{...o()}),e(z,{...s(),minW:"48px",w:"full",h:"full",textAlign:"center",cursor:"pointer",fontSize:a,borderWidth:t?"1px":"0px",borderRadius:"md",_checked:{bg:"primary.500",color:"white",borderColor:"primary.500"},_focus:{boxShadow:"outline"},px:3,py:1,children:n.children})]})},rn=({onChange:t,defaultValue:n,...o})=>{const{t:s,i18n:a}=O();lt();const i=Te({base:["7h","1d","3d","1w"],md:["7h","1d","3d","1w","1m","3m"]}),l={h:"hour",d:"day",w:"week",m:"month",y:"year"},u=Te({base:[{title:"hours",options:["1h","3h","6h","12h"]},{title:"days",options:["1d","2d","3d","4d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m"]}],md:[{title:"hours",options:["1h","2h","3h","6h","8h","12h"]},{title:"days",options:["1d","2d","3d","4d","5d","6d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m","8m"]}]}),{getRootProps:p,getRadioProps:y,setValue:d}=Qn({name:"filter",defaultValue:n,onChange:L=>{if(L==="custom")return;_(),i.indexOf(L)>=0?(T(s("userDialog.custom")),b(!1)):(T(s("userDialog.custom")+` (${L})`),b(!0));const q=Number(L.substring(0,L.length-1)),K=l[L[L.length-1]];t(L,{start:j().utc().subtract(q,K).format("YYYY-MM-DDTHH:00:00")})}}),{isOpen:c,onOpen:C,onClose:_}=qn(),g=f.exports.useRef(null);Xn({ref:g,handler:_});const[S,T]=f.exports.useState(s("userDialog.custom")),[m,b]=f.exports.useState(!1),[P,H]=f.exports.useState(0),E=Te({base:1,md:2}),A=Te({base:"xs",md:"sm"}),[V,Z]=f.exports.useState(null),[D,F]=f.exports.useState(null),Q=L=>{const[q,K]=L;D&&!K?(Z(null),F(null)):(Z(q),F(K),q&&K&&(_(),t("custom",{start:j(q).format("YYYY-MM-DDT00:00:00"),end:j(K).format("YYYY-MM-DDT23:59:59")})))};return r(M,{...o,children:[P==0&&r(Vt,{...p(),gap:0,display:"flex",borderWidth:"1px",borderRadius:"md",minW:{base:"320px",md:"400px"},children:[i.map(L=>e(mr,{...y({value:L}),children:L},L)),e(z,{onClick:()=>{Z(null),F(null),C()},cursor:"pointer",borderRadius:"md",w:"full",fontSize:A,px:3,py:1,bg:m?"primary.500":"unset",color:m?"white":"unset",borderColor:m?"primary.500":"unset",children:r(k,{children:[e(h,{children:S}),e(Et,{as:er,boxSize:"18px"})]})})]}),P==1&&r(k,{onClick:C,cursor:"pointer",fontSize:A,borderRadius:"md",px:3,py:1,minW:{base:"320px",md:"400px"},borderWidth:"1px",children:[e(h,{w:"full",color:V?"unset":"gray.500",children:V?j(V).format("YYYY-MM-DD (00:00)"):s("userDialog.startDate")}),e(Et,{as:Pr,boxSize:"18px"}),e(h,{w:"full",color:D?"unset":"gray.500",children:D?j(D).format("YYYY-MM-DD (23:59)"):s("userDialog.endDate")}),e(Et,{as:er,boxSize:"18px"})]}),e(M,{ref:g,marginTop:"40px !important",borderRadius:"md",borderWidth:"1px",position:"absolute",zIndex:"1",backgroundColor:"white",_dark:{backgroundColor:"gray.700"},display:c?"unset":"none",children:r(Jn,{onChange:L=>H(L),children:[r(Kn,{children:[e(tr,{fontSize:A,children:s("userDialog.relative")}),e(tr,{fontSize:A,children:s("userDialog.absolute")})]}),r(eo,{children:[e(rr,{children:u.map(L=>e(M,{alignItems:"start",pl:2,pr:2,children:r(k,{justifyItems:"flex-start",mb:4,children:[e(h,{fontSize:A,minW:"60px",children:s("userDialog."+L.title)}),L.options.map(q=>e(mr,{border:!0,...y({value:q}),children:q},q+".custom"))]})},L.title))}),e(rr,{className:"datepicker-panel",children:e(M,{children:e(Wr,{locale:a.language.toLocaleLowerCase(),selected:V,onChange:Q,startDate:V,endDate:D,selectsRange:!0,maxDate:new Date,monthsShown:E,peekNextMonth:!1,inline:!0})})})]})]})})]})};function _t(t,n,o=[],s=[]){const a=ee(o.reduce((i,l)=>i+=l,0));return{series:o,options:{labels:s,chart:{width:"100%",height:"100%",type:"donut",animations:{enabled:!1}},title:{text:`${n}${a}`,align:"center",style:{fontWeight:"var(--chakra-fontWeights-medium)",color:t==="dark"?"var(--chakra-colors-gray-300)":void 0}},legend:{position:"bottom",labels:{colors:t==="dark"?"#CBD5E0":void 0,useSeriesColors:!1}},stroke:{width:1,colors:void 0},dataLabels:{formatter:(i,{seriesIndex:l,w:u})=>ee(u.config.series[l],1)},tooltip:{custom:({series:i,seriesIndex:l,dataPointIndex:u,w:p})=>{const y=ee(i[l],1),d=Math.max(i.reduce((C,_)=>C+=_),1),c=Math.round(i[l]/d*1e3)/10+"%";return` -
- ${p.config.labels[l]}: ${c}, ${y} -
- `}},colors:Bs(o.length)}}}const Vs=x(It,{baseStyle:{w:5,h:5}}),Gs=()=>{const{isShowingNodesUsage:t,onShowingNodesUsage:n}=I(),{fetchNodesUsage:o}=ut(),{t:s}=O(),[a,i]=f.exports.useState(!1),{colorMode:l}=lt(),u=s("userDialog.total"),[p,y]=f.exports.useState(_t(l,u)),[d,c]=f.exports.useState("1m"),C=S=>{o(S).then(T=>{const m=[],b=[];for(const P in T.usages){const H=T.usages[P];b.push(H.uplink+H.downlink),m.push(H.node_name)}y(_t(l,u,b,m))})};f.exports.useEffect(()=>{t&&C({start:j().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")})},[t]);const _=()=>{n(!1),c("1m")},g=a;return r(re,{isOpen:t,onClose:_,size:"2xl",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",w:"full",children:[e(se,{pt:6,children:r(k,{gap:2,children:[e(le,{color:"primary",children:e(Vs,{color:"white"})}),e(h,{fontWeight:"semibold",fontSize:"lg",children:s("header.nodesUsage")})]})}),e(ae,{mt:3,disabled:g}),e(ie,{children:r(M,{gap:4,children:[e(rn,{defaultValue:d,onChange:(S,T)=>{c(S),C(T)}}),e(z,{justifySelf:"center",w:"full",maxW:"300px",mt:"4",children:e(f.exports.Suspense,{fallback:e(Ir,{isIndeterminate:!0}),children:e(Or,{options:p.options,series:p.series,type:"donut",height:"500px"})})})]})}),e(Ue,{mt:"3"})]})]})},gr=x(ro),Ys=x(Pr,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Zs=x(no,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Qs=x(jr,{baseStyle:{w:5,h:5}}),qs=()=>{const{QRcodeLinks:t,setQRCode:n,setSubLink:o,subscribeUrl:s}=I(),a=t!==null,[i,l]=f.exports.useState(0),{t:u}=O(),p=()=>{n(null),o(null)},y=String(s).startsWith("/")?window.location.origin+s:String(s);return r(re,{isOpen:a,onClose:p,children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(se,{pt:6,children:e(le,{color:"primary",children:e(Qs,{color:"white"})})}),e(ae,{mt:3}),t&&r(ie,{gap:{base:"20px",lg:"50px"},pr:{lg:"60px"},px:{base:"50px"},display:"flex",justifyContent:"center",flexDirection:{base:"column",lg:"row"},children:[s&&r(M,{children:[e(gr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:y,bg:"white"}),e(h,{display:"block",textAlign:"center",pb:3,mt:1,children:u("qrcodeDialog.sublink")})]}),r(z,{w:"300px",children:[e(oo,{centerPadding:"0px",centerMode:!0,slidesToShow:1,slidesToScroll:1,dots:!1,afterChange:l,onInit:()=>l(0),nextArrow:e(Y,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"next",mr:"-4",children:e(Ys,{})}),prevArrow:e(Y,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"prev",ml:"-4",children:e(Zs,{})}),children:t.map((d,c)=>e(k,{children:e(gr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:d,bg:"white"})},c))}),r(h,{display:"block",textAlign:"center",pb:3,mt:1,children:[i+1," / ",t.length]})]})]})]})]})},Xs=x(Tr,{baseStyle:{w:5,h:5}}),Js=()=>{const[t,n]=f.exports.useState(!1),{isResetingAllUsage:o,onResetAllUsage:s,resetAllUsage:a}=I(),{t:i}=O(),l=ue(),u=()=>{s(!1)},p=()=>{n(!0),a().then(()=>{l({title:i("resetAllUsage.success"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{l({title:i("resetAllUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)})};return r(re,{isCentered:!0,isOpen:o,onClose:u,size:"sm",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",children:[e(se,{pt:6,children:e(le,{color:"red",children:e(Xs,{})})}),e(ae,{mt:3}),r(ie,{children:[e(h,{fontWeight:"semibold",fontSize:"lg",children:i("resetAllUsage.title")}),o&&e(h,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:i("resetAllUsage.prompt")})]}),r(Ue,{display:"flex",children:[e(N,{size:"sm",onClick:u,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Ne,{size:"xs"}):void 0,children:i("reset")})]})]})]})},Ks=x(zt,{baseStyle:{w:5,h:5}}),ea=()=>{const[t,n]=f.exports.useState(!1),{resetUsageUser:o,resetDataUsage:s}=I(),{t:a}=O(),i=ue(),l=()=>{I.setState({resetUsageUser:null})},u=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("resetUserUsage.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("resetUserUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(re,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",children:[e(se,{pt:6,children:e(le,{color:"blue",children:e(Ks,{})})}),e(ae,{mt:3}),r(ie,{children:[e(h,{fontWeight:"semibold",fontSize:"lg",children:a("resetUserUsage.title")}),o&&e(h,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ee,{components:{b:e("b",{})},children:a("resetUserUsage.prompt",{username:o.username})})})]}),r(Ue,{display:"flex",children:[e(N,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"blue",onClick:u,leftIcon:t?e(Ne,{size:"xs"}):void 0,children:a("reset")})]})]})]})},ta=x(zt,{baseStyle:{w:5,h:5}}),ra=()=>{const[t,n]=f.exports.useState(!1),{revokeSubscriptionUser:o,revokeSubscription:s}=I(),{t:a}=O(),i=ue(),l=()=>{I.setState({revokeSubscriptionUser:null})},u=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("revokeUserSub.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("revokeUserSub.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(re,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(oe,{mx:"3",children:[e(se,{pt:6,children:e(le,{color:"blue",children:e(ta,{})})}),e(ae,{mt:3}),r(ie,{children:[e(h,{fontWeight:"semibold",fontSize:"lg",children:a("revokeUserSub.title")}),o&&e(h,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ee,{components:{b:e("b",{})},children:a("revokeUserSub.prompt",{username:o.username})})})]}),r(Ue,{display:"flex",children:[e(N,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"blue",onClick:u,leftIcon:t?e(Ne,{size:"xs"}):void 0,children:a("revoke")})]})]})]})},na=x(so,{baseStyle:{strokeWidth:"2px",w:5,h:5}}),oa=({inbound:t,...n})=>{const{getCheckboxProps:o,getInputProps:s,getLabelProps:a,htmlProps:i}=Br(n),l=s();return r(z,{as:"label",children:[e("input",{...l}),r(z,{w:"fll",position:"relative",...i,cursor:"pointer",borderRadius:"sm",border:"1px solid",borderColor:"gray.200",_dark:{borderColor:"gray.600"},display:"flex",alignItems:"center",justifyContent:"space-between",overflow:"hidden",_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent",fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& p":{opacity:1}},__css:{"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...o(),children:[e(nt,{size:"sm",w:"full",maxW:"full",color:"gray.700",_dark:{color:"gray.300"},textTransform:"uppercase",colorScheme:"primary",className:"inbound-item",isChecked:l.checked,pointerEvents:"none",flexGrow:1,children:e(k,{justify:"space-between",w:"full",maxW:"calc(100% - 20px)",spacing:0,gap:2,overflow:"hidden",children:r(h,{isTruncated:!0,...a(),fontSize:"xs",children:[t.tag," ",r(h,{as:"span",children:["(",t.network,")"]})]})})}),t.tls&&t.tls!="none"&&e(U,{fontSize:"xs",opacity:".8",size:"xs",children:t.tls})]})]})},sa=({disabled:t,title:n,description:o,toggleAccordion:s,isSelected:a,...i})=>{const l=Ht(),{inbounds:u}=I(),{getCheckboxProps:p,getInputProps:y,getLabelProps:d,htmlProps:c}=Br(i),C=y(),[_]=$r({name:[`inbounds.${n}`],control:l.control}),{getCheckboxProps:g}=Hr({value:_,onChange:b=>{if(l.setValue(`inbounds.${n}`,b),b.length===0){const P=l.getValues("selected_proxies");l.setValue("selected_proxies",P.filter(H=>H!==n)),s()}}}),S=_&&a&&(I.getState().inbounds.get(n)||[]).length!==_.length,T=(I.getState().inbounds.get(n)||[]).length>0,m=!a&&!T;return r(Oe,{isDisabled:!T,borderRadius:"md",borderStyle:"solid",border:"1px",borderColor:"gray.200",bg:m?"gray.100":"transparent",_dark:{borderColor:"gray.600",bg:m?"#364154":"transparent"},_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent"},...p(),children:[r(z,{as:m?"span":"label",position:"relative",children:[S&&e(z,{position:"absolute",w:"2",h:"2",bg:"yellow.500",top:"-1",right:"-1",rounded:"full",zIndex:999}),e("input",{...C}),r(z,{w:"fll",position:"relative",...c,borderRadius:"md",cursor:m?"not-allowed":"pointer",_checked:{fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& > svg":{opacity:1,"&.checked":{display:"block"},"&.unchecked":{display:"none"}},"& p":{opacity:1}},__css:{"& > svg":{opacity:.3,"&.checked":{display:"none"},"&.unchecked":{display:"block"}},"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...p(),children:[e(je,{display:C.checked&&T?"block":"none",as:"span",className:"checked",color:"primary.200",position:"absolute",right:"3",top:"3",w:"auto",p:0,onClick:s,children:e(Y,{size:"sm","aria-label":"inbound settings",children:e(na,{})})}),e(h,{fontSize:"sm",color:m?"gray.400":"gray.700",_dark:{color:m?"gray.500":"gray.300"},...d(),children:n}),e(h,{fontWeight:"medium",color:m?"gray.400":"gray.600",_dark:{color:m?"gray.500":"gray.400"},fontSize:"xs",children:o})]})]}),e(He,{px:2,pb:3,roundedBottom:"5px",pt:3,_dark:{bg:C.checked&&"gray.750"},children:r(M,{w:"full",rowGap:2,borderStyle:"solid",borderWidth:"1px",borderRadius:"md",pl:3,pr:3,pt:1.5,_dark:{bg:"gray.700"},children:[r(M,{alignItems:"flex-start",w:"full",children:[e(h,{fontSize:"sm",children:X("inbound")}),e(Vt,{gap:2,alignItems:"flex-start",w:"full",columns:1,spacing:1,children:(u.get(n)||[]).map(b=>e(oa,{...g({value:b.tag}),inbound:b},b.tag))})]}),n==="vmess"&&a&&e(M,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:X("userDialog.generatedByDefault"),...l.register("proxies.vmess.id")})]})}),n==="vless"&&a&&r(M,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:X("userDialog.generatedByDefault"),...l.register("proxies.vless.id")})]}),r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:"Flow"}),e(Me,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.vless.flow"),children:vs.map(b=>e("option",{value:b.value,children:b.title},b.title))})]})]}),n==="trojan"&&a&&e(M,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:X("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:X("userDialog.generatedByDefault"),...l.register("proxies.trojan.password")})]})}),n==="shadowsocks"&&a&&r(M,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:X("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:X("userDialog.generatedByDefault"),...l.register("proxies.shadowsocks.password")})]}),r(R,{height:"66px",children:[e(h,{fontSize:"sm",pb:1,children:X("userDialog.method")}),e(Me,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.shadowsocks.method"),children:Is.map(b=>e("option",{value:b,children:b},b))})]})]})]})})]})},aa=f.exports.forwardRef(({name:t,list:n,onChange:o,disabled:s,...a},i)=>{const l=Ht(),[u,p]=f.exports.useState([]),y=c=>{u.includes(c)?u.splice(u.indexOf(c),1):u.push(c),p([...u])},{getCheckboxProps:d}=Hr({value:a.value,onChange:c=>{var _;const C=c.filter(g=>!a.value.includes(g));C[0]&&l.setValue(`inbounds.${C[0]}`,(_=I.getState().inbounds.get(C[0]))==null?void 0:_.map(g=>g.tag)),p(u.filter(g=>c.find(S=>S===n[g].title))),o({target:{value:c,name:t}})}});return e(dt,{allowToggle:!0,index:u,children:e(Vt,{ref:i,gap:2,alignItems:"flex-start",columns:1,spacing:1,children:n.map((c,C)=>e(sa,{toggleAccordion:y.bind(null,C),disabled:s,title:c.title,description:c.description,isSelected:!!a.value.find(_=>_===c.title),...d({value:c.title})},c.title))})})}),ia=x(ao,{baseStyle:{w:5,h:5}}),la=x(Vr,{baseStyle:{w:5,h:5}}),ca=x(It,{baseStyle:{w:5,h:5}}),da=w.object({username:w.string().min(1,{message:"Required"}),selected_proxies:w.array(w.string()).refine(t=>t.length>0,{message:"userDialog.selectOneProtocol"}),note:w.string().nullable(),proxies:w.record(w.string(),w.record(w.string(),w.any())).transform(t=>{const n=(o,s)=>{o&&o[s]===""&&delete o[s]};return n(t.vmess,"id"),n(t.vless,"id"),n(t.trojan,"password"),n(t.shadowsocks,"password"),n(t.shadowsocks,"method"),t}),data_limit:w.string().min(0,"The minimum number is 0").or(w.number()).nullable().transform(t=>t?Number((parseFloat(String(t))*1073741824).toFixed(5)):0),expire:w.number().nullable(),data_limit_reset_strategy:w.string(),status:w.string(),inbounds:w.record(w.string(),w.array(w.string())).transform(t=>(Object.keys(t).forEach(n=>{var o;Array.isArray(t[n])&&!((o=t[n])!=null&&o.length)&&delete t[n]}),t))}),ha=t=>({...t,data_limit:t.data_limit?Number((t.data_limit/1073741824).toFixed(5)):t.data_limit,selected_proxies:Object.keys(t.proxies)}),Lt=()=>{const t=Object.fromEntries(I.getState().inbounds),n={};for(const o in t)n[o]=t[o].map(s=>s.tag);return{selected_proxies:Object.keys(t),data_limit:null,expire:null,username:"",data_limit_reset_strategy:"no_reset",status:"active",note:"",inbounds:n,proxies:{vless:{id:"",flow:""},vmess:{id:""},trojan:{password:""},shadowsocks:{password:"",method:"chacha20-ietf-poly1305"}}}},ua=(t,n)=>{const o=t.reduce((s,a)=>({...s,[a]:{}}),{});return n&&t.forEach(s=>{n[s]&&(o[s]=n[s])}),o},pa=()=>{var Ve,Ge,Ye,Ze,Qe;const{editingUser:t,isCreatingNewUser:n,onCreateUser:o,editUser:s,fetchUserUsage:a,onEditingUser:i,createUser:l,onDeletingUser:u}=I(),p=!!t,y=n||p,[d,c]=f.exports.useState(!1),[C,_]=f.exports.useState(""),g=ue(),{t:S,i18n:T}=O(),{colorMode:m}=lt(),[b,P]=f.exports.useState(!1),H=()=>{P(v=>!v)},E=Be({defaultValues:Lt(),resolver:ct(da)});f.exports.useEffect(()=>I.subscribe(v=>v.inbounds,()=>{E.reset(Lt())}),[]);const[A]=$r({control:E.control,name:["data_limit"]}),V=S("userDialog.total"),[Z,D]=f.exports.useState(_t(m,V)),[F,Q]=f.exports.useState("1m"),L=v=>{a(t,v).then($=>{const ge=[],fe=[];for(const ce in $.usages)fe.push($.usages[ce].used_traffic),ge.push($.usages[ce].node_name);D(_t(m,V,fe,ge))})};f.exports.useEffect(()=>{t&&(E.reset(ha(t)),L({start:j().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")}))},[t]);const q=v=>{c(!0);const $={edited:s,created:l},ge=p?"edited":"created";_(null);const{selected_proxies:fe,...ce}=v;let be={...ce,data_limit:v.data_limit,proxies:ua(fe,v.proxies),data_limit_reset_strategy:v.data_limit&&v.data_limit>0?v.data_limit_reset_strategy:"no_reset",status:v.status==="active"||v.status==="disabled"?v.status:"active"};$[ge](be).then(()=>{g({title:S(p?"userDialog.userEdited":"userDialog.userCreated",{username:v.username}),status:"success",isClosable:!0,position:"top",duration:3e3}),K()}).catch(G=>{var qe,Xe,Je,Ke,et;(((qe=G==null?void 0:G.response)==null?void 0:qe.status)===409||((Xe=G==null?void 0:G.response)==null?void 0:Xe.status)===400)&&_((Ke=(Je=G==null?void 0:G.response)==null?void 0:Je._data)==null?void 0:Ke.detail),((et=G==null?void 0:G.response)==null?void 0:et.status)===422&&Object.keys(G.response._data.detail).forEach(Fe=>{_(G==null?void 0:G.response._data.detail[Fe]),E.setError(Fe,{type:"custom",message:G.response._data.detail[Fe]})})}).finally(()=>{c(!1)})},K=()=>{E.reset(Lt()),o(!1),i(null),_(null),P(!1),Q("1m")},mt=()=>{I.setState({resetUsageUser:t})},gt=()=>{I.setState({revokeSubscriptionUser:t})},me=d;return r(re,{isOpen:y,onClose:K,size:"2xl",children:[e(ne,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),e(Ar,{...E,children:e(oe,{mx:"3",children:r("form",{onSubmit:E.handleSubmit(q),children:[e(se,{pt:6,children:r(k,{gap:2,children:[e(le,{color:"primary",children:p?e(la,{color:"white"}):e(ia,{color:"white"})}),e(h,{fontWeight:"semibold",fontSize:"lg",children:S(p?"userDialog.editUserTitle":"createNewUser")})]})}),e(ae,{mt:3,disabled:me}),r(ie,{children:[r(Dr,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)"},gap:3,children:[e(rt,{children:r(M,{justifyContent:"space-between",children:[r(io,{flexDirection:"column",gridAutoRows:"min-content",w:"full",children:[r(R,{mb:"10px",children:[e(B,{children:S("username")}),r(k,{children:[e(Ae,{size:"sm",type:"text",borderRadius:"6px",error:(Ve=E.formState.errors.username)==null?void 0:Ve.message,disabled:me||p,...E.register("username")}),p&&e(k,{px:1,children:e(De,{name:"status",control:E.control,render:({field:v})=>e(te,{placement:"top",label:"status: "+v.value,textTransform:"capitalize",children:e(z,{children:e(Bt,{colorScheme:"primary",disabled:v.value!=="active"&&v.value!=="disabled",isChecked:v.value==="active",onChange:$=>{$.target.checked?v.onChange("active"):v.onChange("disabled")}})})})})})]})]}),r(R,{mb:"10px",children:[e(B,{children:S("userDialog.dataLimit")}),e(De,{control:E.control,name:"data_limit",render:({field:v})=>{var $;return e(Ae,{endAdornment:"GB",type:"number",size:"sm",borderRadius:"6px",onChange:v.onChange,disabled:me,error:($=E.formState.errors.data_limit)==null?void 0:$.message,value:v.value?String(v.value):""})}})]}),e(Fr,{in:!!(A&&A>0),animateOpacity:!0,style:{width:"100%"},children:r(R,{height:"66px",children:[e(B,{children:S("userDialog.periodicUsageReset")}),e(De,{control:E.control,name:"data_limit_reset_strategy",render:({field:v})=>e(Me,{size:"sm",...v,children:Pt.map($=>e("option",{value:$.value,children:S("userDialog.resetStrategy"+$.title)},$.value))})})]})}),r(R,{mb:"10px",children:[e(B,{children:S("userDialog.expiryDate")}),e(De,{name:"expire",control:E.control,render:({field:v})=>{var ce;function $(be){return j(j(be*1e3).utc()).toDate()}const{status:ge,time:fe}=Qt(v.value);return r(ye,{children:[e(Wr,{locale:T.language.toLocaleLowerCase(),dateFormat:S("dateFormat"),minDate:new Date,selected:v.value?$(v.value):void 0,onChange:be=>{v.onChange({target:{value:be?j(j(be).set("hour",23).set("minute",59).set("second",59)).utc().valueOf()/1e3:0,name:"expire"}})},customInput:e(Ae,{size:"sm",type:"text",borderRadius:"6px",clearable:!0,disabled:me,error:(ce=E.formState.errors.expire)==null?void 0:ce.message})}),v.value?e(lo,{children:S(ge,{time:fe})}):""]})}})]}),r(R,{mb:"10px",isInvalid:!!E.formState.errors.note,children:[e(B,{children:S("userDialog.note")}),e(co,{...E.register("note")}),e(Ct,{children:(Ye=(Ge=E.formState.errors)==null?void 0:Ge.note)==null?void 0:Ye.message})]})]}),C&&r(at,{status:"error",display:{base:"none",md:"flex"},children:[e(wt,{}),C]})]})}),e(rt,{children:r(R,{isInvalid:!!((Ze=E.formState.errors.selected_proxies)!=null&&Ze.message),children:[e(B,{children:S("userDialog.protocols")}),e(De,{control:E.control,name:"selected_proxies",render:({field:v})=>e(aa,{list:[{title:"vmess",description:S("userDialog.vmessDesc")},{title:"vless",description:S("userDialog.vlessDesc")},{title:"trojan",description:S("userDialog.trojanDesc")},{title:"shadowsocks",description:S("userDialog.shadowsocksDesc")}],disabled:me,...v})}),e(Ct,{children:S((Qe=E.formState.errors.selected_proxies)==null?void 0:Qe.message)})]})}),p&&b&&e(rt,{pt:6,colSpan:{base:1,md:2},children:r(M,{gap:4,children:[e(rn,{defaultValue:F,onChange:(v,$)=>{Q(v),L($)}}),e(z,{width:{base:"100%",md:"70%"},justifySelf:"center",children:e(Or,{options:Z.options,series:Z.series,type:"donut"})})]})})]}),C&&r(at,{mt:"3",status:"error",display:{base:"flex",md:"none"},children:[e(wt,{}),C]})]}),e(Ue,{mt:"3",children:r(k,{justifyContent:"space-between",w:"full",gap:3,flexDirection:{base:"column",sm:"row"},children:[e(k,{justifyContent:"flex-start",w:{base:"full",sm:"unset"},children:p&&r(ye,{children:[e(te,{label:S("delete"),placement:"top",children:e(Y,{"aria-label":"Delete",size:"sm",onClick:()=>{u(t),K()},children:e(ht,{})})}),e(te,{label:S("userDialog.usage"),placement:"top",children:e(Y,{"aria-label":"usage",size:"sm",onClick:H,children:e(ca,{})})}),e(N,{onClick:mt,size:"sm",children:S("userDialog.resetUsage")}),e(N,{onClick:gt,size:"sm",children:S("userDialog.revokeSubscription")})]})}),e(k,{w:"full",maxW:{md:"50%",base:"full"},justify:"end",children:e(N,{type:"submit",size:"sm",px:"8",colorScheme:"primary",leftIcon:d?e(Ne,{size:"xs"}):void 0,disabled:me,children:S(p?"userDialog.editUser":"createUser")})})]})})]})})})]})},ma=t=>f.exports.createElement("svg",{xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:782.04441,height:701.88002,viewBox:"0 0 782.04441 701.88002",xmlnsXlink:"http://www.w3.org/1999/xlink",...t},f.exports.createElement("path",{d:"M609.48783,100.59015l-25.44631,6.56209L270.53735,187.9987,245.091,194.56079A48.17927,48.17927,0,0,0,210.508,253.17865L320.849,681.05606a48.17924,48.17924,0,0,0,58.61776,34.58317l.06572-.01695,364.26536-93.93675.06572-.01695a48.17923,48.17923,0,0,0,34.58309-58.6178l-110.341-427.87741A48.17928,48.17928,0,0,0,609.48783,100.59015Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M612.94784,114.00532l-30.13945,7.77236L278.68955,200.20385l-30.139,7.77223a34.30949,34.30949,0,0,0-24.6275,41.74308l110.341,427.87741a34.30946,34.30946,0,0,0,41.7431,24.62736l.06572-.01695,364.26536-93.93674.06619-.01707a34.30935,34.30935,0,0,0,24.627-41.7429l-110.341-427.87741A34.30938,34.30938,0,0,0,612.94784,114.00532Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),f.exports.createElement("path",{d:"M590.19,252.56327,405.917,300.08359a8.01411,8.01411,0,0,1-4.00241-15.52046l184.273-47.52033A8.01412,8.01412,0,0,1,590.19,252.56327Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M628.955,270.49906,412.671,326.27437a8.01411,8.01411,0,1,1-4.00241-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M620.45825,369.93676l-184.273,47.52032a8.01411,8.01411,0,1,1-4.00242-15.52046l184.273-47.52032a8.01411,8.01411,0,1,1,4.00241,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M659.22329,387.87255l-216.284,55.77531a8.01411,8.01411,0,1,1-4.00242-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M650.72653,487.31025l-184.273,47.52033a8.01412,8.01412,0,0,1-4.00242-15.52047l184.273-47.52032a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M689.49156,505.246l-216.284,55.77532a8.01412,8.01412,0,1,1-4.00241-15.52047l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),f.exports.createElement("path",{d:"M374.45884,348.80871l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76146L289.5963,304.81607a3.847,3.847,0,0,1,2.76145-4.68061l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76145l14.96947,58.04817A3.847,3.847,0,0,1,374.45884,348.80871Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M404.72712,466.1822l-65.21247,16.817a3.847,3.847,0,0,1-4.68062-2.76146l-14.96946-58.04816A3.847,3.847,0,0,1,322.626,417.509l65.21246-16.817a3.847,3.847,0,0,1,4.68062,2.76145l14.96946,58.04817A3.847,3.847,0,0,1,404.72712,466.1822Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M434.99539,583.55569l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76145l-14.96946-58.04817a3.847,3.847,0,0,1,2.76145-4.68062l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76146l14.96947,58.04816A3.847,3.847,0,0,1,434.99539,583.55569Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M863.63647,209.0517H487.31811a48.17928,48.17928,0,0,0-48.125,48.12512V699.05261a48.17924,48.17924,0,0,0,48.125,48.12507H863.63647a48.17924,48.17924,0,0,0,48.125-48.12507V257.17682A48.17928,48.17928,0,0,0,863.63647,209.0517Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M863.637,222.90589H487.31811a34.30948,34.30948,0,0,0-34.271,34.27093V699.05261a34.30947,34.30947,0,0,0,34.271,34.27088H863.637a34.30936,34.30936,0,0,0,34.27051-34.27088V257.17682A34.30937,34.30937,0,0,0,863.637,222.90589Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),f.exports.createElement("circle",{cx:694.19401,cy:614.02963,r:87.85039,fill:"#3182CE"}),f.exports.createElement("path",{d:"M945.18722,701.63087H914.63056V671.07421a11.45875,11.45875,0,0,0-22.9175,0v30.55666H861.1564a11.45875,11.45875,0,0,0,0,22.9175h30.55666V755.105a11.45875,11.45875,0,1,0,22.9175,0V724.54837h30.55666a11.45875,11.45875,0,0,0,0-22.9175Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),f.exports.createElement("path",{d:"M807.00068,465.71551H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01412,8.01412,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M840.05889,492.76314H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01411,8.01411,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M807.00068,586.929H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M840.05889,613.97661H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01412,8.01412,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M574.07028,505.04162H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V441.25158a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,505.04162Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M574.07028,626.25509H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V562.46505a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,626.25509Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),f.exports.createElement("path",{d:"M807.21185,330.781H666.91017a8.01411,8.01411,0,0,1,0-16.02823H807.21185a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),f.exports.createElement("path",{d:"M840.27007,357.82862H666.91017a8.01411,8.01411,0,1,1,0-16.02822h173.3599a8.01411,8.01411,0,0,1,0,16.02822Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),f.exports.createElement("path",{d:"M635.85911,390.6071H506.51316a3.847,3.847,0,0,1-3.84277-3.84277V285.81706a3.847,3.847,0,0,1,3.84277-3.84277H635.85911a3.847,3.847,0,0,1,3.84277,3.84277V386.76433A3.847,3.847,0,0,1,635.85911,390.6071Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"})),ga=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},fr=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=ga(t);if(typeof t>"u"||t===null)return e("div",{className:"circle pulse orange"});const s=o?n-o:1/0;return s>0&&s<=60?e("div",{className:"circle pulse green"}):e("div",{className:"circle pulse red"})},fa=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},br=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=fa(t),s=o?n-o:null,a=o?Qt(o):{status:"",time:"Not Connected Yet"};return e(h,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:s&&s<=60?"Online":s?`${a.time} ago`:a.time})},ba=x(ho,{baseStyle:{w:4,h:4}}),xa=x(uo,{baseStyle:{w:4,h:4}}),xr=5;function ya(t,n,o){if(o0&&(a[0]=0,a[1]="prev-more"),a[a.length-1]{const{filters:t,onFilterChange:n,users:{total:o}}=I(),{limit:s,offset:a}=t,i=(a||0)/(s||1),l=Math.ceil(o/(s||1)),u=ya(l,i,7),p=c=>{n({...t,offset:c*s})},y=c=>{n({...t,limit:parseInt(c.target.value)}),$o(c.target.value)},{t:d}=O();return r(k,{justifyContent:"space-between",mt:4,w:"full",display:"flex",columnGap:{lg:4,md:0},rowGap:{md:0,base:4},flexDirection:{md:"row",base:"column"},children:[e(z,{order:{base:2,md:1},children:r(k,{children:[r(Me,{minW:"60px",value:s,onChange:y,size:"sm",rounded:"md",children:[e("option",{children:"10"}),e("option",{children:"20"}),e("option",{children:"30"})]}),e(h,{whiteSpace:"nowrap",fontSize:"sm",children:d("itemsPerPage")})]})}),r(po,{size:"sm",isAttached:!0,variant:"outline",order:{base:1,md:2},children:[e(N,{leftIcon:e(ba,{}),onClick:p.bind(null,i-1),isDisabled:i===0||l===0,children:d("previous")}),u.map(c=>typeof c=="string"?e(N,{children:"..."},c):e(N,{variant:c===i?"solid":"outline",onClick:p.bind(null,c),children:c+1},c)),e(N,{rightIcon:e(xa,{}),onClick:p.bind(null,i+1),isDisabled:i+1===l||l===0,children:d("next")})]})]})},Ca=x(ma),$e={baseStyle:{w:{base:4,md:5},h:{base:4,md:5}}},wa=x(mo,$e),ka=x(Gr,$e),yr=x(go,$e),_a=x(jt,$e),va=x(jr,$e),Ia=x(Vr,$e),za=x(Gr,{baseStyle:{width:"15px",height:"15px"}}),Da=t=>{for(var n=0;n{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a}=t,i=o===0||o===null;return e(k,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:r(h,{children:[ee(n)," /"," ",i?e(h,{as:"span",fontFamily:"system-ui",children:"\u221E"}):ee(o)]})})},Sr=t=>{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a,...i}=t,l=o===0||o===null,u=!l&&n/o*100>=100;return r(ye,{children:[e(fo,{orientation:"horizontal",value:l?100:Math.min(n/o*100,100),colorScheme:u?"red":"primary",...i,children:e(bo,{h:"6px",borderRadius:"full",children:e(xo,{borderRadius:"full"})})}),r(k,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:[r(h,{children:[ee(n)," /"," ",l?e(h,{as:"span",fontFamily:"system-ui",children:"\u221E"}):ee(o)+(s&&s!=="no_reset"?" "+X("userDialog.resetStrategy"+Da(s)):"")]}),r(h,{children:[X("usersTable.total"),": ",ee(a)]})]})]})},bt=({sort:t,column:n})=>t.includes(n)?e(za,{transform:t.startsWith("-")?void 0:"rotate(180deg)"}):null,Ua=t=>{const{filters:n,users:{users:o},users:s,onEditingUser:a,onFilterChange:i}=I(),{t:l}=O(),[u,p]=f.exports.useState(void 0),y=Te({base:120,lg:72})||72,[d,c]=f.exports.useState(`${y}px`),C=Te({base:!1,md:!0});f.exports.useEffect(()=>{const m=()=>{const b=document.querySelectorAll("#filters")[0];c(`${b.offsetHeight}px`)};window.addEventListener("scroll",m)},[]);const _=o.length!==s.total,g=m=>{let b=n.sort;b.includes(m)?b.startsWith("-")?b="-created_at":b="-"+m:b=m,i({sort:b})},S=m=>{i({status:m.target.value.length>0?m.target.value:void 0})},T=m=>{p(m===u?void 0:m)};return r(z,{id:"users-table",overflowX:{base:"unset",md:"unset"},children:[e(dt,{allowMultiple:!0,display:{base:"block",md:"none"},index:u,children:r(nr,{orientation:"vertical",zIndex:"docked",...t,children:[e(or,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(Ie,{position:"sticky",top:d,minW:"120px",pl:4,pr:4,cursor:"pointer",onClick:g.bind(null,"username"),children:r(k,{children:[e("span",{children:l("users")}),e(bt,{sort:n.sort,column:"username"})]})}),e(Ie,{position:"sticky",top:d,minW:"50px",pl:0,pr:0,w:"140px",cursor:"pointer",children:r(k,{spacing:0,position:"relative",children:[r(h,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Me,{value:n.sort,fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ye,{}),_focusVisible:{border:"0 !important"},onChange:S,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(Ie,{position:"sticky",top:d,minW:"100px",cursor:"pointer",pr:0,onClick:g.bind(null,"used_traffic"),children:r(k,{children:[e("span",{children:l("usersTable.dataUsage")}),e(bt,{sort:n.sort,column:"used_traffic"})]})}),e(Ie,{position:"sticky",top:d,minW:"32px",w:"32px",p:0,cursor:"pointer"})]})}),e(sr,{children:!C&&(o==null?void 0:o.map((m,b)=>r(f.exports.Fragment,{children:[r(Pe,{onClick:T.bind(null,b),cursor:"pointer",children:[e(de,{borderBottom:0,minW:"100px",pl:4,pr:4,maxW:"calc(100vw - 50px - 32px - 100px - 48px)",children:r("div",{className:"flex-status",children:[e(fr,{lastOnline:m.online_at}),e(h,{isTruncated:!0,children:m.username})]})}),e(de,{borderBottom:0,minW:"50px",pl:0,pr:0,children:e(xt,{compact:!0,showDetail:!1,expiryDate:m.expire,status:m.status})}),e(de,{borderBottom:0,minW:"100px",pr:0,children:e(Ea,{totalUsedTraffic:m.lifetime_used_traffic,dataLimitResetStrategy:m.data_limit_reset_strategy,used:m.used_traffic,total:m.data_limit,colorScheme:ot[m.status].bandWidthColor})}),e(de,{p:0,borderBottom:0,w:"32px",minW:"32px",children:e(ka,{color:"gray.600",_dark:{color:"gray.400"},transition:"transform .2s ease-out",transform:u===b?"rotate(180deg)":"0deg"})})]}),e(Pe,{className:"collapsible",onClick:T.bind(null,b),children:e(de,{p:0,colSpan:4,children:r(Oe,{border:0,children:[e(je,{display:"none"}),e(He,{border:0,cursor:"pointer",px:6,py:3,children:r(M,{justifyContent:"space-between",spacing:"4",children:[r(M,{alignItems:"flex-start",w:"full",spacing:-1,children:[e(h,{textTransform:"capitalize",fontSize:"xs",fontWeight:"bold",color:"gray.600",_dark:{color:"gray.400"},children:l("usersTable.dataUsage")}),e(z,{width:"full",minW:"230px",children:e(Sr,{totalUsedTraffic:m.lifetime_used_traffic,dataLimitResetStrategy:m.data_limit_reset_strategy,used:m.used_traffic,total:m.data_limit,colorScheme:ot[m.status].bandWidthColor})})]}),r(k,{w:"full",justifyContent:"space-between",children:[r(z,{width:"full",children:[e(xt,{compact:!0,expiryDate:m.expire,status:m.status}),e(br,{lastOnline:m.online_at})]}),r(k,{children:[e(Cr,{user:m}),e(te,{label:l("userDialog.editUser"),placement:"top",children:e(Y,{p:"0 !important","aria-label":"Edit user",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:P=>{P.stopPropagation(),a(m)},children:e(Ia,{})})})]})]})]})})]})})})]},m.username)))})]})}),r(nr,{orientation:"vertical",display:{base:"none",md:"table"},...t,children:[e(or,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(Ie,{position:"sticky",top:{base:"unset",md:d},minW:"140px",cursor:"pointer",onClick:g.bind(null,"username"),children:r(k,{children:[e("span",{children:l("username")}),e(bt,{sort:n.sort,column:"username"})]})}),e(Ie,{position:"sticky",top:{base:"unset",md:d},width:"400px",minW:"150px",cursor:"pointer",children:r(k,{spacing:0,position:"relative",children:[r(h,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Me,{fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ye,{}),_focusVisible:{border:"0 !important"},value:n.sort,onChange:S,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(Ie,{position:"sticky",top:{base:"unset",md:d},width:"350px",minW:"230px",cursor:"pointer",onClick:g.bind(null,"used_traffic"),children:r(k,{children:[e("span",{children:l("usersTable.dataUsage")}),e(bt,{sort:n.sort,column:"used_traffic"})]})}),e(Ie,{position:"sticky",top:{base:"unset",md:d},width:"200px",minW:"180px"})]})}),r(sr,{children:[C&&(o==null?void 0:o.map((m,b)=>r(Pe,{className:Dt("interactive",{"last-row":b===o.length-1}),onClick:()=>a(m),children:[e(de,{minW:"140px",children:r("div",{className:"flex-status",children:[e(fr,{lastOnline:m.online_at}),m.username,e(br,{lastOnline:m.online_at})]})}),e(de,{width:"400px",minW:"150px",children:e(xt,{expiryDate:m.expire,status:m.status})}),e(de,{width:"350px",minW:"230px",children:e(Sr,{totalUsedTraffic:m.lifetime_used_traffic,dataLimitResetStrategy:m.data_limit_reset_strategy,used:m.used_traffic,total:m.data_limit,colorScheme:ot[m.status].bandWidthColor})}),e(de,{width:"200px",minW:"180px",children:e(Cr,{user:m})})]},m.username))),o.length==0&&e(Pe,{children:e(de,{colSpan:4,children:e(Ra,{isFiltered:_})})})]})]}),e(Sa,{})]})},Cr=({user:t})=>{const{setQRCode:n,setSubLink:o}=I(),s=t.links.join(`\r -`),[a,i]=f.exports.useState([-1,!1]);return f.exports.useEffect(()=>{a[1]&&setTimeout(()=>{i([-1,!1])},1e3)},[a]),r(k,{justifyContent:"flex-end",onClick:l=>{l.preventDefault(),l.stopPropagation()},children:[e(ar,{text:t.subscription_url.startsWith("/")?window.location.origin+t.subscription_url:t.subscription_url,onCopy:()=>{i([0,!0])},children:e("div",{children:e(te,{label:a[0]==0&&a[1]?X("usersTable.copied"):X("usersTable.copyLink"),placement:"top",children:e(Y,{p:"0 !important","aria-label":"copy subscription link",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==0&&a[1]?e(yr,{}):e(_a,{})})})})}),e(ar,{text:s,onCopy:()=>{i([1,!0])},children:e("div",{children:e(te,{label:a[0]==1&&a[1]?X("usersTable.copied"):X("usersTable.copyConfigs"),placement:"top",children:e(Y,{p:"0 !important","aria-label":"copy configs",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==1&&a[1]?e(yr,{}):e(wa,{})})})})}),e(te,{label:"QR Code",placement:"top",children:e(Y,{p:"0 !important","aria-label":"qr code",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:()=>{n(t.links),o(t.subscription_url)},children:e(va,{})})})]})},Ra=({isFiltered:t})=>{const{onCreateUser:n}=I();return r(z,{padding:"5",py:"8",display:"flex",alignItems:"center",flexDirection:"column",gap:4,w:"full",children:[e(Ca,{maxHeight:"200px",maxWidth:"200px",_dark:{'path[fill="#fff"]':{fill:"gray.800"},'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.700"},'circle[fill="#3182CE"]':{fill:"primary.300"}},_light:{'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.300"},'circle[fill="#3182CE"]':{fill:"primary.500"}}}),e(h,{fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:t?X("usersTable.noUserMatched"):X("usersTable.noUser")}),!t&&e(N,{size:"sm",colorScheme:"primary",onClick:()=>n(!0),children:X("createUser")})]})},La=()=>(f.exports.useEffect(()=>{I.getState().refetchUsers(),Go()},[]),r(M,{justifyContent:"space-between",minH:"100vh",p:"6",rowGap:4,children:[r(z,{w:"full",children:[e(Cs,{}),e(Ho,{mt:"4"}),e(as,{}),e(Ua,{}),e(pa,{}),e(rs,{}),e(qs,{}),e(Ls,{}),e(ea,{}),e(ra,{}),e(Hs,{}),e(Gs,{}),e(Js,{}),e(ts,{})]}),e(Xr,{})]})),Ta=t=>f.exports.createElement("svg",{viewBox:"0 0 747 747",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},f.exports.createElement("path",{d:"M746.671 209.652V77.6572C746.671 72.9384 743.827 68.6832 739.468 66.8811C735.108 65.0738 730.093 66.0739 726.754 69.4072L579.354 216.807C577.453 202.386 570.203 189.203 559.037 179.87C547.875 170.542 533.615 165.744 519.083 166.432C504.551 167.12 490.807 173.24 480.573 183.583L414.375 249.776C412.417 235.391 405.141 222.25 393.985 212.959C382.823 203.662 368.594 198.88 354.083 199.552C339.578 200.224 325.849 206.302 315.594 216.588L274.343 257.828L19.9167 3.41515C16.5781 0.0818157 11.5625 -0.918184 7.20306 0.889149C2.84373 2.69648 0 6.94648 0 11.6651V143.649C0 146.743 1.22917 149.712 3.41667 151.899L191.843 340.339L3.41667 528.753C1.2292 530.94 0 533.909 0 537.003V668.997C0 673.716 2.84373 677.971 7.20306 679.773C11.5624 681.581 16.578 680.58 19.9167 677.247L167.317 529.847C169.285 544.233 176.561 557.358 187.718 566.65C198.869 575.947 213.098 580.728 227.603 580.066C242.103 579.404 255.838 573.342 266.098 563.071L332.295 496.874V496.879C334.259 511.264 341.535 524.395 352.691 533.686C363.853 542.977 378.082 547.759 392.587 547.092C407.093 546.421 420.822 540.348 431.077 530.066L472.327 488.826L726.754 743.239C728.941 745.427 731.91 746.656 735.004 746.656C736.535 746.661 738.056 746.359 739.473 745.77C743.832 743.963 746.671 739.708 746.671 734.989V602.994C746.671 599.901 745.442 596.932 743.254 594.744L554.827 406.318L743.254 217.904H743.259C745.447 215.717 746.676 212.748 746.676 209.654L746.671 209.652ZM23.3373 39.8118L257.844 274.318L208.328 323.818L23.3413 138.818L23.3373 39.8118ZM723.337 706.825L488.831 472.318L538.347 422.818L723.333 607.818L723.337 706.825ZM23.3373 541.825L332.097 233.078C338.764 226.719 347.624 223.172 356.843 223.172C366.056 223.172 374.916 226.719 381.588 233.078C388.151 239.641 391.838 248.548 391.838 257.828C391.838 267.114 388.151 276.016 381.588 282.577L23.3347 640.831L23.3373 541.825ZM249.604 546.575C240.755 555.419 227.864 558.872 215.781 555.638C203.703 552.398 194.265 542.961 191.027 530.883C187.792 518.8 191.245 505.91 200.089 497.06L497.076 200.074C505.92 191.23 518.811 187.772 530.893 191.011C542.971 194.246 552.409 203.678 555.648 215.76C558.888 227.839 555.434 240.73 546.591 249.572L249.604 546.575ZM723.337 204.815L414.577 513.562C407.911 519.926 399.051 523.473 389.832 523.473C380.618 523.473 371.753 519.926 365.087 513.562C358.529 506.999 354.842 498.098 354.842 488.816C354.842 479.535 358.529 470.634 365.087 464.071L723.34 105.818L723.337 204.815Z",fill:"currentColor"})),Aa=w.object({username:w.string().min(1,"login.fieldRequired"),password:w.string().min(1,"login.fieldRequired")}),Ma=x(Ta,{baseStyle:{strokeWidth:"10px",w:12,h:12}}),Na=x(yo,{baseStyle:{w:5,h:5,strokeWidth:"2px"}}),wr=()=>{var c,C;const[t,n]=f.exports.useState(""),[o,s]=f.exports.useState(!1),a=So(),{t:i}=O();let l=Co();const{register:u,formState:{errors:p},handleSubmit:y}=Be({resolver:ct(Aa)});f.exports.useEffect(()=>{Mo(),l.pathname!=="/login"&&a("/login",{replace:!0})},[]);const d=_=>{n("");const g=new FormData;g.append("username",_.username),g.append("password",_.password),g.append("grant_type","password"),s(!0),W("/admin/token",{method:"post",body:g}).then(({access_token:S})=>{Ao(S),a("/")}).catch(S=>{n(S.response._data.detail)}).finally(s.bind(null,!1))};return r(M,{justifyContent:"space-between",minH:"100vh",p:"6",w:"full",children:[r(z,{w:"full",children:[e(k,{justifyContent:"end",w:"full",children:e(Jr,{})}),e(k,{w:"full",justifyContent:"center",alignItems:"center",children:r(z,{w:"full",maxW:"340px",mt:"6",children:[r(M,{alignItems:"center",w:"full",children:[e(Ma,{}),e(h,{fontSize:"2xl",fontWeight:"semibold",children:i("login.loginYourAccount")}),e(h,{color:"gray.600",_dark:{color:"gray.400"},children:i("login.welcomeBack")})]}),e(z,{w:"full",maxW:"300px",m:"auto",pt:"4",children:e("form",{onSubmit:y(d),children:r(M,{mt:4,rowGap:2,children:[e(R,{children:e(Ae,{w:"full",placeholder:i("username"),...u("username"),error:i((c=p==null?void 0:p.username)==null?void 0:c.message)})}),e(R,{children:e(Ae,{w:"full",type:"password",placeholder:i("password"),...u("password"),error:i((C=p==null?void 0:p.password)==null?void 0:C.message)})}),t&&r(at,{status:"error",rounded:"md",children:[e(wt,{}),e(Nr,{children:t})]}),r(N,{isLoading:o,type:"submit",w:"full",colorScheme:"primary",children:[e(Na,{marginRight:1}),i("login")]})]})})})]})})]}),e(Xr,{})]})},Fa=()=>W("/admin",{headers:{Authorization:`Bearer ${kt()}`}}),Pa=wo([{path:"/",element:e(La,{}),errorElement:e(wr,{}),loader:Fa},{path:"/login/",element:e(wr,{})}],{basename:"/dashboard/"});function Wa(){return e("main",{className:"p-8",children:e(ko,{router:Pa})})}j.extend(_o);j.extend(vo);j.extend(Io);j.extend(zo);j.extend(Do);Yr(Eo.get()||"light");Uo.createRoot(document.getElementById("root")).render(e(At.StrictMode,{children:e(Ro,{theme:To,children:e(Lo,{client:Nt,children:e(Wa,{})})})})); diff --git a/app/dashboard/build/assets/index.8ee3e03d.js b/app/dashboard/build/assets/index.8ee3e03d.js new file mode 100644 index 00000000..ca937fa2 --- /dev/null +++ b/app/dashboard/build/assets/index.8ee3e03d.js @@ -0,0 +1,14 @@ +import{i as Nt,B as an,a as ln,b as cn,j as Ir,d as B,U as Ht,z as dn,r as un,f as hn,Q as pn,e as mn,$ as gn,c as zt,g as x,h as fn,C as bn,k as Dt,u as Bt,l as j,m as r,H as _,n as e,T as u,o as xn,p as D,s as yn,q as m,t as ct,J as Sn,v as zr,A as Et,w as Cn,x as wn,M as ne,y as oe,D as se,E as ae,F as ie,G as fe,I as Be,K as Dr,L as _n,N as at,O as le,P as R,R as H,S as Er,V as re,W as U,X as pe,Y as Z,Z as Le,_ as F,a0 as Ut,a1 as tt,a2 as kn,a3 as Ue,a4 as Fe,a5 as vn,a6 as Ur,a7 as Rr,a8 as nt,a9 as St,aa as In,ab as We,ac as Ct,ad as Kt,ae as zn,af as Lr,ag as Tr,ah as Ar,ai as me,aj as Dn,ak as En,al as Un,am as Rn,an as Ln,ao as $t,ap as Mr,aq as Nr,ar as ge,as as er,at as Tn,au as An,av as Mn,aw as Ft,ax as Nn,ay as Fn,az as Pn,aA as Wn,aB as On,aC as jn,aD as wt,aE as Hn,aF as Ne,aG as Bn,aH as C,aI as dt,aJ as Fr,aK as ut,aL as N,aM as Vt,aN as $n,aO as Oe,aP as je,aQ as Pt,aR as He,aS as we,aT as _e,aU as ke,aV as ve,aW as Ie,aX as ze,aY as tr,aZ as Vn,a_ as _t,a$ as ot,b0 as Gt,b1 as Gn,b2 as Yn,b3 as Zn,b4 as Pr,b5 as Qn,b6 as it,b7 as kt,b8 as Wr,b9 as qn,ba as Xn,bb as Or,bc as Me,bd as Jn,be as Kn,bf as eo,bg as Yt,bh as Lt,bi as rr,bj as jr,bk as to,bl as ro,bm as nr,bn as no,bo as or,bp as Hr,bq as oo,br as Br,bs as so,bt as ao,bu as $r,bv as io,bw as lo,bx as Vr,by as Gr,bz as Yr,bA as J,bB as co,bC as Zr,bD as sr,bE as uo,bF as ho,bG as po,bH as mo,bI as go,bJ as fo,bK as Qr,bL as bo,bM as ar,bN as ir,bO as Pe,bP as De,bQ as lr,bR as he,bS as cr,bT as xo,bU as yo,bV as So,bW as Co,bX as wo,bY as _o,bZ as ko,b_ as vo,b$ as Io,c0 as zo,c1 as Do,c2 as Eo,c3 as Uo,c4 as Ro,c5 as Lo,c6 as To,c7 as Ao}from"./vendor.7a7a2a97.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function o(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerpolicy&&(i.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?i.credentials="include":a.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=o(a);fetch(a.href,i)}})();Nt.use(an).use(ln).use(cn).init({debug:{}.NODE_ENV==="development",returnNull:!1,fallbackLng:"en",interpolation:{escapeValue:!1},react:{useSuspense:!1},load:"languageOnly",detection:{caches:["localStorage","sessionStorage","cookie"]},backend:{loadPath:Ir(["/","locales/{{lng}}.json"])}},function(t,n){B.locale(Nt.language)});Nt.on("languageChanged",t=>{B.locale(t)});Ht("zh-cn",dn);Ht("ru",un);Ht("fa",hn);const Wt=new pn,qr=t=>{const n=document.querySelector('meta[name="theme-color"]');n==null||n.setAttribute("content",t=="dark"?"#1A202C":"#3B81F6")},Mo=mn({shadows:{outline:"0 0 0 2px var(--chakra-colors-primary-200)"},fonts:{body:"Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif"},colors:{"light-border":"#d2d2d4",primary:{50:"#9cb7f2",100:"#88a9ef",200:"#749aec",300:"#618ce9",400:"#4d7de7",500:"#396fe4",600:"#3364cd",700:"#2e59b6",800:"#284ea0",900:"#224389"},gray:{750:"#222C3B"}},components:{Alert:{baseStyle:{container:{borderRadius:"6px",fontSize:"sm"}}},Select:{baseStyle:{field:{_dark:{borderColor:"gray.600",borderRadius:"6px"},_light:{borderRadius:"6px"}}}},FormHelperText:{baseStyle:{fontSize:"xs"}},FormLabel:{baseStyle:{fontSize:"sm",fontWeight:"medium",mb:"1",_dark:{color:"gray.300"}}},Input:{baseStyle:{addon:{_dark:{borderColor:"gray.600",_placeholder:{color:"gray.500"}}},field:{_focusVisible:{boxShadow:"none",borderColor:"primary.200",outlineColor:"primary.200"},_dark:{borderColor:"gray.600",_disabled:{color:"gray.400",borderColor:"gray.500"},_placeholder:{color:"gray.500"}}}}},Table:{baseStyle:{table:{borderCollapse:"separate",borderSpacing:0},thead:{borderBottomColor:"light-border"},th:{background:"#F9FAFB",borderColor:"light-border !important",borderBottomColor:"light-border !important",borderTop:"1px solid ",borderTopColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border !important"},_last:{borderRight:"1px solid",borderColor:"light-border !important"},_dark:{borderColor:"gray.600 !important",background:"gray.750"}},td:{transition:"all .1s ease-out",borderColor:"light-border",borderBottomColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_last:{borderRight:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_dark:{borderColor:"gray.600",borderBottomColor:"gray.600 !important"}},tr:{"&.interactive":{cursor:"pointer",_hover:{"& > td":{bg:"gray.200"},_dark:{"& > td":{bg:"gray.750"}}}},_last:{"& > td":{_first:{borderBottomLeftRadius:"8px"},_last:{borderBottomRightRadius:"8px"}}}}}}}});const vt=()=>localStorage.getItem("token"),No=t=>{localStorage.setItem("token",t)},Fo=()=>{localStorage.removeItem("token")},Po=gn.create({baseURL:"https://sub.vnext.uno/api"}),Wo=(t,n={})=>(vt()&&(n.headers={...(n==null?void 0:n.headers)||{},Authorization:`Bearer ${vt()}`}),Po(t,n)),O=Wo,Oo=zt(t=>({isLoading:!0,isPostLoading:!1,version:null,started:!1,logs_websocket:null,config:"",fetchCoreSettings:()=>{t({isLoading:!0}),Promise.all([O("/core").then(({version:n,started:o,logs_websocket:s})=>t({version:n,started:o,logs_websocket:s})),O("/core/config").then(n=>t({config:n}))]).finally(()=>t({isLoading:!1}))},updateConfig:n=>(t({isPostLoading:!0}),O("/core/config",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})})),restartCore:()=>O("/core/restart",{method:"POST"})}));function te(t,n=2,o=!1){if(!+t)return"0 B";const s=1024,a=n<0?0:n,i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],l=Math.floor(Math.log(t)/Math.log(s));return o?[parseFloat((t/Math.pow(s,l)).toFixed(a)),i[l]]:`${parseFloat((t/Math.pow(s,l)).toFixed(a))} ${i[l]}`}const dr=t=>{if(t!==null)return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},jo=x(fn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Ho=x(bn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Bo=x(Dt,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Tt=({title:t,content:n,icon:o})=>r(xn,{p:6,borderWidth:"1px",borderColor:"light-border",bg:"#F9FAFB",_dark:{borderColor:"gray.600",bg:"gray.750"},borderStyle:"solid",boxShadow:"none",borderRadius:"12px",width:"full",display:"flex",justifyContent:"space-between",flexDirection:"row",children:[r(_,{alignItems:"center",columnGap:"4",children:[e(D,{p:"2",position:"relative",color:"white",_before:{content:'""',position:"absolute",top:0,left:0,bg:"primary.400",display:"block",w:"full",h:"full",borderRadius:"5px",opacity:".5",z:"1"},_after:{content:'""',position:"absolute",top:"-5px",left:"-5px",bg:"primary.400",display:"block",w:"calc(100% + 10px)",h:"calc(100% + 10px)",borderRadius:"8px",opacity:".4",z:"1"},children:o}),e(u,{color:"gray.600",_dark:{color:"gray.300"},fontWeight:"medium",textTransform:"capitalize",fontSize:"sm",children:t})]}),e(D,{fontSize:"3xl",fontWeight:"semibold",mt:"2",children:n})]}),Ot="statistics-query-key",$o=t=>{const{version:n}=E(),{data:o}=Bt({queryKey:Ot,queryFn:()=>O("/system"),refetchInterval:5e3,onSuccess:({version:a})=>{n!==a&&E.setState({version:a})}}),{t:s}=j();return r(_,{justifyContent:"space-between",gap:0,columnGap:{lg:4,md:0},rowGap:{lg:0,base:4},display:"flex",flexDirection:{lg:"row",base:"column"},...t,children:[e(Tt,{title:s("activeUsers"),content:o&&r(_,{alignItems:"flex-end",children:[e(u,{children:dr(o.users_active)}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:["/ ",dr(o.total_user)]})]}),icon:e(jo,{})}),e(Tt,{title:s("dataUsage"),content:o&&te(o.incoming_bandwidth+o.outgoing_bandwidth),icon:e(Ho,{})}),e(Tt,{title:s("memoryUsage"),content:o&&r(_,{alignItems:"flex-end",children:[e(u,{children:te(o.mem_used,1,!0)[0]}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:[te(o.mem_used,1,!0)[1]," /"," ",te(o.mem_total,1)]})]}),icon:e(Bo,{})})]})},Xr="marzban-num-users-per-page",ur=10,Vo=()=>{const t=localStorage.getItem(Xr)||ur.toString();return parseInt(t)||ur},Go=t=>localStorage.setItem(Xr,t),Yo=t=>{for(const n in t)t[n]||delete t[n];return E.setState({loading:!0}),O("/users",{query:t}).then(n=>(E.setState({users:n}),n)).finally(()=>{E.setState({loading:!1})})},Zo=()=>O("/inbounds").then(t=>{E.setState({inbounds:new Map(Object.entries(t))})}).finally(()=>{E.setState({loading:!1})}),E=zt(yn((t,n)=>({version:null,editingUser:null,deletingUser:null,isCreatingNewUser:!1,QRcodeLinks:null,subscribeUrl:null,users:{users:[],total:0},loading:!0,isResetingAllUsage:!1,isEditingHosts:!1,isEditingNodes:!1,isShowingNodesUsage:!1,resetUsageUser:null,revokeSubscriptionUser:null,filters:{username:"",limit:Vo(),sort:"-created_at"},inbounds:new Map,isEditingCore:!1,refetchUsers:()=>{Yo(n().filters)},resetAllUsage:()=>O("/users/reset",{method:"POST"}).then(()=>{n().onResetAllUsage(!1),n().refetchUsers()}),onResetAllUsage:o=>t({isResetingAllUsage:o}),onCreateUser:o=>t({isCreatingNewUser:o}),onEditingUser:o=>{t({editingUser:o})},onDeletingUser:o=>{t({deletingUser:o})},onFilterChange:o=>{t({filters:{...n().filters,...o}}),n().refetchUsers()},setQRCode:o=>{t({QRcodeLinks:o})},deleteUser:o=>(t({editingUser:null}),O(`/user/${o.username}`,{method:"DELETE"}).then(()=>{t({deletingUser:null}),n().refetchUsers(),Wt.invalidateQueries(Ot)})),createUser:o=>O("/user",{method:"POST",body:o}).then(()=>{t({editingUser:null}),n().refetchUsers(),Wt.invalidateQueries(Ot)}),editUser:o=>O(`/user/${o.username}`,{method:"PUT",body:o}).then(()=>{n().onEditingUser(null),n().refetchUsers()}),fetchUserUsage:(o,s)=>{for(const a in s)s[a]||delete s[a];return O(`/user/${o.username}/usage`,{method:"GET",query:s})},onEditingHosts:o=>{t({isEditingHosts:o})},onEditingNodes:o=>{t({isEditingNodes:o})},onShowingNodesUsage:o=>{t({isShowingNodesUsage:o})},setSubLink:o=>{t({subscribeUrl:o})},resetDataUsage:o=>O(`/user/${o.username}/reset`,{method:"POST"}).then(()=>{t({resetUsageUser:null}),n().refetchUsers()}),revokeSubscription:o=>O(`/user/${o.username}/revoke_sub`,{method:"POST"}).then(s=>{t({revokeSubscriptionUser:null,editingUser:s}),n().refetchUsers()})}))),ce=({children:t,color:n})=>e(D,{position:"relative",width:"36px",height:"36px",display:"flex",justifyContent:"center",alignItems:"center",_before:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100%)",height:"calc(100%)",bg:`${n}.400`,opacity:".5",borderRadius:"5px",zIndex:"1",_dark:{bg:`${n}.400`}},_after:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100% + 10px)",height:"calc(100% + 10px)",transform:"translate(-5px, -5px)",bg:`${n}.400`,opacity:".4",borderRadius:"8px",zIndex:"1",_dark:{bg:`${n}.400`}},children:e(u,{color:`${n}.500`,_dark:{color:`${n}.900`},position:"relative",zIndex:"2",children:t})});window.ace.define("ace/theme/nord_dark",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!0,n.cssClass="ace-nord-dark",t("../lib/dom").importCssString(n.cssText,n.cssClass)});window.ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!1,n.cssClass="ace-dawn",t("../lib/dom").importCssString(n.cssText,n.cssClass)});const Qo=m.exports.forwardRef(({json:t,onChange:n,mode:o="code"},s)=>{const{colorMode:a}=ct(),i={mode:o,onChangeText:n,statusBar:!1,mainMenuBar:!1,theme:a==="dark"?"ace/theme/nord_dark":"ace/theme/dawn"},l=m.exports.useRef(null),h=m.exports.useRef(null);return m.exports.useEffect(()=>(h.current=new Sn(l.current,i),()=>{h.current&&h.current.destroy()}),[]),m.exports.useEffect(()=>{h.current&&h.current.update(t)},[t]),e(D,{ref:s,border:"1px solid",borderColor:"gray.300",_dark:{borderColor:"gray.500"},borderRadius:5,h:"full",children:e(D,{height:"full",ref:l})})}),hr=500,qo=x(zr,{baseStyle:{w:5,h:5}}),Xo=x(Et,{baseStyle:{w:4,h:4}}),Jo=x(Cn,{baseStyle:{w:4,h:4}}),Ko=x(wn,{baseStyle:{w:3,h:3}}),es=t=>({[tt.ReadyState.CONNECTING]:"connecting",[tt.ReadyState.OPEN]:"connected",[tt.ReadyState.CLOSING]:"closed",[tt.ReadyState.CLOSED]:"closed",[tt.ReadyState.UNINSTANTIATED]:"closed"})[t],ts=()=>{try{let t=new URL("https://sub.vnext.uno/api".startsWith("/")?window.location.origin+"https://sub.vnext.uno/api":"https://sub.vnext.uno/api");return(t.protocol==="https:"?"wss://":"ws://")+Ir([t.host+t.pathname,"/core/logs"])+"?interval=1&token="+vt()}catch(t){return console.error("Unable to generate websocket url"),console.error(t),null}};let Te=[];const rs=()=>{const{isEditingCore:t}=E(),{fetchCoreSettings:n,updateConfig:o,isLoading:s,config:a,isPostLoading:i,version:l,restartCore:h}=Oo(),p=m.exports.useRef(null),[S,d]=m.exports.useState([]),{t:c}=j(),w=fe(),I=Be({defaultValues:{config:a||{}}});m.exports.useEffect(()=>{a&&I.setValue("config",a)},[a]),m.exports.useEffect(()=>{t&&n()},[t]);const f=m.exports.useRef(!0),y=m.exports.useCallback(Dr(L=>{var X,z,W;const V=Math.abs((((X=p.current)==null?void 0:X.scrollTop)||0)-(((z=p.current)==null?void 0:z.scrollHeight)||0)+(((W=p.current)==null?void 0:W.offsetHeight)||0))<10;p.current&&V?f.current=!0:f.current=!1,L.length<40&&d(L)},300),[]),{readyState:T}=_n(ts(),{onMessage:L=>{Te.push(L.data),Te.length>hr&&(Te=Te.splice(0,Te.length-hr)),y([...Te])},shouldReconnect:()=>!0,reconnectAttempts:10,reconnectInterval:1e3});m.exports.useEffect(()=>{var L;p.current&&f.current&&(p.current.scrollTop=(L=p.current)==null?void 0:L.scrollHeight)},[S]),m.exports.useEffect(()=>()=>{Te=[]},[]);const g=es(T.toString()),{mutate:b,isLoading:P}=at(h),$=({config:L})=>{o(L).then(()=>{w({title:c("core.successMessage"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(V=>{let X=c("core.generalErrorMessage");typeof V.response._data.detail=="object"&&(X=V.response._data.detail[Object.keys(V.response._data.detail)[0]]),typeof V.response._data.detail=="string"&&(X=V.response._data.detail),w({title:X,status:"error",isClosable:!0,position:"top",duration:3e3})})},v=m.exports.useRef(null),[A,G]=m.exports.useState(!1),q=()=>{var L;document.fullscreenElement?(document.exitFullscreen(),G(!1)):((L=v.current)==null||L.requestFullscreen(),G(!0))};return r("form",{onSubmit:I.handleSubmit($),children:[r(le,{children:[r(R,{children:[r(_,{justifyContent:"space-between",alignItems:"flex-start",children:[r(H,{children:[c("core.configuration")," ",s&&e(Er,{isIndeterminate:!0,size:"15px"})]}),e(_,{gap:0,children:e(re,{label:"Xray Version",placement:"top",children:e(U,{height:"100%",textTransform:"lowercase",children:l&&`v${l}`})})})]}),r(D,{position:"relative",ref:v,minHeight:"300px",children:[e(pe,{control:I.control,name:"config",render:({field:L})=>e(Qo,{json:a,onChange:L.onChange})}),e(Z,{size:"xs","aria-label":"full screen",variant:"ghost",position:"absolute",top:"2",right:"4",onClick:q,children:A?e(Ko,{}):e(Jo,{})})]})]}),r(R,{mt:"4",children:[r(_,{justifyContent:"space-between",children:[e(H,{children:c("core.logs")}),e(u,{as:H,children:c(`core.socket.${g}`)})]}),e(D,{border:"1px solid",borderColor:"gray.300",bg:"#F9F9F9",_dark:{borderColor:"gray.500",bg:"#2e3440"},borderRadius:5,minHeight:"200px",maxHeight:"250px",p:2,overflowY:"auto",ref:p,children:S.map((L,V)=>e(u,{fontSize:"xs",opacity:.8,whiteSpace:"pre-line",children:L},V))})]})]}),e(Le,{children:r(_,{w:"full",justifyContent:"space-between",children:[e(D,{children:e(F,{size:"sm",leftIcon:e(Xo,{className:Ut({"animate-spin":P})}),onClick:()=>b(),children:c(P?"core.restarting":"core.restartCore")})}),e(_,{children:e(F,{size:"sm",variant:"solid",colorScheme:"primary",px:"5",type:"submit",isDisabled:s||i,isLoading:i,children:c("core.save")})})]})})]})},ns=()=>{const{isEditingCore:t}=E(),n=E.setState.bind(null,{isEditingCore:!1}),{t:o}=j();return r(ne,{isOpen:t,onClose:n,size:"3xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"full",children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:e(qo,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:o("core.title")})]})}),e(ie,{mt:3}),e(rs,{})]})]})},ht=x(kn,{baseStyle:{w:5,h:5}}),os=()=>{const[t,n]=m.exports.useState(!1),{deletingUser:o,onDeletingUser:s,deleteUser:a}=E(),{t:i}=j(),l=fe(),h=()=>{s(null)},p=()=>{o&&(n(!0),a(o).then(()=>{l({title:i("deleteUser.deleteSuccess",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).then(h).finally(n.bind(null,!1)))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(ht,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("deleteUser.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:i("deleteUser.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:i("delete")})]})]})]})},Zt={baseStyle:{w:4,h:4}},ss=x(vn,Zt),as=x(Ur,Zt),Jr=x(Et,Zt),is=Dr(t=>{E.getState().onFilterChange({...E.getState().filters,offset:0,search:t})},300),ls=({...t})=>{const{loading:n,filters:o,onFilterChange:s,refetchUsers:a,onCreateUser:i}=E(),{t:l}=j(),[h,p]=m.exports.useState(""),S=c=>{p(c.target.value),is(c.target.value)},d=()=>{p(""),s({...o,offset:0,search:""})};return r(Rr,{id:"filters",templateColumns:{lg:"repeat(3, 1fr)",md:"repeat(4, 1fr)",base:"repeat(1, 1fr)"},position:"sticky",top:0,mx:"-6",px:"6",rowGap:4,gap:{lg:4,base:0},bg:"var(--chakra-colors-chakra-body-bg)",py:4,zIndex:"docked",...t,children:[e(nt,{colSpan:{base:1,md:2,lg:1},order:{base:2,md:1},children:r(St,{children:[e(In,{pointerEvents:"none",children:e(ss,{})}),e(We,{placeholder:l("search"),value:h,borderColor:"light-border",onChange:S}),r(Ct,{children:[n&&e(Fe,{size:"xs"}),o.search&&o.search.length>0&&e(Z,{onClick:d,"aria-label":"clear",size:"xs",variant:"ghost",children:e(as,{})})]})]})}),e(nt,{colSpan:2,order:{base:1,md:2},children:r(_,{justifyContent:"flex-end",alignItems:"center",h:"full",children:[e(Z,{"aria-label":"refresh users",disabled:n,onClick:a,size:"sm",variant:"outline",children:e(Jr,{className:Ut({"animate-spin":n})})}),e(F,{colorScheme:"primary",size:"sm",onClick:()=>i(!0),px:5,children:l("createUser")})]})})]})},Kr="https://github.com/Gozargah/Marzban",cs="https://github.com/Gozargah",ds="https://github.com/Gozargah/Marzban#donation",en=t=>{const{version:n}=E();return e(_,{w:"full",py:"0",position:"relative",...t,children:r(u,{display:"inline-block",flexGrow:1,textAlign:"center",color:"gray.500",fontSize:"xs",children:[e(Kt,{color:"blue.400",href:Kr,children:"Marzban"}),n?` (v${n}), `:", ","Made with \u2764\uFE0F in"," ",e(Kt,{color:"blue.400",href:cs,children:"Gozargah"})]})})},us=x(zn,{baseStyle:{w:4,h:4}}),tn=({actions:t})=>{const{i18n:n}=j();var o=s=>{n.changeLanguage(s)};return r(Lr,{placement:"bottom-end",children:[e(Tr,{as:Z,size:"sm",variant:"outline",icon:e(us,{}),position:"relative"}),r(Ar,{minW:"100px",zIndex:9999,children:[e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("en"),children:"English"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("fa"),children:"\u0641\u0627\u0631\u0633\u06CC"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("zh-cn"),children:"\u7B80\u4F53\u4E2D\u6587"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("ru"),children:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"})]})]})},be={baseStyle:{w:4,h:4}},hs=x(Dn,be),ps=x(En,be),ms=x(zr,be),gs=x(Un,be),fs=x(Rn,be),bs=x(Ln,be),xs=x($t,be),ys=x(Mr,be),Ss=x(Dt,be),Cs=x(Nr,be),pr=x(D,{baseStyle:{bg:"yellow.500",w:"2",h:"2",rounded:"full",position:"absolute"}}),rn="marzban-menu-notification",ws=()=>{const t=localStorage.getItem(rn);if(!t)return!0;try{return t&&An(parseInt(t))?Mn(new Date,new Date(parseInt(t)))>=7:!0}catch{return!0}},_s=({actions:t})=>{const{onEditingHosts:n,onResetAllUsage:o,onEditingNodes:s,onShowingNodesUsage:a}=E(),{t:i}=j(),{colorMode:l,toggleColorMode:h}=ct(),[p,S]=m.exports.useState(ws()),d=l==="dark"?"dark_dimmed":l,c=()=>{localStorage.setItem(rn,new Date().getTime().toString()),S(!1)};return r(_,{gap:2,justifyContent:"space-between",__css:{"& .menuList":{direction:"ltr"}},position:"relative",children:[e(u,{as:"h1",fontWeight:"semibold",fontSize:"2xl",children:i("users")}),p&&e(pr,{top:"0",right:"0",zIndex:9999}),e(D,{overflow:"auto",css:{direction:"rtl"},children:r(_,{alignItems:"center",children:[r(Lr,{children:[e(Tr,{as:Z,size:"sm",variant:"outline",icon:e(ge,{children:e(gs,{})}),position:"relative"}),r(Ar,{minW:"170px",zIndex:99999,className:"menuList",children:[e(me,{maxW:"170px",fontSize:"sm",icon:e(xs,{}),onClick:n.bind(null,!0),children:i("header.hostSettings")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(ys,{}),onClick:s.bind(null,!0),children:i("header.nodeSettings")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(Ss,{}),onClick:a.bind(null,!0),children:i("header.nodesUsage")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(Cs,{}),onClick:o.bind(null,!0),children:i("resetAllUsage")}),e(er,{to:ds,target:"_blank",children:r(me,{maxW:"170px",fontSize:"sm",icon:e(bs,{}),position:"relative",onClick:c,children:[i("header.donation")," ",p&&e(pr,{top:"3",right:"2"})]})}),e(er,{to:"/login",children:e(me,{maxW:"170px",fontSize:"sm",icon:e(fs,{}),children:i("header.logout")})})]})]}),e(Z,{size:"sm",variant:"outline","aria-label":"core settings",onClick:()=>{E.setState({isEditingCore:!0})},children:e(ms,{})}),e(tn,{}),e(Z,{size:"sm",variant:"outline","aria-label":"switch theme",onClick:()=>{qr(l=="dark"?"light":"dark"),h()},children:l==="light"?e(hs,{}):e(ps,{})}),e(D,{css:{direction:"ltr"},display:"flex",alignItems:"center",pr:"2",__css:{"& span":{display:"inline-flex"}},children:e(Tn,{href:Kr,"data-color-scheme":`no-preference: ${d}; light: ${d}; dark: ${d};`,"data-size":"large","data-show-count":"true","aria-label":"Star Marzban on GitHub",children:"Star"})})]})})]})},ks=[{title:"Inbound's default",value:"inbound_default"},{title:"TLS",value:"tls"},{title:"None",value:"none"}],vs=[{title:"",value:""},{title:"h3",value:"h3"},{title:"h2",value:"h2"},{title:"http/1.1",value:"http/1.1"},{title:"h3,h2,http/1.1",value:"h3,h2,http/1.1"},{title:"h3,h2",value:"h3,h2"},{title:"h2,http/1.1",value:"h2,http/1.1"}],Is=[{title:"",value:""},...["chrome","firefox","safari","ios","android","edge","360","qq","random","randomized"].map(t=>({title:t,value:t}))],zs=[{title:"none",value:""},{title:"xtls-rprx-vision",value:"xtls-rprx-vision"}],Ds=["aes-128-gcm","aes-256-gcm","chacha20-ietf-poly1305"],Es=zt(t=>({isLoading:!1,isPostLoading:!1,hosts:{},fetchHosts:()=>{t({isLoading:!0}),O("/hosts").then(n=>t({hosts:n})).finally(()=>t({isLoading:!1}))},setHosts:n=>(t({isPostLoading:!0}),O("/hosts",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})}))}));const Us=x(Ur,{baseStyle:{w:4,h:4}}),Re=Ft.forwardRef(({disabled:t,step:n,label:o,className:s,startAdornment:a,endAdornment:i,type:l="text",placeholder:h,onChange:p,onBlur:S,name:d,value:c,onClick:w,error:I,clearable:f=!1,...y},T)=>{const g=()=>{p&&p({target:{value:"",name:d}})},{size:b="md"}=y,P=l=="number"?Hn:We,$=l=="number"?Nn:Ft.Fragment,v=l=="number"?{keepWithinRange:!0,precision:5,format:A=>isNaN(parseFloat(String(A)))||Number(parseFloat(String(A)).toFixed(5))===0?A:Number(parseFloat(String(A)).toFixed(5)),min:0,step:n,name:d,type:l,placeholder:h,onChange:A=>{p&&p(A)},onBlur:S,value:c,onClick:w,disabled:t,flexGrow:1,size:b}:{};return r(R,{isInvalid:!!I,children:[o&&e(H,{children:o}),r(St,{size:b,w:"full",rounded:"md",_focusWithin:{outline:"2px solid",outlineColor:"primary.200"},bg:t?"gray.100":"transparent",_dark:{bg:t?"gray.600":"transparent"},children:[a&&e(Fn,{children:a}),r($,{...v,children:[e(P,{name:d,ref:T,step:n,className:Ut(s),type:l,placeholder:h,onChange:p,onBlur:S,value:c,onClick:w,disabled:t,flexGrow:1,_focusVisible:{outline:"none",borderTopColor:"transparent",borderRightColor:"transparent",borderBottomColor:"transparent"},_disabled:{cursor:"not-allowed"},...y,roundedLeft:a?"0":"md",roundedRight:i?"0":"md"}),l=="number"&&e(ge,{children:r(Pn,{children:[e(Wn,{}),e(On,{})]})})]}),i&&e(jn,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",children:i}),f&&c&&c.length&&e(Ct,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",onClick:g,cursor:"pointer",children:e(Us,{})})]}),!!I&&e(wt,{children:I})]})}),At=x(Ne,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Ae=x(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Rs=x($t,{baseStyle:{w:5,h:5}}),Ee=x(Bn,{baseStyle:{w:4,h:4,color:"gray.400",cursor:"pointer"}}),Ls=C.record(C.string().min(1),C.array(C.object({remark:C.string().min(1,"Remark is required"),address:C.string().min(1,"Address is required"),port:C.string().or(C.number()).nullable().transform(t=>typeof t=="number"?t:t!==null&&!isNaN(parseInt(t))?Number(parseInt(t)):null),path:C.string().nullable(),sni:C.string().nullable(),host:C.string().nullable(),mux_enable:C.boolean().default(!1),allowinsecure:C.boolean().nullable().default(!1),is_disabled:C.boolean().default(!0),fragment_setting:C.string().nullable(),random_user_agent:C.boolean().default(!1),security:C.string(),alpn:C.string(),fingerprint:C.string()}))),Se=x(wt,{baseStyle:{color:"red.400",display:"block",textAlign:"left",w:"100%"}}),Ts=({hostKey:t,isOpen:n,toggleAccordion:o})=>{const{inbounds:s}=E(),a=[...s.values()].flat().filter(I=>I.tag===t)[0],i=Vt(),{fields:l,append:h,remove:p}=$n({control:i.control,name:t}),{errors:S}=i.formState,{t:d}=j(),c=S[t],w=()=>{h({host:"",sni:"",port:null,path:null,address:"",remark:"",mux_enable:!1,allowinsecure:!1,is_disabled:!1,fragment_setting:"",random_user_agent:!1,security:"inbound_default",alpn:"",fingerprint:""})};return m.exports.useEffect(()=>{c&&!n&&o()},[c]),r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:o,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:t}),e(Pt,{})]}),e(He,{px:2,pb:2,children:r(N,{gap:3,children:[l.map((I,f)=>{var y,T,g,b,P,$,v,A,G,q,L,V,X,z,W,K,gt,ft,de,Ve,Ce,Ge,bt,Ye,Ze,Qe,qe,Xe,k,M,ee,xe,ue,ye,Y,Je,Ke;return r(N,{border:"1px solid",_dark:{borderColor:"gray.600",bg:"#273142"},_light:{borderColor:"gray.200",bg:"#fcfbfb"},p:2,w:"full",borderRadius:"4px",children:[e(_,{w:"100%",alignItems:"flex-start",children:r(R,{position:"relative",zIndex:10,isInvalid:!!(c&&((y=c[f])==null?void 0:y.remark)),children:[r(St,{children:[e(Ae,{...i.register(t+"."+f+".remark"),size:"sm",borderRadius:"4px",placeholder:"Remark"}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(tr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((T=c[f])==null?void 0:T.remark)&&e(Se,{children:(b=(g=c[f])==null?void 0:g.remark)==null?void 0:b.message})]})}),r(R,{isInvalid:!!(c&&((P=c[f])==null?void 0:P.address)),children:[r(St,{children:[e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Address (e.g. example.com)",...i.register(t+"."+f+".address")}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(tr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&(($=c[f])==null?void 0:$.address)&&e(Se,{children:(A=(v=c[f])==null?void 0:v.address)==null?void 0:A.message})]}),e(ut,{w:"full",allowToggle:!0,children:r(Oe,{border:"0",children:[r(je,{display:"flex",px:0,py:1,borderRadius:3,_hover:{bg:"transparent"},children:[r(u,{flex:"3",align:"start",fontSize:"xs",color:"gray.600",_dark:{color:"gray.500"},pl:1,children:[d("hostsDialog.advancedOptions"),e(Pt,{fontSize:"sm",ml:1})]}),r(Vn,{flex:"1",px:"0",children:[e(pe,{control:i.control,name:`${t}.${f}.is_disabled`,render:({field:Q})=>e(_t,{mx:"1.5",colorScheme:"primary",...Q,value:void 0,isChecked:!Q.value,onChange:et=>{console.log(et.target.checked),Q.onChange(!et.target.checked)}})}),e(re,{label:"Delete",placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",colorScheme:"red",variant:"ghost",onClick:p.bind(null,f),children:e(ht,{})})})]})]}),e(He,{w:"full",p:1,children:r(N,{w:"full",borderRadius:"4px",children:[r(R,{isInvalid:!!(c&&((G=c[f])==null?void 0:G.port)),children:[r(H,{display:"flex",pb:1,alignItems:"center",justifyContent:"space-between",gap:1,m:"0",children:[e("span",{children:d("hostsDialog.port")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.port.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:String(a.port||"8080"),type:"number",...i.register(t+"."+f+".port")})]}),r(R,{isInvalid:!!(c&&((q=c[f])==null?void 0:q.sni)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.sni")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.sni.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"SNI (e.g. example.com)",...i.register(t+"."+f+".sni")}),c&&((L=c[f])==null?void 0:L.sni)&&e(Se,{children:(X=(V=c[f])==null?void 0:V.sni)==null?void 0:X.message})]}),r(R,{isInvalid:!!(c&&((z=c[f])==null?void 0:z.host)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.host")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.host.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Host (e.g. example.com)",...i.register(t+"."+f+".host")}),c&&((W=c[f])==null?void 0:W.host)&&e(Se,{children:(gt=(K=c[f])==null?void 0:K.host)==null?void 0:gt.message})]}),r(R,{isInvalid:!!(c&&((ft=c[f])==null?void 0:ft.path)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.path")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.path.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"path (e.g. /vless)",...i.register(t+"."+f+".path")}),c&&((de=c[f])==null?void 0:de.path)&&e(Se,{children:(Ce=(Ve=c[f])==null?void 0:Ve.path)==null?void 0:Ce.message})]}),r(R,{height:"66px",children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.security")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.security.info")})]})})]})]}),e(At,{size:"sm",...i.register(t+"."+f+".security"),children:ks.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{height:"66px",children:[e(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.alpn")})}),e(At,{size:"sm",...i.register(t+"."+f+".alpn"),children:vs.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{height:"66px",children:[e(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.fingerprint")})}),e(At,{size:"sm",...i.register(t+"."+f+".fingerprint"),children:Is.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{isInvalid:!!(c&&((Ge=c[f])==null?void 0:Ge.fragment_setting)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.fragment")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.fragment.info")}),e(u,{fontSize:"xs",pr:5,pt:2,pb:1,children:d("hostsDialog.fragment.info.examples")}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,tlshello"}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,1-3"}),e(u,{fontSize:"xs",pr:5,pt:"3",children:d("hostsDialog.fragment.info.attention")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Fragment settings by pattern",...i.register(t+"."+f+".fragment_setting")}),c&&((bt=c[f])==null?void 0:bt.fragment_setting)&&e(Se,{children:(Ze=(Ye=c[f])==null?void 0:Ye.fragment_setting)==null?void 0:Ze.message})]}),e(R,{isInvalid:!!(c&&((Qe=c[f])==null?void 0:Qe.allowinsecure)),children:r(ot,{...i.register(t+"."+f+".allowinsecure"),name:t+"."+f+".allowinsecure",children:[e(H,{children:d("hostsDialog.allowinsecure")}),c&&((qe=c[f])==null?void 0:qe.allowinsecure)&&e(Se,{children:(k=(Xe=c[f])==null?void 0:Xe.allowinsecure)==null?void 0:k.message})]})}),r(R,{isInvalid:!!(c&&((M=c[f])==null?void 0:M.mux_enable)),children:[e(ot,{...i.register(t+"."+f+".mux_enable"),children:e(H,{children:d("hostsDialog.muxEnable")})}),c&&((ee=c[f])==null?void 0:ee.mux_enable)&&e(Se,{children:(ue=(xe=c[f])==null?void 0:xe.mux_enable)==null?void 0:ue.message})]}),r(R,{isInvalid:!!(c&&((ye=c[f])==null?void 0:ye.random_user_agent)),children:[e(ot,{...i.register(t+"."+f+".random_user_agent"),children:e(H,{children:d("hostsDialog.randomUserAgent")})}),c&&((Y=c[f])==null?void 0:Y.random_user_agent)&&e(Se,{children:(Ke=(Je=c[f])==null?void 0:Je.random_user_agent)==null?void 0:Ke.message})]})]},f)})]})})]},f)}),e(F,{variant:"outline",w:"full",size:"sm",color:"",fontWeight:"normal",onClick:w,children:d("hostsDialog.addHost")})]})})]})},As=()=>{const{isEditingHosts:t,onEditingHosts:n,refetchUsers:o,inbounds:s}=E(),{isLoading:a,hosts:i,fetchHosts:l,isPostLoading:h,setHosts:p}=Es(),S=fe(),{t:d}=j(),[c,w]=m.exports.useState({});m.exports.useEffect(()=>{t&&l()},[t]);const I=Be({resolver:dt(Ls)});m.exports.useEffect(()=>{i&&t&&I.reset(i)},[i]);const f=()=>{w({}),n(!1)},y=g=>{p(g).then(()=>{S({title:d("hostsDialog.savedSuccess"),status:"success",isClosable:!0,position:"top",duration:3e3}),o()}).catch(b=>{var P,$,v,A,G;(((P=b==null?void 0:b.response)==null?void 0:P.status)===409||(($=b==null?void 0:b.response)==null?void 0:$.status)===400)&&S({title:(A=(v=b.response)==null?void 0:v._data)==null?void 0:A.detail,status:"error",isClosable:!0,position:"top",duration:3e3}),((G=b==null?void 0:b.response)==null?void 0:G.status)===422&&Object.keys(b.response._data.detail).forEach(q=>{S({title:b.response._data.detail[q]+" ("+q+")",status:"error",isClosable:!0,position:"top",duration:3e3})})})},T=g=>{c[String(g)]?delete c[String(g)]:c[String(g)]={},w({...c})};return r(ne,{isOpen:t,onClose:f,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Rs,{color:"white"})})}),e(ie,{mt:3}),e(le,{w:"440px",pb:3,pt:3,children:e(Fr,{...I,children:r("form",{onSubmit:I.handleSubmit(y),children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:d("hostsDialog.title")}),a&&d("hostsDialog.loading"),!a&&i&&(Object.keys(i).length>0?e(ut,{w:"full",allowToggle:!0,allowMultiple:!0,index:Object.keys(c).map(g=>parseInt(g)),children:e(N,{w:"full",children:Object.keys(i).map((g,b)=>e(Ts,{toggleAccordion:()=>T(b),isOpen:c[String(b)],hostKey:g},g))})}):"No inbound found. Please check your Xray config file."),e(_,{justifyContent:"flex-end",py:2,children:e(F,{variant:"solid",mt:"2",type:"submit",colorScheme:"primary",size:"sm",px:5,isLoading:h,disabled:h,children:d("hostsDialog.apply")})})]})})})]})]})},nn=C.object({name:C.string().min(1),address:C.string().min(1),port:C.number().min(1).or(C.string().transform(t=>parseFloat(t))),api_port:C.number().min(1).or(C.string().transform(t=>parseFloat(t))),xray_version:C.string().nullable().optional(),id:C.number().nullable().optional(),status:C.enum(["connected","connecting","error","disabled"]).nullable().optional(),message:C.string().nullable().optional(),add_as_new_host:C.boolean().optional(),usage_coefficient:C.number().or(C.string().transform(t=>parseFloat(t)))}),Ms=()=>({name:"",address:"",port:62050,api_port:62051,xray_version:"",usage_coefficient:1}),lt="fetch-nodes-query-key",Ns=()=>{const{isEditingNodes:t}=E();return Bt({queryKey:lt,queryFn:pt.getState().fetchNodes,refetchInterval:t?3e3:void 0,refetchOnWindowFocus:!1})},pt=zt((t,n)=>({nodes:[],addNode(o){return O("/node",{method:"POST",body:o})},fetchNodes(){return O("/nodes")},fetchNodesUsage(o){return O("/nodes/usage",{query:o})},updateNode(o){return O(`/node/${o.id}`,{method:"PUT",body:o})},setDeletingNode(o){t({deletingNode:o})},reconnectNode(o){return O(`/node/${o.id}/reconnect`,{method:"POST"})},deleteNode:()=>{var o;return O(`/node/${(o=n().deletingNode)==null?void 0:o.id}`,{method:"DELETE"})}})),Qt=(t,n,o)=>{if(t.response&&t.response._data){if(typeof t.response._data.detail=="string")return n({title:t.response._data.detail,status:"error",isClosable:!0,position:"top",duration:3e3});if(typeof t.response._data.detail=="object"&&o){Object.keys(t.response._data.detail).forEach(s=>o.setError(s,{message:t.response._data.detail[s]}));return}}return n({title:"Something went wrong!",status:"error",isClosable:!0,position:"top",duration:3e3})},qt=(t,n)=>n({title:t,status:"success",isClosable:!0,position:"top",duration:3e3}),Fs=({deleteCallback:t})=>{const{deleteNode:n,deletingNode:o,setDeletingNode:s}=pt(),{t:a}=j(),i=fe(),l=Gt(),h=()=>{s(null)},{isLoading:p,mutate:S}=at(n,{onSuccess:()=>{qt(a("deleteNode.deleteSuccess",{name:o&&o.name}),i),s(null),l.invalidateQueries(lt),t&&t()},onError:d=>{Qt(d,i)}});return r(ne,{isCentered:!0,isOpen:!!o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(ht,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("deleteNode.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("deleteNode.prompt",{name:o.name})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:()=>S(),leftIcon:p?e(Fe,{size:"xs"}):void 0,children:a("delete")})]})]})]})},mt={baseStyle:{strokeWidth:"2px",w:4,h:4}},mr=x(Gn,mt),Ps=x(Yn,mt),gr=x(Zn,mt),fr=x(Pr,mt),Ws=x(Pr,mt),jt=[{title:"No",value:"no_reset"},{title:"Daily",value:"day"},{title:"Weekly",value:"week"},{title:"Monthly",value:"month"},{title:"Annually",value:"year"}],st={active:{statusColor:"green",bandWidthColor:"primary",icon:mr},connected:{statusColor:"green",bandWidthColor:"primary",icon:mr},disabled:{statusColor:"gray",bandWidthColor:"gray",icon:Ps},expired:{statusColor:"orange",bandWidthColor:"orange",icon:fr},on_hold:{statusColor:"purple",bandWidthColor:"purple",icon:Ws},connecting:{statusColor:"orange",bandWidthColor:"orange",icon:fr},limited:{statusColor:"red",bandWidthColor:"red",icon:gr},error:{statusColor:"red",bandWidthColor:"red",icon:gr}},Xt=t=>{let n={status:"",time:""};if(t){B(t*1e3).utc().isAfter(B().utc())?n.status="expires":n.status="expired";const o=[],s=B.duration(B(t*1e3).utc().diff(B()));s.years()!=0&&o.push(Math.abs(s.years())+" year"+(Math.abs(s.years())!=1?"s":"")),s.months()!=0&&o.push(Math.abs(s.months())+" month"+(Math.abs(s.months())!=1?"s":"")),s.days()!=0&&o.push(Math.abs(s.days())+" day"+(Math.abs(s.days())!=1?"s":"")),o.length===0&&(s.hours()!=0&&o.push(Math.abs(s.hours())+" hour"+(Math.abs(s.hours())!=1?"s":"")),s.minutes()!=0&&o.push(Math.abs(s.minutes())+" min"+(Math.abs(s.minutes())!=1?"s":""))),n.time=o.join(", ")}return n},yt=({expiryDate:t,status:n,compact:o=!1,showDetail:s=!0,extraText:a})=>{const{t:i}=j(),l=Xt(t),h=st[n].icon;return r(ge,{children:[r(U,{colorScheme:st[n].statusColor,rounded:"full",display:"inline-flex",px:3,py:1,columnGap:o?1:2,alignItems:"center",children:[e(h,{w:o?3:4}),s&&r(u,{textTransform:"capitalize",fontSize:o?".7rem":".875rem",lineHeight:o?"1rem":"1.25rem",fontWeight:"medium",letterSpacing:"tighter",children:[n,a&&`: ${a}`]})]}),s&&t&&e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:i(l.status,{time:l.time})})]})},rt=x(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Os=x(Mr,{baseStyle:{w:5,h:5}}),js=x(Qn,{baseStyle:{w:5,h:5,strokeWidth:2}}),Hs=({toggleAccordion:t,node:n})=>{const{updateNode:o,reconnectNode:s,setDeletingNode:a}=pt(),{t:i}=j(),l=Gt(),h=fe(),p=Be({defaultValues:n,resolver:dt(nn)}),S=a.bind(null,n),{isLoading:d,mutate:c}=at(o,{onSuccess:()=>{qt("Node updated successfully",h),l.invalidateQueries(lt)},onError:y=>{Qt(y,h,p)}}),{isLoading:w,mutate:I}=at(s.bind(null,n),{onSuccess:()=>{l.invalidateQueries(lt)}}),f=w?"connecting":n.status?n.status:"error";return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:t,children:[r(_,{w:"full",justifyContent:"space-between",pr:2,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:n.name}),r(_,{children:[n.xray_version&&e(U,{colorScheme:"blue",rounded:"full",display:"inline-flex",px:3,py:1,children:r(u,{textTransform:"capitalize",fontSize:"0.7rem",fontWeight:"medium",letterSpacing:"tighter",children:["Xray ",n.xray_version]})}),n.status&&e(yt,{status:f,compact:!0})]})]}),e(Pt,{})]}),r(He,{px:2,pb:2,children:[e(N,{pb:3,alignItems:"flex-start",children:f==="error"&&e(it,{status:"error",size:"xs",children:r(D,{children:[r(_,{w:"full",children:[e(kt,{w:4}),e(u,{marginInlineEnd:0,children:n.message})]}),e(_,{justifyContent:"flex-end",w:"full",children:e(F,{size:"sm","aria-label":"reconnect node",leftIcon:e(Jr,{}),onClick:()=>I(),disabled:w,children:i(w?"nodes.reconnecting":"nodes.reconnect")})})]})})}),e(on,{form:p,mutate:c,isLoading:d,submitBtnText:i("nodes.editNode"),btnLeftAdornment:e(re,{label:i("delete"),placement:"top",children:e(Z,{colorScheme:"red",variant:"ghost",size:"sm","aria-label":"delete node",onClick:S,children:e(ht,{})})})})]})]})},Bs=({toggleAccordion:t,resetAccordions:n})=>{const o=fe(),{t:s}=j(),a=Gt(),{addNode:i}=pt(),l=Be({resolver:dt(nn),defaultValues:{...Ms(),add_as_new_host:!0}}),{isLoading:h,mutate:p}=at(i,{onSuccess:()=>{qt(s("nodes.addNodeSuccess",{name:l.getValues("name")}),o),a.invalidateQueries(lt),l.reset(),n()},onError:S=>{Qt(S,o,l)}});return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[e(je,{px:2,borderRadius:"3px",onClick:t,children:r(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},display:"flex",gap:1,children:[e(js,{display:"inline-block"})," ",e("span",{children:s("nodes.addNewMarzbanNode")})]})}),e(He,{px:2,py:4,children:e(on,{form:l,mutate:p,isLoading:h,submitBtnText:s("nodes.addNode"),btnProps:{variant:"solid"},addAsHost:!0})})]})},on=({form:t,mutate:n,isLoading:o,submitBtnText:s,btnProps:a={},btnLeftAdornment:i,addAsHost:l=!1})=>{var I,f,y,T,g,b,P,$,v,A,G,q,L,V,X;const{t:h}=j(),[p,S]=m.exports.useState(!1),{data:d,isLoading:c}=Bt({queryKey:"node-settings",queryFn:()=>O("/node/settings")});function w(z){if(document.body.createTextRange){const W=document.body.createTextRange();W.moveToElementText(z),W.select()}else if(window.getSelection){const W=window.getSelection(),K=document.createRange();K.selectNodeContents(z),W.removeAllRanges(),W.addRange(K)}else console.warn("Could not select text in node: Unsupported browser.")}return e("form",{onSubmit:t.handleSubmit(z=>n(z)),children:r(N,{children:[d&&d.certificate&&e(it,{status:"info",alignItems:"start",children:r(Wr,{display:"flex",flexDirection:"column",overflow:"hidden",children:[e("span",{children:h("nodes.connection-hint")}),r(_,{justify:"end",py:2,children:[e(F,{as:"a",colorScheme:"primary",size:"xs",download:"ssl_client_cert.pem",href:URL.createObjectURL(new Blob([d.certificate],{type:"text/plain"})),children:h("nodes.download-certificate")}),e(re,{placement:"top",label:h("nodes.show-certificate"),children:e(Z,{"aria-label":h("nodes.show-certificate"),onClick:S.bind(null,!p),colorScheme:"whiteAlpha",color:"primary",size:"xs",children:p?e(Xn,{width:"15px"}):e(qn,{width:"15px"})})})]}),e(Or,{in:p,animateOpacity:!0,children:e(u,{bg:"rgba(255,255,255,.5)",_dark:{bg:"rgba(255,255,255,.2)"},rounded:"md",p:"2",lineHeight:"1.2",fontSize:"10px",fontFamily:"Courier",whiteSpace:"pre",overflow:"auto",onClick:z=>{w(z.target)},children:d.certificate})})]})}),r(_,{w:"full",children:[e(R,{children:e(rt,{label:h("nodes.nodeName"),size:"sm",placeholder:"Marzban-S2",...t.register("name"),error:(y=(f=(I=t.formState)==null?void 0:I.errors)==null?void 0:f.name)==null?void 0:y.message})}),e(_,{px:1,children:e(pe,{name:"status",control:t.control,render:({field:z})=>e(re,{placement:"top",label:`${h("usersTable.status")}: `+(z.value!=="disabled"?h("active"):h("disabled")),textTransform:"capitalize",children:e(D,{mt:"6",children:e(_t,{colorScheme:"primary",isChecked:z.value!=="disabled",onChange:W=>{W.target.checked?z.onChange("connecting"):z.onChange("disabled")}})})},z.value)})})]}),e(_,{alignItems:"flex-start",w:"100%",children:e(D,{w:"100%",children:e(rt,{label:h("nodes.nodeAddress"),size:"sm",placeholder:"51.20.12.13",...t.register("address"),error:(b=(g=(T=t.formState)==null?void 0:T.errors)==null?void 0:g.address)==null?void 0:b.message})})}),r(_,{alignItems:"flex-start",w:"100%",children:[e(D,{children:e(rt,{label:h("nodes.nodePort"),size:"sm",placeholder:"62050",...t.register("port"),error:(v=($=(P=t.formState)==null?void 0:P.errors)==null?void 0:$.port)==null?void 0:v.message})}),e(D,{children:e(rt,{label:h("nodes.nodeAPIPort"),size:"sm",placeholder:"62051",...t.register("api_port"),error:(q=(G=(A=t.formState)==null?void 0:A.errors)==null?void 0:G.api_port)==null?void 0:q.message})}),e(D,{children:e(rt,{label:h("nodes.usageCoefficient"),size:"sm",placeholder:"1",...t.register("usage_coefficient"),error:(X=(V=(L=t.formState)==null?void 0:L.errors)==null?void 0:V.usage_coefficient)==null?void 0:X.message})})]}),l&&e(R,{py:1,children:e(ot,{...t.register("add_as_new_host"),children:e(H,{m:0,children:h("nodes.addHostForEveryInbound")})})}),r(_,{w:"full",children:[i,e(F,{flexGrow:1,type:"submit",colorScheme:"primary",size:"sm",px:5,w:"full",isLoading:o,...a,children:s})]})]})})},$s=()=>{const{isEditingNodes:t,onEditingNodes:n}=E(),{t:o}=j(),[s,a]=m.exports.useState({}),{data:i,isLoading:l}=Ns(),h=()=>{a({}),n(!1)},p=S=>{s[String(S)]?delete s[String(S)]:s[String(S)]={},a({...s})};return r(ge,{children:[r(ne,{isOpen:t,onClose:h,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Os,{color:"white"})})}),e(ie,{mt:3}),r(le,{w:"440px",pb:6,pt:3,children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:o("nodes.title")}),l&&"loading...",e(ut,{w:"full",allowToggle:!0,index:Object.keys(s).map(S=>parseInt(S)),children:r(N,{w:"full",children:[!l&&i&&i.map((S,d)=>e(Hs,{toggleAccordion:()=>p(d),node:S},S.name)),e(Bs,{toggleAccordion:()=>p((i||[]).length),resetAccordions:()=>a({})})]})})]})]})]}),e(Fs,{deleteCallback:()=>a({})})]})};function Vs(t){const n=360/t,o=90,s=47,a=[];for(let i=0;i(w<0&&(w+=1),w>1&&(w-=1),w<.16666666666666666?d+(c-d)*6*w:w<.5?c:w<.6666666666666666?d+(c-d)*(.6666666666666666-w)*6:d),p=o<.5?o*(1+n):o+n-o*n,S=2*o-p;s=Math.round(h(S,p,t+1/3)*255),a=Math.round(h(S,p,t)*255),i=Math.round(h(S,p,t-1/3)*255)}const l=h=>{const p=h.toString(16);return p.length===1?"0"+p:p};return`#${l(s)}${l(a)}${l(i)}`}const br=({border:t,...n})=>{const{getInputProps:o,getRadioProps:s}=oo(n),a=Me({base:"xs",md:"sm"});return r(D,{as:"label",children:[e("input",{...o()}),e(D,{...s(),minW:"48px",w:"full",h:"full",textAlign:"center",cursor:"pointer",fontSize:a,borderWidth:t?"1px":"0px",borderRadius:"md",_checked:{bg:"primary.500",color:"white",borderColor:"primary.500"},_focus:{boxShadow:"outline"},px:3,py:1,children:n.children})]})},sn=({onChange:t,defaultValue:n,...o})=>{const{t:s,i18n:a}=j();ct();const i=Me({base:["7h","1d","3d","1w"],md:["7h","1d","3d","1w","1m","3m"]}),l={h:"hour",d:"day",w:"week",m:"month",y:"year"},h=Me({base:[{title:"hours",options:["1h","3h","6h","12h"]},{title:"days",options:["1d","2d","3d","4d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m"]}],md:[{title:"hours",options:["1h","2h","3h","6h","8h","12h"]},{title:"days",options:["1d","2d","3d","4d","5d","6d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m","8m"]}]}),{getRootProps:p,getRadioProps:S,setValue:d}=Jn({name:"filter",defaultValue:n,onChange:z=>{if(z==="custom")return;I(),i.indexOf(z)>=0?(T(s("userDialog.custom")),b(!1)):(T(s("userDialog.custom")+` (${z})`),b(!0));const W=Number(z.substring(0,z.length-1)),K=l[z[z.length-1]];t(z,{start:B().utc().subtract(W,K).format("YYYY-MM-DDTHH:00:00")})}}),{isOpen:c,onOpen:w,onClose:I}=Kn(),f=m.exports.useRef(null);eo({ref:f,handler:I});const[y,T]=m.exports.useState(s("userDialog.custom")),[g,b]=m.exports.useState(!1),[P,$]=m.exports.useState(0),v=Me({base:1,md:2}),A=Me({base:"xs",md:"sm"}),[G,q]=m.exports.useState(null),[L,V]=m.exports.useState(null),X=z=>{const[W,K]=z;L&&!K?(q(null),V(null)):(q(W),V(K),W&&K&&(I(),t("custom",{start:B(W).format("YYYY-MM-DDT00:00:00"),end:B(K).format("YYYY-MM-DDT23:59:59")})))};return r(N,{...o,children:[P==0&&r(Yt,{...p(),gap:0,display:"flex",borderWidth:"1px",borderRadius:"md",minW:{base:"320px",md:"400px"},children:[i.map(z=>e(br,{...S({value:z}),children:z},z)),e(D,{onClick:()=>{q(null),V(null),w()},cursor:"pointer",borderRadius:"md",w:"full",fontSize:A,px:3,py:1,bg:g?"primary.500":"unset",color:g?"white":"unset",borderColor:g?"primary.500":"unset",children:r(_,{children:[e(u,{children:y}),e(Lt,{as:rr,boxSize:"18px"})]})})]}),P==1&&r(_,{onClick:w,cursor:"pointer",fontSize:A,borderRadius:"md",px:3,py:1,minW:{base:"320px",md:"400px"},borderWidth:"1px",children:[e(u,{w:"full",color:G?"unset":"gray.500",children:G?B(G).format("YYYY-MM-DD (00:00)"):s("userDialog.startDate")}),e(Lt,{as:jr,boxSize:"18px"}),e(u,{w:"full",color:L?"unset":"gray.500",children:L?B(L).format("YYYY-MM-DD (23:59)"):s("userDialog.endDate")}),e(Lt,{as:rr,boxSize:"18px"})]}),e(N,{ref:f,marginTop:"40px !important",borderRadius:"md",borderWidth:"1px",position:"absolute",zIndex:"1",backgroundColor:"white",_dark:{backgroundColor:"gray.700"},display:c?"unset":"none",children:r(to,{onChange:z=>$(z),children:[r(ro,{children:[e(nr,{fontSize:A,children:s("userDialog.relative")}),e(nr,{fontSize:A,children:s("userDialog.absolute")})]}),r(no,{children:[e(or,{children:h.map(z=>e(N,{alignItems:"start",pl:2,pr:2,children:r(_,{justifyItems:"flex-start",mb:4,children:[e(u,{fontSize:A,minW:"60px",children:s("userDialog."+z.title)}),z.options.map(W=>e(br,{border:!0,...S({value:W}),children:W},W+".custom"))]})},z.title))}),e(or,{className:"datepicker-panel",children:e(N,{children:e(Hr,{locale:a.language.toLocaleLowerCase(),selected:G,onChange:X,startDate:G,endDate:L,selectsRange:!0,maxDate:new Date,monthsShown:v,peekNextMonth:!1,inline:!0})})})]})]})})]})};function It(t,n,o=[],s=[]){const a=te(o.reduce((i,l)=>i+=l,0));return{series:o,options:{labels:s,chart:{width:"100%",height:"100%",type:"donut",animations:{enabled:!1}},title:{text:`${n}${a}`,align:"center",style:{fontWeight:"var(--chakra-fontWeights-medium)",color:t==="dark"?"var(--chakra-colors-gray-300)":void 0}},legend:{position:"bottom",labels:{colors:t==="dark"?"#CBD5E0":void 0,useSeriesColors:!1}},stroke:{width:1,colors:void 0},dataLabels:{formatter:(i,{seriesIndex:l,w:h})=>te(h.config.series[l],1)},tooltip:{custom:({series:i,seriesIndex:l,dataPointIndex:h,w:p})=>{const S=te(i[l],1),d=Math.max(i.reduce((w,I)=>w+=I),1),c=Math.round(i[l]/d*1e3)/10+"%";return` +
+ ${p.config.labels[l]}: ${c}, ${S} +
+ `}},colors:Vs(o.length)}}}const Ys=x(Dt,{baseStyle:{w:5,h:5}}),Zs=()=>{const{isShowingNodesUsage:t,onShowingNodesUsage:n}=E(),{fetchNodesUsage:o}=pt(),{t:s}=j(),[a,i]=m.exports.useState(!1),{colorMode:l}=ct(),h=s("userDialog.total"),[p,S]=m.exports.useState(It(l,h)),[d,c]=m.exports.useState("1m"),w=y=>{o(y).then(T=>{const g=[],b=[];for(const P in T.usages){const $=T.usages[P];b.push($.uplink+$.downlink),g.push($.node_name)}S(It(l,h,b,g))})};m.exports.useEffect(()=>{t&&w({start:B().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")})},[t]);const I=()=>{n(!1),c("1m")},f=a;return r(ne,{isOpen:t,onClose:I,size:"2xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"full",children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:e(Ys,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:s("header.nodesUsage")})]})}),e(ie,{mt:3,disabled:f}),e(le,{children:r(N,{gap:4,children:[e(sn,{defaultValue:d,onChange:(y,T)=>{c(y),w(T)}}),e(D,{justifySelf:"center",w:"full",maxW:"300px",mt:"4",children:e(m.exports.Suspense,{fallback:e(Er,{isIndeterminate:!0}),children:e(Br,{options:p.options,series:p.series,type:"donut",height:"500px"})})})]})}),e(Le,{mt:"3"})]})]})},xr=x(so),Qs=x(jr,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),qs=x(ao,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Xs=x($r,{baseStyle:{w:5,h:5}}),Js=()=>{const{QRcodeLinks:t,setQRCode:n,setSubLink:o,subscribeUrl:s}=E(),a=t!==null,[i,l]=m.exports.useState(0),{t:h}=j(),p=()=>{n(null),o(null)},S=String(s).startsWith("/")?window.location.origin+s:String(s);return r(ne,{isOpen:a,onClose:p,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Xs,{color:"white"})})}),e(ie,{mt:3}),t&&r(le,{gap:{base:"20px",lg:"50px"},pr:{lg:"60px"},px:{base:"50px"},display:"flex",justifyContent:"center",flexDirection:{base:"column",lg:"row"},children:[s&&r(N,{children:[e(xr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:S,bg:"white"}),e(u,{display:"block",textAlign:"center",pb:3,mt:1,children:h("qrcodeDialog.sublink")})]}),r(D,{w:"300px",children:[e(io,{centerPadding:"0px",centerMode:!0,slidesToShow:1,slidesToScroll:1,dots:!1,afterChange:l,onInit:()=>l(0),nextArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"next",mr:"-4",children:e(Qs,{})}),prevArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"prev",ml:"-4",children:e(qs,{})}),children:t.map((d,c)=>e(_,{children:e(xr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:d,bg:"white"})},c))}),r(u,{display:"block",textAlign:"center",pb:3,mt:1,children:[i+1," / ",t.length]})]})]})]})]})},Ks=x(Nr,{baseStyle:{w:5,h:5}}),ea=()=>{const[t,n]=m.exports.useState(!1),{isResetingAllUsage:o,onResetAllUsage:s,resetAllUsage:a}=E(),{t:i}=j(),l=fe(),h=()=>{s(!1)},p=()=>{n(!0),a().then(()=>{l({title:i("resetAllUsage.success"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{l({title:i("resetAllUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)})};return r(ne,{isCentered:!0,isOpen:o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(Ks,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("resetAllUsage.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:i("resetAllUsage.prompt")})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:i("reset")})]})]})]})},ta=x(Et,{baseStyle:{w:5,h:5}}),ra=()=>{const[t,n]=m.exports.useState(!1),{resetUsageUser:o,resetDataUsage:s}=E(),{t:a}=j(),i=fe(),l=()=>{E.setState({resetUsageUser:null})},h=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("resetUserUsage.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("resetUserUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"blue",children:e(ta,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("resetUserUsage.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("resetUserUsage.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:a("reset")})]})]})]})},na=x(Et,{baseStyle:{w:5,h:5}}),oa=()=>{const[t,n]=m.exports.useState(!1),{revokeSubscriptionUser:o,revokeSubscription:s}=E(),{t:a}=j(),i=fe(),l=()=>{E.setState({revokeSubscriptionUser:null})},h=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("revokeUserSub.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("revokeUserSub.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"blue",children:e(na,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("revokeUserSub.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("revokeUserSub.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:a("revoke")})]})]})]})},sa=x(lo,{baseStyle:{strokeWidth:"2px",w:5,h:5}}),aa=({inbound:t,...n})=>{const{getCheckboxProps:o,getInputProps:s,getLabelProps:a,htmlProps:i}=Gr(n),l=s();return r(D,{as:"label",children:[e("input",{...l}),r(D,{w:"fll",position:"relative",...i,cursor:"pointer",borderRadius:"sm",border:"1px solid",borderColor:"gray.200",_dark:{borderColor:"gray.600"},display:"flex",alignItems:"center",justifyContent:"space-between",overflow:"hidden",_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent",fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& p":{opacity:1}},__css:{"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...o(),children:[e(ot,{size:"sm",w:"full",maxW:"full",color:"gray.700",_dark:{color:"gray.300"},textTransform:"uppercase",colorScheme:"primary",className:"inbound-item",isChecked:l.checked,pointerEvents:"none",flexGrow:1,children:e(_,{justify:"space-between",w:"full",maxW:"calc(100% - 20px)",spacing:0,gap:2,overflow:"hidden",children:r(u,{isTruncated:!0,...a(),fontSize:"xs",children:[t.tag," ",r(u,{as:"span",children:["(",t.network,")"]})]})})}),t.tls&&t.tls!="none"&&e(U,{fontSize:"xs",opacity:".8",size:"xs",children:t.tls})]})]})},ia=({disabled:t,title:n,description:o,toggleAccordion:s,isSelected:a,...i})=>{const l=Vt(),{inbounds:h}=E(),{getCheckboxProps:p,getInputProps:S,getLabelProps:d,htmlProps:c}=Gr(i),w=S(),[I]=Yr({name:[`inbounds.${n}`],control:l.control}),{getCheckboxProps:f}=Vr({value:I,onChange:b=>{if(l.setValue(`inbounds.${n}`,b),b.length===0){const P=l.getValues("selected_proxies");l.setValue("selected_proxies",P.filter($=>$!==n)),s()}}}),y=I&&a&&(E.getState().inbounds.get(n)||[]).length!==I.length,T=(E.getState().inbounds.get(n)||[]).length>0,g=!a&&!T;return r(Oe,{isDisabled:!T,borderRadius:"md",borderStyle:"solid",border:"1px",borderColor:"gray.200",bg:g?"gray.100":"transparent",_dark:{borderColor:"gray.600",bg:g?"#364154":"transparent"},_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent"},...p(),children:[r(D,{as:g?"span":"label",position:"relative",children:[y&&e(D,{position:"absolute",w:"2",h:"2",bg:"yellow.500",top:"-1",right:"-1",rounded:"full",zIndex:999}),e("input",{...w}),r(D,{w:"fll",position:"relative",...c,borderRadius:"md",cursor:g?"not-allowed":"pointer",_checked:{fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& > svg":{opacity:1,"&.checked":{display:"block"},"&.unchecked":{display:"none"}},"& p":{opacity:1}},__css:{"& > svg":{opacity:.3,"&.checked":{display:"none"},"&.unchecked":{display:"block"}},"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...p(),children:[e(je,{display:w.checked&&T?"block":"none",as:"span",className:"checked",color:"primary.200",position:"absolute",right:"3",top:"3",w:"auto",p:0,onClick:s,children:e(Z,{size:"sm","aria-label":"inbound settings",children:e(sa,{})})}),e(u,{fontSize:"sm",color:g?"gray.400":"gray.700",_dark:{color:g?"gray.500":"gray.300"},...d(),children:n}),e(u,{fontWeight:"medium",color:g?"gray.400":"gray.600",_dark:{color:g?"gray.500":"gray.400"},fontSize:"xs",children:o})]})]}),e(He,{px:2,pb:3,roundedBottom:"5px",pt:3,_dark:{bg:w.checked&&"gray.750"},children:r(N,{w:"full",rowGap:2,borderStyle:"solid",borderWidth:"1px",borderRadius:"md",pl:3,pr:3,pt:1.5,_dark:{bg:"gray.700"},children:[r(N,{alignItems:"flex-start",w:"full",children:[e(u,{fontSize:"sm",children:J("inbound")}),e(Yt,{gap:2,alignItems:"flex-start",w:"full",columns:1,spacing:1,children:(h.get(n)||[]).map(b=>e(aa,{...f({value:b.tag}),inbound:b},b.tag))})]}),n==="vmess"&&a&&e(N,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vmess.id")})]})}),n==="vless"&&a&&r(N,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vless.id")})]}),r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"Flow"}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.vless.flow"),children:zs.map(b=>e("option",{value:b.value,children:b.title},b.title))})]})]}),n==="trojan"&&a&&e(N,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.trojan.password")})]})}),n==="shadowsocks"&&a&&r(N,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.shadowsocks.password")})]}),r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("userDialog.method")}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.shadowsocks.method"),children:Ds.map(b=>e("option",{value:b,children:b},b))})]})]})]})})]})},la=m.exports.forwardRef(({name:t,list:n,onChange:o,disabled:s,...a},i)=>{const l=Vt(),[h,p]=m.exports.useState([]),S=c=>{h.includes(c)?h.splice(h.indexOf(c),1):h.push(c),p([...h])},{getCheckboxProps:d}=Vr({value:a.value,onChange:c=>{var I;const w=c.filter(f=>!a.value.includes(f));w[0]&&l.setValue(`inbounds.${w[0]}`,(I=E.getState().inbounds.get(w[0]))==null?void 0:I.map(f=>f.tag)),p(h.filter(f=>c.find(y=>y===n[f].title))),o({target:{value:c,name:t}})}});return e(ut,{allowToggle:!0,index:h,children:e(Yt,{ref:i,gap:2,alignItems:"flex-start",columns:1,spacing:1,children:n.map((c,w)=>e(ia,{toggleAccordion:S.bind(null,w),disabled:s,title:c.title,description:c.description,isSelected:!!a.value.find(I=>I===c.title),...d({value:c.title})},c.title))})})}),ca=x(co,{baseStyle:{w:5,h:5}}),da=x(Zr,{baseStyle:{w:5,h:5}}),ua=x(Dt,{baseStyle:{w:5,h:5}}),ha=C.object({username:C.string().min(1,{message:"Required"}),selected_proxies:C.array(C.string()).refine(t=>t.length>0,{message:"userDialog.selectOneProtocol"}),note:C.string().nullable(),proxies:C.record(C.string(),C.record(C.string(),C.any())).transform(t=>{const n=(o,s)=>{o&&o[s]===""&&delete o[s]};return n(t.vmess,"id"),n(t.vless,"id"),n(t.trojan,"password"),n(t.shadowsocks,"password"),n(t.shadowsocks,"method"),t}),data_limit:C.string().min(0,"The minimum number is 0").or(C.number()).nullable().transform(t=>t?Number((parseFloat(String(t))*1073741824).toFixed(5)):0),expire:C.number().nullable(),on_hold_expire_duration:C.string().min(.1,"The minimum number is 0.1").or(C.number()).nullable().transform(t=>t?Number(parseFloat(String(t))*(24*60*60)):0),data_limit_reset_strategy:C.string(),status:C.string(),inbounds:C.record(C.string(),C.array(C.string())).transform(t=>(Object.keys(t).forEach(n=>{var o;Array.isArray(t[n])&&!((o=t[n])!=null&&o.length)&&delete t[n]}),t))}),pa=t=>({...t,data_limit:t.data_limit?Number((t.data_limit/1073741824).toFixed(5)):t.data_limit,on_hold_expire_duration:t.on_hold_expire_duration?Number(t.on_hold_expire_duration/(24*60*60)):t.on_hold_expire_duration,selected_proxies:Object.keys(t.proxies)}),Mt=()=>{const t=Object.fromEntries(E.getState().inbounds),n={};for(const o in t)n[o]=t[o].map(s=>s.tag);return{selected_proxies:Object.keys(t),data_limit:null,expire:null,username:"",data_limit_reset_strategy:"no_reset",status:"active",on_hold_expire_duration:null,note:"",inbounds:n,proxies:{vless:{id:"",flow:""},vmess:{id:""},trojan:{password:""},shadowsocks:{password:"",method:"chacha20-ietf-poly1305"}}}},ma=(t,n)=>{const o=t.reduce((s,a)=>({...s,[a]:{}}),{});return n&&t.forEach(s=>{n[s]&&(o[s]=n[s])}),o},ga=()=>{var Ye,Ze,Qe,qe,Xe;const{editingUser:t,isCreatingNewUser:n,onCreateUser:o,editUser:s,fetchUserUsage:a,onEditingUser:i,createUser:l,onDeletingUser:h}=E(),p=!!t,S=n||p,[d,c]=m.exports.useState(!1),[w,I]=m.exports.useState(""),f=fe(),{t:y,i18n:T}=j(),{colorMode:g}=ct(),[b,P]=m.exports.useState(!1),$=()=>{P(k=>!k)},v=Be({defaultValues:Mt(),resolver:dt(ha)});m.exports.useEffect(()=>E.subscribe(k=>k.inbounds,()=>{v.reset(Mt())}),[]);const[A]=Yr({control:v.control,name:["data_limit"]}),G=y("userDialog.total"),[q,L]=m.exports.useState(It(g,G)),[V,X]=m.exports.useState("1m"),z=k=>{a(t,k).then(M=>{const ee=[],xe=[];for(const ue in M.usages)xe.push(M.usages[ue].used_traffic),ee.push(M.usages[ue].node_name);L(It(g,G,xe,ee))})};m.exports.useEffect(()=>{t&&(v.reset(pa(t)),Ce(v.getValues().status),z({start:B().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")}))},[t]);const W=k=>{c(!0);const M={edited:s,created:l},ee=p?"edited":"created";I(null);const{selected_proxies:xe,...ue}=k;let ye={...ue,data_limit:k.data_limit,proxies:ma(xe,k.proxies),data_limit_reset_strategy:k.data_limit&&k.data_limit>0?k.data_limit_reset_strategy:"no_reset",status:k.status==="active"||k.status==="disabled"||k.status==="on_hold"?k.status:"active"};M[ee](ye).then(()=>{f({title:y(p?"userDialog.userEdited":"userDialog.userCreated",{username:k.username}),status:"success",isClosable:!0,position:"top",duration:3e3}),K()}).catch(Y=>{var Je,Ke,Q,et,Jt;(((Je=Y==null?void 0:Y.response)==null?void 0:Je.status)===409||((Ke=Y==null?void 0:Y.response)==null?void 0:Ke.status)===400)&&I((et=(Q=Y==null?void 0:Y.response)==null?void 0:Q._data)==null?void 0:et.detail),((Jt=Y==null?void 0:Y.response)==null?void 0:Jt.status)===422&&Object.keys(Y.response._data.detail).forEach(Rt=>{I(Y==null?void 0:Y.response._data.detail[Rt]),v.setError(Rt,{type:"custom",message:Y.response._data.detail[Rt]})})}).finally(()=>{c(!1)})},K=()=>{v.reset(Mt()),o(!1),i(null),I(null),P(!1),X("1m"),Ce(null)},gt=()=>{E.setState({resetUsageUser:t})},ft=()=>{E.setState({revokeSubscriptionUser:t})},de=d,[Ve,Ce]=m.exports.useState(),[Ge,bt]=m.exports.useState();return m.exports.useEffect(()=>{Ce(v.getValues().status)},[v]),m.exports.useEffect(()=>{bt(v.getValues().status)},[]),r(ne,{isOpen:S,onClose:K,size:"2xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),e(Fr,{...v,children:e(se,{mx:"3",children:r("form",{onSubmit:v.handleSubmit(W),children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:p?e(da,{color:"white"}):e(ca,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:y(p?"userDialog.editUserTitle":"createNewUser")})]})}),e(ie,{mt:3,disabled:de}),r(le,{children:[r(Rr,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)"},gap:3,children:[e(nt,{children:r(N,{justifyContent:"space-between",children:[r(sr,{flexDirection:"column",gridAutoRows:"min-content",w:"full",children:[r(R,{mb:"10px",children:[e(H,{children:y("username")}),r(_,{children:[e(Re,{size:"sm",type:"text",borderRadius:"6px",error:(Ye=v.formState.errors.username)==null?void 0:Ye.message,disabled:de||p,...v.register("username")}),p&&e(_,{px:1,children:e(pe,{name:"status",control:v.control,render:({field:k})=>e(re,{placement:"top",label:"status: "+k.value,textTransform:"capitalize",children:e(D,{children:e(_t,{colorScheme:"primary",disabled:k.value!=="disabled"&&k.value!=="on_hold",isChecked:k.value==="active",onChange:M=>{M.target.checked?k.onChange("active"):k.onChange("disabled")}})})})})})]})]}),r(R,{mb:"10px",children:[e(H,{children:y("userDialog.dataLimit")}),e(pe,{control:v.control,name:"data_limit",render:({field:k})=>{var M;return e(Re,{endAdornment:"GB",type:"number",size:"sm",borderRadius:"6px",onChange:k.onChange,disabled:de,error:(M=v.formState.errors.data_limit)==null?void 0:M.message,value:k.value?String(k.value):""})}})]}),e(Or,{in:!!(A&&A>0),animateOpacity:!0,style:{width:"100%"},children:r(R,{height:"66px",children:[e(H,{children:y("userDialog.periodicUsageReset")}),e(pe,{control:v.control,name:"data_limit_reset_strategy",render:({field:k})=>e(Ne,{size:"sm",...k,children:jt.map(M=>e("option",{value:M.value,children:y("userDialog.resetStrategy"+M.title)},M.value))})})]})}),r(sr,{flexDirection:"row",w:"full",gap:"1rem",mb:"10px",children:[r(R,{display:Ve==="on_hold"&&v.getValues().status==="on_hold"?"none":"block",children:[e(H,{children:y("userDialog.expiryDate")}),e(pe,{name:"expire",control:v.control,render:({field:k})=>{var ue;function M(ye){return B(B(ye*1e3).utc()).toDate()}const{status:ee,time:xe}=Xt(k.value);return r(ge,{children:[e(Hr,{locale:T.language.toLocaleLowerCase(),dateFormat:y("dateFormat"),minDate:new Date,selected:k.value?M(k.value):void 0,onChange:ye=>{v.setValue("on_hold_expire_duration",null),k.onChange({target:{value:ye?B(B(ye).set("hour",23).set("minute",59).set("second",59)).utc().valueOf()/1e3:0,name:"expire"}})},customInput:e(Re,{size:"sm",type:"text",borderRadius:"6px",clearable:!0,disabled:de,error:(ue=v.formState.errors.expire)==null?void 0:ue.message})}),k.value?e(uo,{children:y(ee,{time:xe})}):""]})}})]}),r(R,{display:Ve!=="on_hold"&&v.getValues().status!=="on_hold"?"none":"block",children:[e(H,{children:y("userDialog.onHoldExpireDuration")}),e(pe,{control:v.control,name:"on_hold_expire_duration",render:({field:k})=>{var M;return e(Re,{endAdornment:"Days",type:"number",size:"sm",borderRadius:"6px",onChange:ee=>{v.setValue("expire",null),k.onChange({target:{value:ee}})},disabled:de,error:(M=v.formState.errors.on_hold_expire_duration)==null?void 0:M.message,value:k.value?String(k.value):""})}})]}),r(R,{flex:"1",children:[e(H,{whiteSpace:"nowrap",children:y("userDialog.onHold")}),e(pe,{name:"status",control:v.control,render:({field:k})=>{const M=k.value;return e(ge,{children:M?e(_t,{colorScheme:"primary",isChecked:M==="on_hold",onChange:ee=>{ee.target.checked?(k.onChange("on_hold"),Ce("on_hold")):(k.onChange(Ge),Ce(Ge))}}):""})}})]})]}),r(R,{mb:"10px",isInvalid:!!v.formState.errors.note,children:[e(H,{children:y("userDialog.note")}),e(ho,{...v.register("note")}),e(wt,{children:(Qe=(Ze=v.formState.errors)==null?void 0:Ze.note)==null?void 0:Qe.message})]})]}),w&&r(it,{status:"error",display:{base:"none",md:"flex"},children:[e(kt,{}),w]})]})}),e(nt,{children:r(R,{isInvalid:!!((qe=v.formState.errors.selected_proxies)!=null&&qe.message),children:[e(H,{children:y("userDialog.protocols")}),e(pe,{control:v.control,name:"selected_proxies",render:({field:k})=>e(la,{list:[{title:"vmess",description:y("userDialog.vmessDesc")},{title:"vless",description:y("userDialog.vlessDesc")},{title:"trojan",description:y("userDialog.trojanDesc")},{title:"shadowsocks",description:y("userDialog.shadowsocksDesc")}],disabled:de,...k})}),e(wt,{children:y((Xe=v.formState.errors.selected_proxies)==null?void 0:Xe.message)})]})}),p&&b&&e(nt,{pt:6,colSpan:{base:1,md:2},children:r(N,{gap:4,children:[e(sn,{defaultValue:V,onChange:(k,M)=>{X(k),z(M)}}),e(D,{width:{base:"100%",md:"70%"},justifySelf:"center",children:e(Br,{options:q.options,series:q.series,type:"donut"})})]})})]}),w&&r(it,{mt:"3",status:"error",display:{base:"flex",md:"none"},children:[e(kt,{}),w]})]}),e(Le,{mt:"3",children:r(_,{justifyContent:"space-between",w:"full",gap:3,flexDirection:{base:"column",sm:"row"},children:[e(_,{justifyContent:"flex-start",w:{base:"full",sm:"unset"},children:p&&r(ge,{children:[e(re,{label:y("delete"),placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",onClick:()=>{h(t),K()},children:e(ht,{})})}),e(re,{label:y("userDialog.usage"),placement:"top",children:e(Z,{"aria-label":"usage",size:"sm",onClick:$,children:e(ua,{})})}),e(F,{onClick:gt,size:"sm",children:y("userDialog.resetUsage")}),e(F,{onClick:ft,size:"sm",children:y("userDialog.revokeSubscription")})]})}),e(_,{w:"full",maxW:{md:"50%",base:"full"},justify:"end",children:e(F,{type:"submit",size:"sm",px:"8",colorScheme:"primary",leftIcon:d?e(Fe,{size:"xs"}):void 0,disabled:de,children:y(p?"userDialog.editUser":"createUser")})})]})})]})})})]})},fa=t=>m.exports.createElement("svg",{xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:782.04441,height:701.88002,viewBox:"0 0 782.04441 701.88002",xmlnsXlink:"http://www.w3.org/1999/xlink",...t},m.exports.createElement("path",{d:"M609.48783,100.59015l-25.44631,6.56209L270.53735,187.9987,245.091,194.56079A48.17927,48.17927,0,0,0,210.508,253.17865L320.849,681.05606a48.17924,48.17924,0,0,0,58.61776,34.58317l.06572-.01695,364.26536-93.93675.06572-.01695a48.17923,48.17923,0,0,0,34.58309-58.6178l-110.341-427.87741A48.17928,48.17928,0,0,0,609.48783,100.59015Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M612.94784,114.00532l-30.13945,7.77236L278.68955,200.20385l-30.139,7.77223a34.30949,34.30949,0,0,0-24.6275,41.74308l110.341,427.87741a34.30946,34.30946,0,0,0,41.7431,24.62736l.06572-.01695,364.26536-93.93674.06619-.01707a34.30935,34.30935,0,0,0,24.627-41.7429l-110.341-427.87741A34.30938,34.30938,0,0,0,612.94784,114.00532Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M590.19,252.56327,405.917,300.08359a8.01411,8.01411,0,0,1-4.00241-15.52046l184.273-47.52033A8.01412,8.01412,0,0,1,590.19,252.56327Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M628.955,270.49906,412.671,326.27437a8.01411,8.01411,0,1,1-4.00241-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M620.45825,369.93676l-184.273,47.52032a8.01411,8.01411,0,1,1-4.00242-15.52046l184.273-47.52032a8.01411,8.01411,0,1,1,4.00241,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M659.22329,387.87255l-216.284,55.77531a8.01411,8.01411,0,1,1-4.00242-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M650.72653,487.31025l-184.273,47.52033a8.01412,8.01412,0,0,1-4.00242-15.52047l184.273-47.52032a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M689.49156,505.246l-216.284,55.77532a8.01412,8.01412,0,1,1-4.00241-15.52047l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M374.45884,348.80871l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76146L289.5963,304.81607a3.847,3.847,0,0,1,2.76145-4.68061l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76145l14.96947,58.04817A3.847,3.847,0,0,1,374.45884,348.80871Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M404.72712,466.1822l-65.21247,16.817a3.847,3.847,0,0,1-4.68062-2.76146l-14.96946-58.04816A3.847,3.847,0,0,1,322.626,417.509l65.21246-16.817a3.847,3.847,0,0,1,4.68062,2.76145l14.96946,58.04817A3.847,3.847,0,0,1,404.72712,466.1822Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M434.99539,583.55569l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76145l-14.96946-58.04817a3.847,3.847,0,0,1,2.76145-4.68062l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76146l14.96947,58.04816A3.847,3.847,0,0,1,434.99539,583.55569Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.63647,209.0517H487.31811a48.17928,48.17928,0,0,0-48.125,48.12512V699.05261a48.17924,48.17924,0,0,0,48.125,48.12507H863.63647a48.17924,48.17924,0,0,0,48.125-48.12507V257.17682A48.17928,48.17928,0,0,0,863.63647,209.0517Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.637,222.90589H487.31811a34.30948,34.30948,0,0,0-34.271,34.27093V699.05261a34.30947,34.30947,0,0,0,34.271,34.27088H863.637a34.30936,34.30936,0,0,0,34.27051-34.27088V257.17682A34.30937,34.30937,0,0,0,863.637,222.90589Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("circle",{cx:694.19401,cy:614.02963,r:87.85039,fill:"#3182CE"}),m.exports.createElement("path",{d:"M945.18722,701.63087H914.63056V671.07421a11.45875,11.45875,0,0,0-22.9175,0v30.55666H861.1564a11.45875,11.45875,0,0,0,0,22.9175h30.55666V755.105a11.45875,11.45875,0,1,0,22.9175,0V724.54837h30.55666a11.45875,11.45875,0,0,0,0-22.9175Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M807.00068,465.71551H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01412,8.01412,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,492.76314H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01411,8.01411,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.00068,586.929H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,613.97661H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01412,8.01412,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,505.04162H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V441.25158a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,505.04162Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,626.25509H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V562.46505a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,626.25509Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.21185,330.781H666.91017a8.01411,8.01411,0,0,1,0-16.02823H807.21185a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M840.27007,357.82862H666.91017a8.01411,8.01411,0,1,1,0-16.02822h173.3599a8.01411,8.01411,0,0,1,0,16.02822Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M635.85911,390.6071H506.51316a3.847,3.847,0,0,1-3.84277-3.84277V285.81706a3.847,3.847,0,0,1,3.84277-3.84277H635.85911a3.847,3.847,0,0,1,3.84277,3.84277V386.76433A3.847,3.847,0,0,1,635.85911,390.6071Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"})),ba=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},yr=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=ba(t);if(typeof t>"u"||t===null)return e("div",{className:"circle pulse orange"});const s=o?n-o:1/0;return s>0&&s<=60?e("div",{className:"circle pulse green"}):e("div",{className:"circle pulse red"})},xa=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},Sr=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=xa(t),s=o?n-o:null,a=o?Xt(o):{status:"",time:"Not Connected Yet"};return e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:s&&s<=60?"Online":s?`${a.time} ago`:a.time})},ya=x(po,{baseStyle:{w:4,h:4}}),Sa=x(mo,{baseStyle:{w:4,h:4}}),Cr=5;function Ca(t,n,o){if(o0&&(a[0]=0,a[1]="prev-more"),a[a.length-1]{const{filters:t,onFilterChange:n,users:{total:o}}=E(),{limit:s,offset:a}=t,i=(a||0)/(s||1),l=Math.ceil(o/(s||1)),h=Ca(l,i,7),p=c=>{n({...t,offset:c*s})},S=c=>{n({...t,limit:parseInt(c.target.value)}),Go(c.target.value)},{t:d}=j();return r(_,{justifyContent:"space-between",mt:4,w:"full",display:"flex",columnGap:{lg:4,md:0},rowGap:{md:0,base:4},flexDirection:{md:"row",base:"column"},children:[e(D,{order:{base:2,md:1},children:r(_,{children:[r(Ne,{minW:"60px",value:s,onChange:S,size:"sm",rounded:"md",children:[e("option",{children:"10"}),e("option",{children:"20"}),e("option",{children:"30"})]}),e(u,{whiteSpace:"nowrap",fontSize:"sm",children:d("itemsPerPage")})]})}),r(go,{size:"sm",isAttached:!0,variant:"outline",order:{base:1,md:2},children:[e(F,{leftIcon:e(ya,{}),onClick:p.bind(null,i-1),isDisabled:i===0||l===0,children:d("previous")}),h.map(c=>typeof c=="string"?e(F,{children:"..."},c):e(F,{variant:c===i?"solid":"outline",onClick:p.bind(null,c),children:c+1},c)),e(F,{rightIcon:e(Sa,{}),onClick:p.bind(null,i+1),isDisabled:i+1===l||l===0,children:d("next")})]})]})},_a=x(fa),$e={baseStyle:{w:{base:4,md:5},h:{base:4,md:5}}},ka=x(fo,$e),va=x(Qr,$e),wr=x(bo,$e),Ia=x($t,$e),za=x($r,$e),Da=x(Zr,$e),Ea=x(Qr,{baseStyle:{width:"15px",height:"15px"}}),Ua=t=>{for(var n=0;n{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a}=t,i=o===0||o===null;return e(_,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:r(u,{children:[te(n)," /"," ",i?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):te(o)]})})},_r=t=>{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a,...i}=t,l=o===0||o===null,h=!l&&n/o*100>=100;return r(ge,{children:[e(xo,{orientation:"horizontal",value:l?100:Math.min(n/o*100,100),colorScheme:h?"red":"primary",...i,children:e(yo,{h:"6px",borderRadius:"full",children:e(So,{borderRadius:"full"})})}),r(_,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:[r(u,{children:[te(n)," /"," ",l?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):te(o)+(s&&s!=="no_reset"?" "+J("userDialog.resetStrategy"+Ua(s)):"")]}),r(u,{children:[J("usersTable.total"),": ",te(a)]})]})]})},xt=({sort:t,column:n})=>t.includes(n)?e(Ea,{transform:t.startsWith("-")?void 0:"rotate(180deg)"}):null,La=t=>{const{filters:n,users:{users:o},users:s,onEditingUser:a,onFilterChange:i}=E(),{t:l}=j(),[h,p]=m.exports.useState(void 0),S=Me({base:120,lg:72})||72,[d,c]=m.exports.useState(`${S}px`),w=Me({base:!1,md:!0});m.exports.useEffect(()=>{const g=()=>{const b=document.querySelectorAll("#filters")[0];c(`${b.offsetHeight}px`)};window.addEventListener("scroll",g)},[]);const I=o.length!==s.total,f=g=>{let b=n.sort;b.includes(g)?b.startsWith("-")?b="-created_at":b="-"+g:b=g,i({sort:b})},y=g=>{i({status:g.target.value.length>0?g.target.value:void 0})},T=g=>{p(g===h?void 0:g)};return r(D,{id:"users-table",overflowX:{base:"unset",md:"unset"},children:[e(ut,{allowMultiple:!0,display:{base:"block",md:"none"},index:h,children:r(ar,{orientation:"vertical",zIndex:"docked",...t,children:[e(ir,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(De,{position:"sticky",top:d,minW:"120px",pl:4,pr:4,cursor:"pointer",onClick:f.bind(null,"username"),children:r(_,{children:[e("span",{children:l("users")}),e(xt,{sort:n.sort,column:"username"})]})}),e(De,{position:"sticky",top:d,minW:"50px",pl:0,pr:0,w:"140px",cursor:"pointer",children:r(_,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Ne,{value:n.sort,fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ge,{}),_focusVisible:{border:"0 !important"},onChange:y,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:d,minW:"100px",cursor:"pointer",pr:0,onClick:f.bind(null,"used_traffic"),children:r(_,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:n.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:d,minW:"32px",w:"32px",p:0,cursor:"pointer"})]})}),e(lr,{children:!w&&(o==null?void 0:o.map((g,b)=>r(m.exports.Fragment,{children:[r(Pe,{onClick:T.bind(null,b),cursor:"pointer",children:[e(he,{borderBottom:0,minW:"100px",pl:4,pr:4,maxW:"calc(100vw - 50px - 32px - 100px - 48px)",children:r("div",{className:"flex-status",children:[e(yr,{lastOnline:g.online_at}),e(u,{isTruncated:!0,children:g.username})]})}),e(he,{borderBottom:0,minW:"50px",pl:0,pr:0,children:e(yt,{compact:!0,showDetail:!1,expiryDate:g.expire,status:g.status})}),e(he,{borderBottom:0,minW:"100px",pr:0,children:e(Ra,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})}),e(he,{p:0,borderBottom:0,w:"32px",minW:"32px",children:e(va,{color:"gray.600",_dark:{color:"gray.400"},transition:"transform .2s ease-out",transform:h===b?"rotate(180deg)":"0deg"})})]}),e(Pe,{className:"collapsible",onClick:T.bind(null,b),children:e(he,{p:0,colSpan:4,children:r(Oe,{border:0,children:[e(je,{display:"none"}),e(He,{border:0,cursor:"pointer",px:6,py:3,children:r(N,{justifyContent:"space-between",spacing:"4",children:[r(N,{alignItems:"flex-start",w:"full",spacing:-1,children:[e(u,{textTransform:"capitalize",fontSize:"xs",fontWeight:"bold",color:"gray.600",_dark:{color:"gray.400"},children:l("usersTable.dataUsage")}),e(D,{width:"full",minW:"230px",children:e(_r,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})})]}),r(_,{w:"full",justifyContent:"space-between",children:[r(D,{width:"full",children:[e(yt,{compact:!0,expiryDate:g.expire,status:g.status}),e(Sr,{lastOnline:g.online_at})]}),r(_,{children:[e(kr,{user:g}),e(re,{label:l("userDialog.editUser"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"Edit user",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:P=>{P.stopPropagation(),a(g)},children:e(Da,{})})})]})]})]})})]})})})]},g.username)))})]})}),r(ar,{orientation:"vertical",display:{base:"none",md:"table"},...t,children:[e(ir,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(De,{position:"sticky",top:{base:"unset",md:d},minW:"140px",cursor:"pointer",onClick:f.bind(null,"username"),children:r(_,{children:[e("span",{children:l("username")}),e(xt,{sort:n.sort,column:"username"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"400px",minW:"150px",cursor:"pointer",children:r(_,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Ne,{fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ge,{}),_focusVisible:{border:"0 !important"},value:n.sort,onChange:y,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"350px",minW:"230px",cursor:"pointer",onClick:f.bind(null,"used_traffic"),children:r(_,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:n.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"200px",minW:"180px"})]})}),r(lr,{children:[w&&(o==null?void 0:o.map((g,b)=>r(Pe,{className:Ut("interactive",{"last-row":b===o.length-1}),onClick:()=>a(g),children:[e(he,{minW:"140px",children:r("div",{className:"flex-status",children:[e(yr,{lastOnline:g.online_at}),g.username,e(Sr,{lastOnline:g.online_at})]})}),e(he,{width:"400px",minW:"150px",children:e(yt,{expiryDate:g.expire,status:g.status})}),e(he,{width:"350px",minW:"230px",children:e(_r,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})}),e(he,{width:"200px",minW:"180px",children:e(kr,{user:g})})]},g.username))),o.length==0&&e(Pe,{children:e(he,{colSpan:4,children:e(Ta,{isFiltered:I})})})]})]}),e(wa,{})]})},kr=({user:t})=>{const{setQRCode:n,setSubLink:o}=E(),s=t.links.join(`\r +`),[a,i]=m.exports.useState([-1,!1]);return m.exports.useEffect(()=>{a[1]&&setTimeout(()=>{i([-1,!1])},1e3)},[a]),r(_,{justifyContent:"flex-end",onClick:l=>{l.preventDefault(),l.stopPropagation()},children:[e(cr,{text:t.subscription_url.startsWith("/")?window.location.origin+t.subscription_url:t.subscription_url,onCopy:()=>{i([0,!0])},children:e("div",{children:e(re,{label:a[0]==0&&a[1]?J("usersTable.copied"):J("usersTable.copyLink"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy subscription link",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==0&&a[1]?e(wr,{}):e(Ia,{})})})})}),e(cr,{text:s,onCopy:()=>{i([1,!0])},children:e("div",{children:e(re,{label:a[0]==1&&a[1]?J("usersTable.copied"):J("usersTable.copyConfigs"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy configs",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==1&&a[1]?e(wr,{}):e(ka,{})})})})}),e(re,{label:"QR Code",placement:"top",children:e(Z,{p:"0 !important","aria-label":"qr code",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:()=>{n(t.links),o(t.subscription_url)},children:e(za,{})})})]})},Ta=({isFiltered:t})=>{const{onCreateUser:n}=E();return r(D,{padding:"5",py:"8",display:"flex",alignItems:"center",flexDirection:"column",gap:4,w:"full",children:[e(_a,{maxHeight:"200px",maxWidth:"200px",_dark:{'path[fill="#fff"]':{fill:"gray.800"},'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.700"},'circle[fill="#3182CE"]':{fill:"primary.300"}},_light:{'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.300"},'circle[fill="#3182CE"]':{fill:"primary.500"}}}),e(u,{fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:t?J("usersTable.noUserMatched"):J("usersTable.noUser")}),!t&&e(F,{size:"sm",colorScheme:"primary",onClick:()=>n(!0),children:J("createUser")})]})},Aa=()=>(m.exports.useEffect(()=>{E.getState().refetchUsers(),Zo()},[]),r(N,{justifyContent:"space-between",minH:"100vh",p:"6",rowGap:4,children:[r(D,{w:"full",children:[e(_s,{}),e($o,{mt:"4"}),e(ls,{}),e(La,{}),e(ga,{}),e(os,{}),e(Js,{}),e(As,{}),e(ra,{}),e(oa,{}),e($s,{}),e(Zs,{}),e(ea,{}),e(ns,{})]}),e(en,{})]})),Ma=t=>m.exports.createElement("svg",{viewBox:"0 0 747 747",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},m.exports.createElement("path",{d:"M746.671 209.652V77.6572C746.671 72.9384 743.827 68.6832 739.468 66.8811C735.108 65.0738 730.093 66.0739 726.754 69.4072L579.354 216.807C577.453 202.386 570.203 189.203 559.037 179.87C547.875 170.542 533.615 165.744 519.083 166.432C504.551 167.12 490.807 173.24 480.573 183.583L414.375 249.776C412.417 235.391 405.141 222.25 393.985 212.959C382.823 203.662 368.594 198.88 354.083 199.552C339.578 200.224 325.849 206.302 315.594 216.588L274.343 257.828L19.9167 3.41515C16.5781 0.0818157 11.5625 -0.918184 7.20306 0.889149C2.84373 2.69648 0 6.94648 0 11.6651V143.649C0 146.743 1.22917 149.712 3.41667 151.899L191.843 340.339L3.41667 528.753C1.2292 530.94 0 533.909 0 537.003V668.997C0 673.716 2.84373 677.971 7.20306 679.773C11.5624 681.581 16.578 680.58 19.9167 677.247L167.317 529.847C169.285 544.233 176.561 557.358 187.718 566.65C198.869 575.947 213.098 580.728 227.603 580.066C242.103 579.404 255.838 573.342 266.098 563.071L332.295 496.874V496.879C334.259 511.264 341.535 524.395 352.691 533.686C363.853 542.977 378.082 547.759 392.587 547.092C407.093 546.421 420.822 540.348 431.077 530.066L472.327 488.826L726.754 743.239C728.941 745.427 731.91 746.656 735.004 746.656C736.535 746.661 738.056 746.359 739.473 745.77C743.832 743.963 746.671 739.708 746.671 734.989V602.994C746.671 599.901 745.442 596.932 743.254 594.744L554.827 406.318L743.254 217.904H743.259C745.447 215.717 746.676 212.748 746.676 209.654L746.671 209.652ZM23.3373 39.8118L257.844 274.318L208.328 323.818L23.3413 138.818L23.3373 39.8118ZM723.337 706.825L488.831 472.318L538.347 422.818L723.333 607.818L723.337 706.825ZM23.3373 541.825L332.097 233.078C338.764 226.719 347.624 223.172 356.843 223.172C366.056 223.172 374.916 226.719 381.588 233.078C388.151 239.641 391.838 248.548 391.838 257.828C391.838 267.114 388.151 276.016 381.588 282.577L23.3347 640.831L23.3373 541.825ZM249.604 546.575C240.755 555.419 227.864 558.872 215.781 555.638C203.703 552.398 194.265 542.961 191.027 530.883C187.792 518.8 191.245 505.91 200.089 497.06L497.076 200.074C505.92 191.23 518.811 187.772 530.893 191.011C542.971 194.246 552.409 203.678 555.648 215.76C558.888 227.839 555.434 240.73 546.591 249.572L249.604 546.575ZM723.337 204.815L414.577 513.562C407.911 519.926 399.051 523.473 389.832 523.473C380.618 523.473 371.753 519.926 365.087 513.562C358.529 506.999 354.842 498.098 354.842 488.816C354.842 479.535 358.529 470.634 365.087 464.071L723.34 105.818L723.337 204.815Z",fill:"currentColor"})),Na=C.object({username:C.string().min(1,"login.fieldRequired"),password:C.string().min(1,"login.fieldRequired")}),Fa=x(Ma,{baseStyle:{strokeWidth:"10px",w:12,h:12}}),Pa=x(Co,{baseStyle:{w:5,h:5,strokeWidth:"2px"}}),vr=()=>{var c,w;const[t,n]=m.exports.useState(""),[o,s]=m.exports.useState(!1),a=wo(),{t:i}=j();let l=_o();const{register:h,formState:{errors:p},handleSubmit:S}=Be({resolver:dt(Na)});m.exports.useEffect(()=>{Fo(),l.pathname!=="/login"&&a("/login",{replace:!0})},[]);const d=I=>{n("");const f=new FormData;f.append("username",I.username),f.append("password",I.password),f.append("grant_type","password"),s(!0),O("/admin/token",{method:"post",body:f}).then(({access_token:y})=>{No(y),a("/")}).catch(y=>{n(y.response._data.detail)}).finally(s.bind(null,!1))};return r(N,{justifyContent:"space-between",minH:"100vh",p:"6",w:"full",children:[r(D,{w:"full",children:[e(_,{justifyContent:"end",w:"full",children:e(tn,{})}),e(_,{w:"full",justifyContent:"center",alignItems:"center",children:r(D,{w:"full",maxW:"340px",mt:"6",children:[r(N,{alignItems:"center",w:"full",children:[e(Fa,{}),e(u,{fontSize:"2xl",fontWeight:"semibold",children:i("login.loginYourAccount")}),e(u,{color:"gray.600",_dark:{color:"gray.400"},children:i("login.welcomeBack")})]}),e(D,{w:"full",maxW:"300px",m:"auto",pt:"4",children:e("form",{onSubmit:S(d),children:r(N,{mt:4,rowGap:2,children:[e(R,{children:e(Re,{w:"full",placeholder:i("username"),...h("username"),error:i((c=p==null?void 0:p.username)==null?void 0:c.message)})}),e(R,{children:e(Re,{w:"full",type:"password",placeholder:i("password"),...h("password"),error:i((w=p==null?void 0:p.password)==null?void 0:w.message)})}),t&&r(it,{status:"error",rounded:"md",children:[e(kt,{}),e(Wr,{children:t})]}),r(F,{isLoading:o,type:"submit",w:"full",colorScheme:"primary",children:[e(Pa,{marginRight:1}),i("login")]})]})})})]})})]}),e(en,{})]})},Wa=()=>O("/admin",{headers:{Authorization:`Bearer ${vt()}`}}),Oa=ko([{path:"/",element:e(Aa,{}),errorElement:e(vr,{}),loader:Wa},{path:"/login/",element:e(vr,{})}],{basename:"/"});function ja(){return e("main",{className:"p-8",children:e(vo,{router:Oa})})}B.extend(Io);B.extend(zo);B.extend(Do);B.extend(Eo);B.extend(Uo);qr(Ro.get()||"light");Lo.createRoot(document.getElementById("root")).render(e(Ft.StrictMode,{children:e(To,{theme:Mo,children:e(Ao,{client:Wt,children:e(ja,{})})})})); diff --git a/app/dashboard/build/assets/logo.2507bd68.svg b/app/dashboard/build/assets/logo.3890828c.svg similarity index 100% rename from app/dashboard/build/assets/logo.2507bd68.svg rename to app/dashboard/build/assets/logo.3890828c.svg diff --git a/app/dashboard/build/assets/vendor.8aa8dc93.js b/app/dashboard/build/assets/vendor.7a7a2a97.js similarity index 97% rename from app/dashboard/build/assets/vendor.8aa8dc93.js rename to app/dashboard/build/assets/vendor.7a7a2a97.js index 285649e8..5836eff4 100644 --- a/app/dashboard/build/assets/vendor.8aa8dc93.js +++ b/app/dashboard/build/assets/vendor.7a7a2a97.js @@ -1774,7 +1774,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em`,D=360,T="keydown",M="mousedown",O="focusin";function L(w,f){return(f||document).querySelector(w)}function x(w){w.preventDefault(),w.stopPropagation()}function b(w,f,m,E,S){w.add(f,T,function(y){m.indexOf(y.key)>=0&&(S&&x(y),E(y))})}var C=function(){function w(f){a(this,w),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex",cancelButton:!1,defaultColor:"#0cf"},this._events=new P,this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,this.setOptions(f)}return c(w,[{key:"setOptions",value:function(m){var E=this;if(!m)return;var S=this.settings;function y(H,X,Q){for(var re in H)Q&&Q.indexOf(re)>=0||(X[re]=H[re])}if(m instanceof HTMLElement)S.parent=m;else{S.parent&&m.parent&&S.parent!==m.parent&&(this._events.remove(S.parent),this._popupInited=!1),y(m,S),m.onChange&&(this.onChange=m.onChange),m.onDone&&(this.onDone=m.onDone),m.onOpen&&(this.onOpen=m.onOpen),m.onClose&&(this.onClose=m.onClose);var _=m.color||m.colour;_&&this._setColor(_)}var $=S.parent;if($&&S.popup&&!this._popupInited){var V=function(X){return E.openHandler(X)};this._events.add($,"click",V),b(this._events,$,[" ","Spacebar","Enter"],V),this._popupInited=!0}else m.parent&&!S.popup&&this.show()}},{key:"openHandler",value:function(m){if(this.show()){m&&m.preventDefault(),this.settings.parent.style.pointerEvents="none";var E=m&&m.type===T?this._domEdit:this.domElement;setTimeout(function(){return E.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(m){var E=m&&m.type,S=!1;if(!m)S=!0;else if(E===M||E===O){var y=(this.__containedEvent||0)+100;m.timeStamp>y&&(S=!0)}else x(m),S=!0;S&&this.hide()&&(this.settings.parent.style.pointerEvents="",E!==M&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(m,E){this.closeHandler(),this.setOptions(m),E&&this.openHandler()}},{key:"setColor",value:function(m,E){this._setColor(m,{silent:E})}},{key:"_setColor",value:function(m,E){if(typeof m=="string"&&(m=m.trim()),!!m){E=E||{};var S=void 0;try{S=new I(m)}catch(_){if(E.failSilently)return;throw _}if(!this.settings.alpha){var y=S.hsla;y[3]=1,S.hsla=y}this.colour=this.color=S,this._setHSLA(null,null,null,null,E)}}},{key:"setColour",value:function(m,E){this.setColor(m,E)}},{key:"show",value:function(){var m=this.settings.parent;if(!m)return!1;if(this.domElement){var E=this._toggleDOM(!0);return this._setPosition(),E}var S=this.settings.template||'
',y=F(S);return this.domElement=y,this._domH=L(".picker_hue",y),this._domSL=L(".picker_sl",y),this._domA=L(".picker_alpha",y),this._domEdit=L(".picker_editor input",y),this._domSample=L(".picker_sample",y),this._domOkay=L(".picker_done button",y),this._domCancel=L(".picker_cancel button",y),y.classList.add("layout_"+this.settings.layout),this.settings.alpha||y.classList.add("no_alpha"),this.settings.editor||y.classList.add("no_editor"),this.settings.cancelButton||y.classList.add("no_cancel"),this._ifPopup(function(){return y.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor(this.settings.defaultColor),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"destroy",value:function(){this._events.destroy(),this.domElement&&this.settings.parent.removeChild(this.domElement)}},{key:"_bindEvents",value:function(){var m=this,E=this,S=this.domElement,y=this._events;function _(H,X,Q){y.add(H,X,Q)}_(S,"click",function(H){return H.preventDefault()}),B(y,this._domH,function(H,X){return E._setHSLA(H)}),B(y,this._domSL,function(H,X){return E._setHSLA(null,H,1-X)}),this.settings.alpha&&B(y,this._domA,function(H,X){return E._setHSLA(null,null,null,1-X)});var $=this._domEdit;_($,"input",function(H){E._setColor(this.value,{fromEditor:!0,failSilently:!0})}),_($,"focus",function(H){var X=this;X.selectionStart===X.selectionEnd&&X.select()}),this._ifPopup(function(){var H=function(re){return m.closeHandler(re)};_(window,M,H),_(window,O,H),b(y,S,["Esc","Escape"],H);var X=function(re){m.__containedEvent=re.timeStamp};_(S,M,X),_(S,O,X),_(m._domCancel,"click",H)});var V=function(X){m._ifPopup(function(){return m.closeHandler(X)}),m.onDone&&m.onDone(m.colour)};_(this._domOkay,"click",V),b(y,S,["Enter"],V)}},{key:"_setPosition",value:function(){var m=this.settings.parent,E=this.domElement;m!==E.parentNode&&m.appendChild(E),this._ifPopup(function(S){getComputedStyle(m).position==="static"&&(m.style.position="relative");var y=S===!0?"popup_right":"popup_"+S;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(_){_===y?E.classList.add(_):E.classList.remove(_)}),E.classList.add(y)})}},{key:"_setHSLA",value:function(m,E,S,y,_){_=_||{};var $=this.colour,V=$.hsla;[m,E,S,y].forEach(function(H,X){(H||H===0)&&(V[X]=H)}),$.hsla=V,this._updateUI(_),this.onChange&&!_.silent&&this.onChange($)}},{key:"_updateUI",value:function(m){if(!this.domElement)return;m=m||{};var E=this.colour,S=E.hsla,y="hsl("+S[0]*D+", 100%, 50%)",_=E.hslString,$=E.hslaString,V=this._domH,H=this._domSL,X=this._domA,Q=L(".picker_selector",V),re=L(".picker_selector",H),ue=L(".picker_selector",X);function le(fe,Ce,Pe){Ce.style.left=Pe*100+"%"}function ve(fe,Ce,Pe){Ce.style.top=Pe*100+"%"}le(V,Q,S[0]),this._domSL.style.backgroundColor=this._domH.style.color=y,le(H,re,S[1]),ve(H,re,1-S[2]),H.style.color=_,ve(X,ue,1-S[3]);var z=_,Z=z.replace("hsl","hsla").replace(")",", 0)"),ce="linear-gradient("+[z,Z]+")";if(this._domA.style.background=ce+", "+N,!m.fromEditor){var Y=this.settings.editorFormat,ie=this.settings.alpha,he=void 0;switch(Y){case"rgb":he=E.printRGB(ie);break;case"hsl":he=E.printHSL(ie);break;default:he=E.printHex(ie)}this._domEdit.value=he}this._domSample.style.color=$}},{key:"_ifPopup",value:function(m,E){this.settings.parent&&this.settings.popup?m&&m(this.settings.popup):E&&E()}},{key:"_toggleDOM",value:function(m){var E=this.domElement;if(!E)return!1;var S=m?"":"none",y=E.style.display!==S;return y&&(E.style.display=S),y}}]),w}(),g=document.createElement("style");return g.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(g),C.StyleElement=g,C}()},1262:function(o,a,c){function u($e){return(u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Be){return typeof Be}:function(Be){return Be&&typeof Symbol=="function"&&Be.constructor===Symbol&&Be!==Symbol.prototype?"symbol":typeof Be})($e)}function d($e){var Be=P();return function(){var tt,xt=B($e),xt=(tt=Be?(tt=B(this).constructor,Reflect.construct(xt,arguments,tt)):xt.apply(this,arguments),this);if(tt&&(u(tt)==="object"||typeof tt=="function"))return tt;if(tt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");if(xt!==void 0)return xt;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}}function p($e){var Be=typeof Map=="function"?new Map:void 0;return function(tt){if(tt===null||Function.toString.call(tt).indexOf("[native code]")===-1)return tt;if(typeof tt!="function")throw new TypeError("Super expression must either be null or a function");if(Be!==void 0){if(Be.has(tt))return Be.get(tt);Be.set(tt,xt)}function xt(){return I(tt,arguments,B(this).constructor)}return xt.prototype=Object.create(tt.prototype,{constructor:{value:xt,enumerable:!1,writable:!0,configurable:!0}}),F(xt,tt)}($e)}function I($e,Be,tt){return(I=P()?Reflect.construct.bind():function(xt,_t,$t){var De=[null];return De.push.apply(De,_t),_t=new(Function.bind.apply(xt,De)),$t&&F(_t,$t.prototype),_t}).apply(null,arguments)}function P(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function F($e,Be){return(F=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,xt){return tt.__proto__=xt,tt})($e,Be)}function B($e){return(B=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Be){return Be.__proto__||Object.getPrototypeOf(Be)})($e)}c.d(a,{K:function(){return yt}});var N=function($e){var Be=xt;if(typeof $e!="function"&&$e!==null)throw new TypeError("Super expression must either be null or a function");Be.prototype=Object.create($e&&$e.prototype,{constructor:{value:Be,writable:!0,configurable:!0}}),Object.defineProperty(Be,"prototype",{writable:!1}),$e&&F(Be,$e);var tt=d(xt);function xt(_t,$t){if(this instanceof xt)return(_t=tt.call(this,_t+" at position "+$t)).position=$t,_t;throw new TypeError("Cannot call a class as a function")}return Be=xt,Object.defineProperty(Be,"prototype",{writable:!1}),Be}(p(Error)),D=92,T=47,M=42,O=123,L=125,x=91,b=93,C=40,g=41,w=32,f=10,m=9,E=13,S=8,y=12,_=34,$=43,V=45,H=39,X=48,Q=49,re=57,ue=44,le=46,ve=58,z=59,Z=65,ce=97,Y=69,ie=101,he=70,fe=102,Ce=160,Pe=8192,we=8202,be=8239,ee=8287,se=12288,ge=8220,U=8221,q=8216,oe=8217,xe=96,ke=180;function Te($e){return X<=$e&&$e<=re||Z<=$e&&$e<=he||ce<=$e&&$e<=fe}function Ne($e){return X<=$e&&$e<=re}var Ge=/^[,:[\]{}()\n]$/;function nt($e){return He.test($e)||$e&&ot($e.charCodeAt(0))}var He=/^[[{\w-]$/;function et($e){return $e===w||$e===f||$e===m||$e===E}function ot($e){return lt($e)||ht($e)}function lt($e){return $e===_||$e===ge||$e===U}function Qe($e){return $e===_}function ht($e){return $e===H||$e===q||$e===oe||$e===xe||$e===ke}function dt($e,Be,tt){return tt=2=$e.length)return tt;throw new N("Unexpected character "+JSON.stringify($e[Be]),Be);function De(){Ze();var Le=function(){if($e.charCodeAt(Be)!==O)return!1;tt+="{",Be++,Ze();for(var We=!0;Be<$e.length&&$e.charCodeAt(Be)!==L;){if(We?We=!1:(gt(ue)||(tt=ze(tt,",")),Ze()),!(wt()||rn())){$e.charCodeAt(Be)===L||$e.charCodeAt(Be)===O||$e.charCodeAt(Be)===b||$e.charCodeAt(Be)===x||$e[Be]===void 0?tt=dt(tt,","):function(){throw new N("Object key expected",Be)}();break}Ze();var rt=gt(ve);rt||(nt($e[Be])?tt=ze(tt,":"):je()),De()||(rt?function(){throw new N("Object value expected",Be)}:je)()}return $e.charCodeAt(Be)===L?(tt+="}",Be++):tt=ze(tt,"}"),!0}()||function(){if($e.charCodeAt(Be)!==x)return!1;tt+="[",Be++,Ze();for(var We=!0;Be<$e.length&&$e.charCodeAt(Be)!==b;)if(We?We=!1:gt(ue)||(tt=ze(tt,",")),!De()){tt=dt(tt,",");break}return $e.charCodeAt(Be)===b?(tt+="]",Be++):tt=ze(tt,"]"),!0}()||wt()||function(){var We=Be;if($e.charCodeAt(Be)===V&&(Be++,Dr(We)))return!0;if($e.charCodeAt(Be)===X)Be++;else if(function(rt){return Q<=rt&&rt<=re}($e.charCodeAt(Be)))for(Be++;Ne($e.charCodeAt(Be));)Be++;if($e.charCodeAt(Be)===le){if(Be++,Dr(We))return!0;for(;Ne($e.charCodeAt(Be));)Be++}if($e.charCodeAt(Be)===ie||$e.charCodeAt(Be)===Y){if(Be++,$e.charCodeAt(Be)!==V&&$e.charCodeAt(Be)!==$||Be++,Dr(We))return!0;for(;Ne($e.charCodeAt(Be));)Be++}return We=$e.length)return tt+=$e.slice(Le,Be)+"0",1;Pn(Le)}function je(){throw new N("Colon expected",Be)}}},894:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},7171:function(o){o.exports=JSON.parse('{"id":"http://json-schema.org/draft-04/schema#","$schema":"http://json-schema.org/draft-04/schema#","description":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"positiveInteger":{"type":"integer","minimum":0},"positiveIntegerDefault0":{"allOf":[{"$ref":"#/definitions/positiveInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true}},"type":"object","properties":{"id":{"type":"string"},"$schema":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"multipleOf":{"type":"number","minimum":0,"exclusiveMinimum":true},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"boolean","default":false},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"boolean","default":false},"maxLength":{"$ref":"#/definitions/positiveInteger"},"minLength":{"$ref":"#/definitions/positiveIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/positiveInteger"},"minItems":{"$ref":"#/definitions/positiveIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"maxProperties":{"$ref":"#/definitions/positiveInteger"},"minProperties":{"$ref":"#/definitions/positiveIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"dependencies":{"exclusiveMaximum":["maximum"],"exclusiveMinimum":["minimum"]},"default":{}}')},6273:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},6680:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},i={},n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,{a}),a},n.d=function(o,a){for(var c in a)n.o(a,c)&&!n.o(o,c)&&Object.defineProperty(o,c,{enumerable:!0,get:a[c]})},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.nmd=function(o){return o.paths=[],o.children||(o.children=[]),o},n(3161);function n(o){var a=i[o];return a!==void 0||(a=i[o]={id:o,loaded:!1,exports:{}},r[o].call(a.exports,a,a.exports,n),a.loaded=!0),a.exports}var r,i})})(R3);const O_e=Gh(R3.exports);function vM(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function M_e(e,t){kt(2,arguments);var n=Dt(e),r=Dt(t),i=vM(n,r),o=Math.abs(_h(n,r));n.setDate(n.getDate()-i*o);var a=Number(vM(n,r)===-i),c=i*(o-a);return c===0?0:c}const N1e="modulepreload",F1e=function(e){return"/dashboard/"+e},yM={},B1e=function(t,n,r){if(!n||n.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(n.map(o=>{if(o=F1e(o),o in yM)return;yM[o]=!0;const a=o.endsWith(".css"),c=a?'[rel="stylesheet"]':"";if(!!r)for(let p=i.length-1;p>=0;p--){const I=i[p];if(I.href===o&&(!a||I.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const d=document.createElement("link");if(d.rel=a?"stylesheet":N1e,a||(d.as="script",d.crossOrigin=""),d.href=o,document.head.appendChild(d),a)return new Promise((p,I)=>{d.addEventListener("load",p),d.addEventListener("error",()=>I(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t())};class L_e extends de.exports.PureComponent{constructor(t){super(t),this.$=vt.createRef(),this._=vt.createRef()}render(){return Ae("span",{ref:this.$,children:Ae("a",{...this.props,ref:this._,children:this.props.children})})}componentDidMount(){this.paint()}getSnapshotBeforeUpdate(){return this.reset(),null}componentDidUpdate(){this.paint()}componentWillUnmount(){this.reset()}paint(){const t=this.$.current.appendChild(document.createElement("span"));B1e(()=>import("./buttons.esm.a2fb4f3c.js"),[]).then(({render:n})=>{this._.current!=null&&n(t.appendChild(this._.current),function(r){try{t.parentNode.replaceChild(r,t)}catch{}})})}reset(){this.$.current.replaceChild(this._.current,this.$.current.lastChild)}}var bM=function(e,t,n){if(e&&"reportValidity"in e){var r=Et(n,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},O3=function(e,t){var n=function(i){var o=t.fields[i];o&&o.ref&&"reportValidity"in o.ref?bM(o.ref,i,e):o.refs&&o.refs.forEach(function(a){return bM(a,i,e)})};for(var r in t.fields)n(r)},W1e=function(e,t){t.shouldUseNativeValidation&&O3(e,t);var n={};for(var r in e){var i=Et(t.fields,r);On(n,r,Object.assign(e[r],{ref:i&&i.ref}))}return n},H1e=function(e,t){for(var n={};e.length;){var r=e[0],i=r.code,o=r.message,a=r.path.join(".");if(!n[a])if("unionErrors"in r){var c=r.unionErrors[0].errors[0];n[a]={message:c.message,type:c.code}}else n[a]={message:o,type:i};if("unionErrors"in r&&r.unionErrors.forEach(function(p){return p.errors.forEach(function(I){return e.push(I)})}),t){var u=n[a].types,d=u&&u[r.code];n[a]=w3(a,t,n,i,d?[].concat(d,r.message):r.message)}e.shift()}return n},D_e=function(e,t,n){return n===void 0&&(n={}),function(r,i,o){try{return Promise.resolve(function(a,c){try{var u=Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](r,t)).then(function(d){return o.shouldUseNativeValidation&&O3({},o),{errors:{},values:n.rawValues?r:d}})}catch(d){return c(d)}return u&&u.then?u.then(void 0,c):u}(0,function(a){return{values:{},errors:a.isEmpty?{}:W1e(H1e(a.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)}}))}catch(a){return Promise.reject(a)}}},vn;(function(e){e.assertEqual=i=>i;function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{const o={};for(const a of i)o[a]=a;return o},e.getValidEnumValues=i=>{const o=e.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),a={};for(const c of o)a[c]=i[c];return e.objectValues(a)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const o=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&o.push(a);return o},e.find=(i,o)=>{for(const a of i)if(o(a))return a},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function r(i,o=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(vn||(vn={}));var CS;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(CS||(CS={}));const Ot=vn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ls=e=>{switch(typeof e){case"undefined":return Ot.undefined;case"string":return Ot.string;case"number":return isNaN(e)?Ot.nan:Ot.number;case"boolean":return Ot.boolean;case"function":return Ot.function;case"bigint":return Ot.bigint;case"symbol":return Ot.symbol;case"object":return Array.isArray(e)?Ot.array:e===null?Ot.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Ot.promise:typeof Map<"u"&&e instanceof Map?Ot.map:typeof Set<"u"&&e instanceof Set?Ot.set:typeof Date<"u"&&e instanceof Date?Ot.date:Ot.object;default:return Ot.unknown}},St=vn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),z1e=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class Co extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},i=o=>{for(const a of o.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let c=r,u=0;for(;un.message){const n={},r=[];for(const i of this.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}Co.create=e=>new Co(e);const Rh=(e,t)=>{let n;switch(e.code){case St.invalid_type:e.received===Ot.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case St.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,vn.jsonStringifyReplacer)}`;break;case St.unrecognized_keys:n=`Unrecognized key(s) in object: ${vn.joinValues(e.keys,", ")}`;break;case St.invalid_union:n="Invalid input";break;case St.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${vn.joinValues(e.options)}`;break;case St.invalid_enum_value:n=`Invalid enum value. Expected ${vn.joinValues(e.options)}, received '${e.received}'`;break;case St.invalid_arguments:n="Invalid function arguments";break;case St.invalid_return_type:n="Invalid function return type";break;case St.invalid_date:n="Invalid date";break;case St.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:vn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case St.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case St.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case St.custom:n="Invalid input";break;case St.invalid_intersection_types:n="Intersection results could not be merged";break;case St.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case St.not_finite:n="Number must be finite";break;default:n=t.defaultError,vn.assertNever(e)}return{message:n}};let M3=Rh;function V1e(e){M3=e}function Fv(){return M3}const Bv=e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};let c="";const u=r.filter(d=>!!d).slice().reverse();for(const d of u)c=d(a,{data:t,defaultError:c}).message;return{...i,path:o,message:i.message||c}},j1e=[];function Lt(e,t){const n=Bv({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,Fv(),Rh].filter(r=>!!r)});e.common.issues.push(n)}class Qr{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const i of n){if(i.status==="aborted")return Ut;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const i of n)r.push({key:await i.key,value:await i.value});return Qr.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const i of n){const{key:o,value:a}=i;if(o.status==="aborted"||a.status==="aborted")return Ut;o.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[o.value]=a.value)}return{status:t.value,value:r}}}const Ut=Object.freeze({status:"aborted"}),L3=e=>({status:"dirty",value:e}),ci=e=>({status:"valid",value:e}),SS=e=>e.status==="aborted",AS=e=>e.status==="dirty",Oh=e=>e.status==="valid",Wv=e=>typeof Promise<"u"&&e instanceof Promise;var zt;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(zt||(zt={}));class ia{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const xM=(e,t)=>{if(Oh(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new Co(e.common.issues);return this._error=n,this._error}}};function Kt(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(a,c)=>a.code!=="invalid_type"?{message:c.defaultError}:typeof c.data>"u"?{message:r!=null?r:c.defaultError}:{message:n!=null?n:c.defaultError},description:i}}class nn{constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return ls(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ls(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Qr,ctx:{common:t.parent.common,data:t.data,parsedType:ls(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Wv(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const i={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ls(t)},o=this._parseSync({data:t,path:i.path,parent:i});return xM(i,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ls(t)},i=this._parse({data:t,path:r.path,parent:r}),o=await(Wv(i)?i:Promise.resolve(i));return xM(r,o)}refine(t,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,o)=>{const a=t(i),c=()=>o.addIssue({code:St.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(c(),!1)):a?!0:(c(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new _o({schema:this,typeName:Zt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Ea.create(this,this._def)}nullable(){return kl.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return So.create(this,this._def)}promise(){return lu.create(this,this._def)}or(t){return $h.create([this,t],this._def)}and(t){return Nh.create(this,t,this._def)}transform(t){return new _o({...Kt(this._def),schema:this,typeName:Zt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new zh({...Kt(this._def),innerType:this,defaultValue:n,typeName:Zt.ZodDefault})}brand(){return new $3({typeName:Zt.ZodBranded,type:this,...Kt(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new jv({...Kt(this._def),innerType:this,catchValue:n,typeName:Zt.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return mf.create(this,t)}readonly(){return Yv.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const G1e=/^c[^\s-]{8,}$/i,Y1e=/^[a-z][a-z0-9]*$/,Z1e=/^[0-9A-HJKMNP-TV-Z]{26}$/,X1e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,U1e=/^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,K1e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Wx;const J1e=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,Q1e=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,q1e=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function eSe(e,t){return!!((t==="v4"||!t)&&J1e.test(e)||(t==="v6"||!t)&&Q1e.test(e))}class bo extends nn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Ot.string){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.string,received:o.parsedType}),Ut}const r=new Qr;let i;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(i=this._getOrReturnCtx(t,i),Lt(i,{code:St.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const a=t.data.length>o.value,c=t.data.lengtht.test(i),{validation:n,code:St.invalid_string,...zt.errToObj(r)})}_addCheck(t){return new bo({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...zt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...zt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...zt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...zt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...zt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...zt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...zt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...zt.errToObj(t)})}datetime(t){var n;return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...zt.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...zt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...zt.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...zt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...zt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...zt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...zt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...zt.errToObj(n)})}nonempty(t){return this.min(1,zt.errToObj(t))}trim(){return new bo({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new bo({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new bo({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new bo({checks:[],typeName:Zt.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...Kt(e)})};function tSe(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,o=parseInt(e.toFixed(i).replace(".","")),a=parseInt(t.toFixed(i).replace(".",""));return o%a/Math.pow(10,i)}class Ps extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Ot.number){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.number,received:o.parsedType}),Ut}let r;const i=new Qr;for(const o of this._def.checks)o.kind==="int"?vn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?tSe(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_finite,message:o.message}),i.dirty()):vn.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,zt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,zt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,zt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,zt.toString(n))}setLimit(t,n,r,i){return new Ps({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:zt.toString(i)}]})}_addCheck(t){return new Ps({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:zt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:zt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:zt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:zt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:zt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:zt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:zt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:zt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:zt.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&vn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew Ps({checks:[],typeName:Zt.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...Kt(e)});class Rs extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==Ot.bigint){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.bigint,received:o.parsedType}),Ut}let r;const i=new Qr;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):vn.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,zt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,zt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,zt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,zt.toString(n))}setLimit(t,n,r,i){return new Rs({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:zt.toString(i)}]})}_addCheck(t){return new Rs({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:zt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:zt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:zt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:zt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:zt.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new Rs({checks:[],typeName:Zt.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...Kt(e)})};class Mh extends nn{_parse(t){if(this._def.coerce&&(t.data=Boolean(t.data)),this._getType(t)!==Ot.boolean){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.boolean,received:r.parsedType}),Ut}return ci(t.data)}}Mh.create=e=>new Mh({typeName:Zt.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...Kt(e)});class Al extends nn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Ot.date){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.date,received:o.parsedType}),Ut}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_date}),Ut}const r=new Qr;let i;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(i=this._getOrReturnCtx(t,i),Lt(i,{code:St.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):vn.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Al({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:zt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:zt.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Al({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:Zt.ZodDate,...Kt(e)});class Hv extends nn{_parse(t){if(this._getType(t)!==Ot.symbol){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.symbol,received:r.parsedType}),Ut}return ci(t.data)}}Hv.create=e=>new Hv({typeName:Zt.ZodSymbol,...Kt(e)});class Lh extends nn{_parse(t){if(this._getType(t)!==Ot.undefined){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.undefined,received:r.parsedType}),Ut}return ci(t.data)}}Lh.create=e=>new Lh({typeName:Zt.ZodUndefined,...Kt(e)});class Dh extends nn{_parse(t){if(this._getType(t)!==Ot.null){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.null,received:r.parsedType}),Ut}return ci(t.data)}}Dh.create=e=>new Dh({typeName:Zt.ZodNull,...Kt(e)});class su extends nn{constructor(){super(...arguments),this._any=!0}_parse(t){return ci(t.data)}}su.create=e=>new su({typeName:Zt.ZodAny,...Kt(e)});class fl extends nn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ci(t.data)}}fl.create=e=>new fl({typeName:Zt.ZodUnknown,...Kt(e)});class Fa extends nn{_parse(t){const n=this._getOrReturnCtx(t);return Lt(n,{code:St.invalid_type,expected:Ot.never,received:n.parsedType}),Ut}}Fa.create=e=>new Fa({typeName:Zt.ZodNever,...Kt(e)});class zv extends nn{_parse(t){if(this._getType(t)!==Ot.undefined){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.void,received:r.parsedType}),Ut}return ci(t.data)}}zv.create=e=>new zv({typeName:Zt.ZodVoid,...Kt(e)});class So extends nn{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Ot.array)return Lt(n,{code:St.invalid_type,expected:Ot.array,received:n.parsedType}),Ut;if(i.exactLength!==null){const a=n.data.length>i.exactLength.value,c=n.data.lengthi.maxLength.value&&(Lt(n,{code:St.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,c)=>i.type._parseAsync(new ia(n,a,n.path,c)))).then(a=>Qr.mergeArray(r,a));const o=[...n.data].map((a,c)=>i.type._parseSync(new ia(n,a,n.path,c)));return Qr.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new So({...this._def,minLength:{value:t,message:zt.toString(n)}})}max(t,n){return new So({...this._def,maxLength:{value:t,message:zt.toString(n)}})}length(t,n){return new So({...this._def,exactLength:{value:t,message:zt.toString(n)}})}nonempty(t){return this.min(1,t)}}So.create=(e,t)=>new So({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Zt.ZodArray,...Kt(t)});function Ql(e){if(e instanceof Un){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Ea.create(Ql(r))}return new Un({...e._def,shape:()=>t})}else return e instanceof So?new So({...e._def,type:Ql(e.element)}):e instanceof Ea?Ea.create(Ql(e.unwrap())):e instanceof kl?kl.create(Ql(e.unwrap())):e instanceof oa?oa.create(e.items.map(t=>Ql(t))):e}class Un extends nn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=vn.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==Ot.object){const d=this._getOrReturnCtx(t);return Lt(d,{code:St.invalid_type,expected:Ot.object,received:d.parsedType}),Ut}const{status:r,ctx:i}=this._processInputParams(t),{shape:o,keys:a}=this._getCached(),c=[];if(!(this._def.catchall instanceof Fa&&this._def.unknownKeys==="strip"))for(const d in i.data)a.includes(d)||c.push(d);const u=[];for(const d of a){const p=o[d],I=i.data[d];u.push({key:{status:"valid",value:d},value:p._parse(new ia(i,I,i.path,d)),alwaysSet:d in i.data})}if(this._def.catchall instanceof Fa){const d=this._def.unknownKeys;if(d==="passthrough")for(const p of c)u.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(d==="strict")c.length>0&&(Lt(i,{code:St.unrecognized_keys,keys:c}),r.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const p of c){const I=i.data[p];u.push({key:{status:"valid",value:p},value:d._parse(new ia(i,I,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const d=[];for(const p of u){const I=await p.key;d.push({key:I,value:await p.value,alwaysSet:p.alwaysSet})}return d}).then(d=>Qr.mergeObjectSync(r,d)):Qr.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return zt.errToObj,new Un({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var i,o,a,c;const u=(a=(o=(i=this._def).errorMap)===null||o===void 0?void 0:o.call(i,n,r).message)!==null&&a!==void 0?a:r.defaultError;return n.code==="unrecognized_keys"?{message:(c=zt.errToObj(t).message)!==null&&c!==void 0?c:u}:{message:u}}}:{}})}strip(){return new Un({...this._def,unknownKeys:"strip"})}passthrough(){return new Un({...this._def,unknownKeys:"passthrough"})}extend(t){return new Un({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Un({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Zt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Un({...this._def,catchall:t})}pick(t){const n={};return vn.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Un({...this._def,shape:()=>n})}omit(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Un({...this._def,shape:()=>n})}deepPartial(){return Ql(this)}partial(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{const i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}),new Un({...this._def,shape:()=>n})}required(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Ea;)o=o._def.innerType;n[r]=o}}),new Un({...this._def,shape:()=>n})}keyof(){return D3(vn.objectKeys(this.shape))}}Un.create=(e,t)=>new Un({shape:()=>e,unknownKeys:"strip",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});Un.strictCreate=(e,t)=>new Un({shape:()=>e,unknownKeys:"strict",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});Un.lazycreate=(e,t)=>new Un({shape:e,unknownKeys:"strip",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});class $h extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function i(o){for(const c of o)if(c.result.status==="valid")return c.result;for(const c of o)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;const a=o.map(c=>new Co(c.ctx.common.issues));return Lt(n,{code:St.invalid_union,unionErrors:a}),Ut}if(n.common.async)return Promise.all(r.map(async o=>{const a={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let o;const a=[];for(const u of r){const d={...n,common:{...n.common,issues:[]},parent:null},p=u._parseSync({data:n.data,path:n.path,parent:d});if(p.status==="valid")return p;p.status==="dirty"&&!o&&(o={result:p,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const c=a.map(u=>new Co(u));return Lt(n,{code:St.invalid_union,unionErrors:c}),Ut}}get options(){return this._def.options}}$h.create=(e,t)=>new $h({options:e,typeName:Zt.ZodUnion,...Kt(t)});const Tg=e=>e instanceof Bh?Tg(e.schema):e instanceof _o?Tg(e.innerType()):e instanceof Wh?[e.value]:e instanceof Os?e.options:e instanceof Hh?Object.keys(e.enum):e instanceof zh?Tg(e._def.innerType):e instanceof Lh?[void 0]:e instanceof Dh?[null]:null;class Ob extends nn{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.object)return Lt(n,{code:St.invalid_type,expected:Ot.object,received:n.parsedType}),Ut;const r=this.discriminator,i=n.data[r],o=this.optionsMap.get(i);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(Lt(n,{code:St.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Ut)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const i=new Map;for(const o of n){const a=Tg(o.shape[t]);if(!a)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const c of a){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,o)}}return new Ob({typeName:Zt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Kt(r)})}}function IS(e,t){const n=ls(e),r=ls(t);if(e===t)return{valid:!0,data:e};if(n===Ot.object&&r===Ot.object){const i=vn.objectKeys(t),o=vn.objectKeys(e).filter(c=>i.indexOf(c)!==-1),a={...e,...t};for(const c of o){const u=IS(e[c],t[c]);if(!u.valid)return{valid:!1};a[c]=u.data}return{valid:!0,data:a}}else if(n===Ot.array&&r===Ot.array){if(e.length!==t.length)return{valid:!1};const i=[];for(let o=0;o{if(SS(o)||SS(a))return Ut;const c=IS(o.value,a.value);return c.valid?((AS(o)||AS(a))&&n.dirty(),{status:n.value,value:c.data}):(Lt(r,{code:St.invalid_intersection_types}),Ut)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,a])=>i(o,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Nh.create=(e,t,n)=>new Nh({left:e,right:t,typeName:Zt.ZodIntersection,...Kt(n)});class oa extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.array)return Lt(r,{code:St.invalid_type,expected:Ot.array,received:r.parsedType}),Ut;if(r.data.lengththis._def.items.length&&(Lt(r,{code:St.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((a,c)=>{const u=this._def.items[c]||this._def.rest;return u?u._parse(new ia(r,a,r.path,c)):null}).filter(a=>!!a);return r.common.async?Promise.all(o).then(a=>Qr.mergeArray(n,a)):Qr.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new oa({...this._def,rest:t})}}oa.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new oa({items:e,typeName:Zt.ZodTuple,rest:null,...Kt(t)})};class Fh extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.object)return Lt(r,{code:St.invalid_type,expected:Ot.object,received:r.parsedType}),Ut;const i=[],o=this._def.keyType,a=this._def.valueType;for(const c in r.data)i.push({key:o._parse(new ia(r,c,r.path,c)),value:a._parse(new ia(r,r.data[c],r.path,c))});return r.common.async?Qr.mergeObjectAsync(n,i):Qr.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof nn?new Fh({keyType:t,valueType:n,typeName:Zt.ZodRecord,...Kt(r)}):new Fh({keyType:bo.create(),valueType:t,typeName:Zt.ZodRecord,...Kt(n)})}}class Vv extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.map)return Lt(r,{code:St.invalid_type,expected:Ot.map,received:r.parsedType}),Ut;const i=this._def.keyType,o=this._def.valueType,a=[...r.data.entries()].map(([c,u],d)=>({key:i._parse(new ia(r,c,r.path,[d,"key"])),value:o._parse(new ia(r,u,r.path,[d,"value"]))}));if(r.common.async){const c=new Map;return Promise.resolve().then(async()=>{for(const u of a){const d=await u.key,p=await u.value;if(d.status==="aborted"||p.status==="aborted")return Ut;(d.status==="dirty"||p.status==="dirty")&&n.dirty(),c.set(d.value,p.value)}return{status:n.value,value:c}})}else{const c=new Map;for(const u of a){const d=u.key,p=u.value;if(d.status==="aborted"||p.status==="aborted")return Ut;(d.status==="dirty"||p.status==="dirty")&&n.dirty(),c.set(d.value,p.value)}return{status:n.value,value:c}}}}Vv.create=(e,t,n)=>new Vv({valueType:t,keyType:e,typeName:Zt.ZodMap,...Kt(n)});class Il extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.set)return Lt(r,{code:St.invalid_type,expected:Ot.set,received:r.parsedType}),Ut;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Lt(r,{code:St.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const o=this._def.valueType;function a(u){const d=new Set;for(const p of u){if(p.status==="aborted")return Ut;p.status==="dirty"&&n.dirty(),d.add(p.value)}return{status:n.value,value:d}}const c=[...r.data.values()].map((u,d)=>o._parse(new ia(r,u,r.path,d)));return r.common.async?Promise.all(c).then(u=>a(u)):a(c)}min(t,n){return new Il({...this._def,minSize:{value:t,message:zt.toString(n)}})}max(t,n){return new Il({...this._def,maxSize:{value:t,message:zt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Il.create=(e,t)=>new Il({valueType:e,minSize:null,maxSize:null,typeName:Zt.ZodSet,...Kt(t)});class Wc extends nn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.function)return Lt(n,{code:St.invalid_type,expected:Ot.function,received:n.parsedType}),Ut;function r(c,u){return Bv({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Fv(),Rh].filter(d=>!!d),issueData:{code:St.invalid_arguments,argumentsError:u}})}function i(c,u){return Bv({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Fv(),Rh].filter(d=>!!d),issueData:{code:St.invalid_return_type,returnTypeError:u}})}const o={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof lu){const c=this;return ci(async function(...u){const d=new Co([]),p=await c._def.args.parseAsync(u,o).catch(F=>{throw d.addIssue(r(u,F)),d}),I=await Reflect.apply(a,this,p);return await c._def.returns._def.type.parseAsync(I,o).catch(F=>{throw d.addIssue(i(I,F)),d})})}else{const c=this;return ci(function(...u){const d=c._def.args.safeParse(u,o);if(!d.success)throw new Co([r(u,d.error)]);const p=Reflect.apply(a,this,d.data),I=c._def.returns.safeParse(p,o);if(!I.success)throw new Co([i(p,I.error)]);return I.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new Wc({...this._def,args:oa.create(t).rest(fl.create())})}returns(t){return new Wc({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new Wc({args:t||oa.create([]).rest(fl.create()),returns:n||fl.create(),typeName:Zt.ZodFunction,...Kt(r)})}}class Bh extends nn{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}Bh.create=(e,t)=>new Bh({getter:e,typeName:Zt.ZodLazy,...Kt(t)});class Wh extends nn{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return Lt(n,{received:n.data,code:St.invalid_literal,expected:this._def.value}),Ut}return{status:"valid",value:t.data}}get value(){return this._def.value}}Wh.create=(e,t)=>new Wh({value:e,typeName:Zt.ZodLiteral,...Kt(t)});function D3(e,t){return new Os({values:e,typeName:Zt.ZodEnum,...Kt(t)})}class Os extends nn{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return Lt(n,{expected:vn.joinValues(r),received:n.parsedType,code:St.invalid_type}),Ut}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return Lt(n,{received:n.data,code:St.invalid_enum_value,options:r}),Ut}return ci(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return Os.create(t)}exclude(t){return Os.create(this.options.filter(n=>!t.includes(n)))}}Os.create=D3;class Hh extends nn{_parse(t){const n=vn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Ot.string&&r.parsedType!==Ot.number){const i=vn.objectValues(n);return Lt(r,{expected:vn.joinValues(i),received:r.parsedType,code:St.invalid_type}),Ut}if(n.indexOf(t.data)===-1){const i=vn.objectValues(n);return Lt(r,{received:r.data,code:St.invalid_enum_value,options:i}),Ut}return ci(t.data)}get enum(){return this._def.values}}Hh.create=(e,t)=>new Hh({values:e,typeName:Zt.ZodNativeEnum,...Kt(t)});class lu extends nn{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.promise&&n.common.async===!1)return Lt(n,{code:St.invalid_type,expected:Ot.promise,received:n.parsedType}),Ut;const r=n.parsedType===Ot.promise?n.data:Promise.resolve(n.data);return ci(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}lu.create=(e,t)=>new lu({type:e,typeName:Zt.ZodPromise,...Kt(t)});class _o extends nn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Zt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:a=>{Lt(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){const a=i.transform(r.data,o);return r.common.issues.length?{status:"dirty",value:r.data}:r.common.async?Promise.resolve(a).then(c=>this._def.schema._parseAsync({data:c,path:r.path,parent:r})):this._def.schema._parseSync({data:a,path:r.path,parent:r})}if(i.type==="refinement"){const a=c=>{const u=i.refinement(c,o);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){const c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?Ut:(c.status==="dirty"&&n.dirty(),a(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?Ut:(c.status==="dirty"&&n.dirty(),a(c.value).then(()=>({status:n.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Oh(a))return a;const c=i.transform(a.value,o);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Oh(a)?Promise.resolve(i.transform(a.value,o)).then(c=>({status:n.value,value:c})):a);vn.assertNever(i)}}_o.create=(e,t,n)=>new _o({schema:e,typeName:Zt.ZodEffects,effect:t,...Kt(n)});_o.createWithPreprocess=(e,t,n)=>new _o({schema:t,effect:{type:"preprocess",transform:e},typeName:Zt.ZodEffects,...Kt(n)});class Ea extends nn{_parse(t){return this._getType(t)===Ot.undefined?ci(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Ea.create=(e,t)=>new Ea({innerType:e,typeName:Zt.ZodOptional,...Kt(t)});class kl extends nn{_parse(t){return this._getType(t)===Ot.null?ci(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}kl.create=(e,t)=>new kl({innerType:e,typeName:Zt.ZodNullable,...Kt(t)});class zh extends nn{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Ot.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}zh.create=(e,t)=>new zh({innerType:e,typeName:Zt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Kt(t)});class jv extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Wv(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Co(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Co(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}jv.create=(e,t)=>new jv({innerType:e,typeName:Zt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Kt(t)});class Gv extends nn{_parse(t){if(this._getType(t)!==Ot.nan){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.nan,received:r.parsedType}),Ut}return{status:"valid",value:t.data}}}Gv.create=e=>new Gv({typeName:Zt.ZodNaN,...Kt(e)});const nSe=Symbol("zod_brand");class $3 extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class mf extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?Ut:o.status==="dirty"?(n.dirty(),L3(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Ut:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new mf({in:t,out:n,typeName:Zt.ZodPipeline})}}class Yv extends nn{_parse(t){const n=this._def.innerType._parse(t);return Oh(n)&&(n.value=Object.freeze(n.value)),n}}Yv.create=(e,t)=>new Yv({innerType:e,typeName:Zt.ZodReadonly,...Kt(t)});const N3=(e,t={},n)=>e?su.create().superRefine((r,i)=>{var o,a;if(!e(r)){const c=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,u=(a=(o=c.fatal)!==null&&o!==void 0?o:n)!==null&&a!==void 0?a:!0,d=typeof c=="string"?{message:c}:c;i.addIssue({code:"custom",...d,fatal:u})}}):su.create(),rSe={object:Un.lazycreate};var Zt;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Zt||(Zt={}));const iSe=(e,t={message:`Input not instance of ${e.name}`})=>N3(n=>n instanceof e,t),F3=bo.create,B3=Ps.create,oSe=Gv.create,aSe=Rs.create,W3=Mh.create,sSe=Al.create,lSe=Hv.create,cSe=Lh.create,uSe=Dh.create,dSe=su.create,hSe=fl.create,fSe=Fa.create,pSe=zv.create,gSe=So.create,mSe=Un.create,vSe=Un.strictCreate,ySe=$h.create,bSe=Ob.create,xSe=Nh.create,wSe=oa.create,CSe=Fh.create,SSe=Vv.create,ASe=Il.create,ISe=Wc.create,kSe=Bh.create,_Se=Wh.create,ESe=Os.create,TSe=Hh.create,PSe=lu.create,wM=_o.create,RSe=Ea.create,OSe=kl.create,MSe=_o.createWithPreprocess,LSe=mf.create,DSe=()=>F3().optional(),$Se=()=>B3().optional(),NSe=()=>W3().optional(),FSe={string:e=>bo.create({...e,coerce:!0}),number:e=>Ps.create({...e,coerce:!0}),boolean:e=>Mh.create({...e,coerce:!0}),bigint:e=>Rs.create({...e,coerce:!0}),date:e=>Al.create({...e,coerce:!0})},BSe=Ut;var $_e=Object.freeze({__proto__:null,defaultErrorMap:Rh,setErrorMap:V1e,getErrorMap:Fv,makeIssue:Bv,EMPTY_PATH:j1e,addIssueToContext:Lt,ParseStatus:Qr,INVALID:Ut,DIRTY:L3,OK:ci,isAborted:SS,isDirty:AS,isValid:Oh,isAsync:Wv,get util(){return vn},get objectUtil(){return CS},ZodParsedType:Ot,getParsedType:ls,ZodType:nn,ZodString:bo,ZodNumber:Ps,ZodBigInt:Rs,ZodBoolean:Mh,ZodDate:Al,ZodSymbol:Hv,ZodUndefined:Lh,ZodNull:Dh,ZodAny:su,ZodUnknown:fl,ZodNever:Fa,ZodVoid:zv,ZodArray:So,ZodObject:Un,ZodUnion:$h,ZodDiscriminatedUnion:Ob,ZodIntersection:Nh,ZodTuple:oa,ZodRecord:Fh,ZodMap:Vv,ZodSet:Il,ZodFunction:Wc,ZodLazy:Bh,ZodLiteral:Wh,ZodEnum:Os,ZodNativeEnum:Hh,ZodPromise:lu,ZodEffects:_o,ZodTransformer:_o,ZodOptional:Ea,ZodNullable:kl,ZodDefault:zh,ZodCatch:jv,ZodNaN:Gv,BRAND:nSe,ZodBranded:$3,ZodPipeline:mf,ZodReadonly:Yv,custom:N3,Schema:nn,ZodSchema:nn,late:rSe,get ZodFirstPartyTypeKind(){return Zt},coerce:FSe,any:dSe,array:gSe,bigint:aSe,boolean:W3,date:sSe,discriminatedUnion:bSe,effect:wM,enum:ESe,function:ISe,instanceof:iSe,intersection:xSe,lazy:kSe,literal:_Se,map:SSe,nan:oSe,nativeEnum:TSe,never:fSe,null:uSe,nullable:OSe,number:B3,object:mSe,oboolean:NSe,onumber:$Se,optional:RSe,ostring:DSe,pipeline:LSe,preprocess:MSe,promise:PSe,record:CSe,set:ASe,strictObject:vSe,string:F3,symbol:lSe,transformer:wM,tuple:wSe,undefined:cSe,union:ySe,unknown:hSe,void:pSe,NEVER:BSe,ZodIssueCode:St,quotelessJson:z1e,ZodError:Co}),H3={},kS={exports:{}};/*! +]`)}else xt&&(tt=dt(tt,","));if(Be>=$e.length)return tt;throw new N("Unexpected character "+JSON.stringify($e[Be]),Be);function De(){Ze();var Le=function(){if($e.charCodeAt(Be)!==O)return!1;tt+="{",Be++,Ze();for(var We=!0;Be<$e.length&&$e.charCodeAt(Be)!==L;){if(We?We=!1:(gt(ue)||(tt=ze(tt,",")),Ze()),!(wt()||rn())){$e.charCodeAt(Be)===L||$e.charCodeAt(Be)===O||$e.charCodeAt(Be)===b||$e.charCodeAt(Be)===x||$e[Be]===void 0?tt=dt(tt,","):function(){throw new N("Object key expected",Be)}();break}Ze();var rt=gt(ve);rt||(nt($e[Be])?tt=ze(tt,":"):je()),De()||(rt?function(){throw new N("Object value expected",Be)}:je)()}return $e.charCodeAt(Be)===L?(tt+="}",Be++):tt=ze(tt,"}"),!0}()||function(){if($e.charCodeAt(Be)!==x)return!1;tt+="[",Be++,Ze();for(var We=!0;Be<$e.length&&$e.charCodeAt(Be)!==b;)if(We?We=!1:gt(ue)||(tt=ze(tt,",")),!De()){tt=dt(tt,",");break}return $e.charCodeAt(Be)===b?(tt+="]",Be++):tt=ze(tt,"]"),!0}()||wt()||function(){var We=Be;if($e.charCodeAt(Be)===V&&(Be++,Dr(We)))return!0;if($e.charCodeAt(Be)===X)Be++;else if(function(rt){return Q<=rt&&rt<=re}($e.charCodeAt(Be)))for(Be++;Ne($e.charCodeAt(Be));)Be++;if($e.charCodeAt(Be)===le){if(Be++,Dr(We))return!0;for(;Ne($e.charCodeAt(Be));)Be++}if($e.charCodeAt(Be)===ie||$e.charCodeAt(Be)===Y){if(Be++,$e.charCodeAt(Be)!==V&&$e.charCodeAt(Be)!==$||Be++,Dr(We))return!0;for(;Ne($e.charCodeAt(Be));)Be++}return We=$e.length)return tt+=$e.slice(Le,Be)+"0",1;Pn(Le)}function je(){throw new N("Colon expected",Be)}}},894:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},7171:function(o){o.exports=JSON.parse('{"id":"http://json-schema.org/draft-04/schema#","$schema":"http://json-schema.org/draft-04/schema#","description":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"positiveInteger":{"type":"integer","minimum":0},"positiveIntegerDefault0":{"allOf":[{"$ref":"#/definitions/positiveInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true}},"type":"object","properties":{"id":{"type":"string"},"$schema":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"multipleOf":{"type":"number","minimum":0,"exclusiveMinimum":true},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"boolean","default":false},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"boolean","default":false},"maxLength":{"$ref":"#/definitions/positiveInteger"},"minLength":{"$ref":"#/definitions/positiveIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/positiveInteger"},"minItems":{"$ref":"#/definitions/positiveIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"maxProperties":{"$ref":"#/definitions/positiveInteger"},"minProperties":{"$ref":"#/definitions/positiveIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#"}],"default":{}},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"dependencies":{"exclusiveMaximum":["maximum"],"exclusiveMinimum":["minimum"]},"default":{}}')},6273:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},6680:function(o){o.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},i={},n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return n.d(a,{a}),a},n.d=function(o,a){for(var c in a)n.o(a,c)&&!n.o(o,c)&&Object.defineProperty(o,c,{enumerable:!0,get:a[c]})},n.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},n.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},n.nmd=function(o){return o.paths=[],o.children||(o.children=[]),o},n(3161);function n(o){var a=i[o];return a!==void 0||(a=i[o]={id:o,loaded:!1,exports:{}},r[o].call(a.exports,a,a.exports,n),a.loaded=!0),a.exports}var r,i})})(R3);const O_e=Gh(R3.exports);function vM(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function M_e(e,t){kt(2,arguments);var n=Dt(e),r=Dt(t),i=vM(n,r),o=Math.abs(_h(n,r));n.setDate(n.getDate()-i*o);var a=Number(vM(n,r)===-i),c=i*(o-a);return c===0?0:c}const N1e="modulepreload",F1e=function(e){return"/"+e},yM={},B1e=function(t,n,r){if(!n||n.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(n.map(o=>{if(o=F1e(o),o in yM)return;yM[o]=!0;const a=o.endsWith(".css"),c=a?'[rel="stylesheet"]':"";if(!!r)for(let p=i.length-1;p>=0;p--){const I=i[p];if(I.href===o&&(!a||I.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const d=document.createElement("link");if(d.rel=a?"stylesheet":N1e,a||(d.as="script",d.crossOrigin=""),d.href=o,document.head.appendChild(d),a)return new Promise((p,I)=>{d.addEventListener("load",p),d.addEventListener("error",()=>I(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t())};class L_e extends de.exports.PureComponent{constructor(t){super(t),this.$=vt.createRef(),this._=vt.createRef()}render(){return Ae("span",{ref:this.$,children:Ae("a",{...this.props,ref:this._,children:this.props.children})})}componentDidMount(){this.paint()}getSnapshotBeforeUpdate(){return this.reset(),null}componentDidUpdate(){this.paint()}componentWillUnmount(){this.reset()}paint(){const t=this.$.current.appendChild(document.createElement("span"));B1e(()=>import("./buttons.esm.a2fb4f3c.js"),[]).then(({render:n})=>{this._.current!=null&&n(t.appendChild(this._.current),function(r){try{t.parentNode.replaceChild(r,t)}catch{}})})}reset(){this.$.current.replaceChild(this._.current,this.$.current.lastChild)}}var bM=function(e,t,n){if(e&&"reportValidity"in e){var r=Et(n,t);e.setCustomValidity(r&&r.message||""),e.reportValidity()}},O3=function(e,t){var n=function(i){var o=t.fields[i];o&&o.ref&&"reportValidity"in o.ref?bM(o.ref,i,e):o.refs&&o.refs.forEach(function(a){return bM(a,i,e)})};for(var r in t.fields)n(r)},W1e=function(e,t){t.shouldUseNativeValidation&&O3(e,t);var n={};for(var r in e){var i=Et(t.fields,r);On(n,r,Object.assign(e[r],{ref:i&&i.ref}))}return n},H1e=function(e,t){for(var n={};e.length;){var r=e[0],i=r.code,o=r.message,a=r.path.join(".");if(!n[a])if("unionErrors"in r){var c=r.unionErrors[0].errors[0];n[a]={message:c.message,type:c.code}}else n[a]={message:o,type:i};if("unionErrors"in r&&r.unionErrors.forEach(function(p){return p.errors.forEach(function(I){return e.push(I)})}),t){var u=n[a].types,d=u&&u[r.code];n[a]=w3(a,t,n,i,d?[].concat(d,r.message):r.message)}e.shift()}return n},D_e=function(e,t,n){return n===void 0&&(n={}),function(r,i,o){try{return Promise.resolve(function(a,c){try{var u=Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](r,t)).then(function(d){return o.shouldUseNativeValidation&&O3({},o),{errors:{},values:n.rawValues?r:d}})}catch(d){return c(d)}return u&&u.then?u.then(void 0,c):u}(0,function(a){return{values:{},errors:a.isEmpty?{}:W1e(H1e(a.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)}}))}catch(a){return Promise.reject(a)}}},vn;(function(e){e.assertEqual=i=>i;function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{const o={};for(const a of i)o[a]=a;return o},e.getValidEnumValues=i=>{const o=e.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),a={};for(const c of o)a[c]=i[c];return e.objectValues(a)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const o=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&o.push(a);return o},e.find=(i,o)=>{for(const a of i)if(o(a))return a},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function r(i,o=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(vn||(vn={}));var CS;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(CS||(CS={}));const Ot=vn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ls=e=>{switch(typeof e){case"undefined":return Ot.undefined;case"string":return Ot.string;case"number":return isNaN(e)?Ot.nan:Ot.number;case"boolean":return Ot.boolean;case"function":return Ot.function;case"bigint":return Ot.bigint;case"symbol":return Ot.symbol;case"object":return Array.isArray(e)?Ot.array:e===null?Ot.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Ot.promise:typeof Map<"u"&&e instanceof Map?Ot.map:typeof Set<"u"&&e instanceof Set?Ot.set:typeof Date<"u"&&e instanceof Date?Ot.date:Ot.object;default:return Ot.unknown}},St=vn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),z1e=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class Co extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},i=o=>{for(const a of o.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let c=r,u=0;for(;un.message){const n={},r=[];for(const i of this.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}Co.create=e=>new Co(e);const Rh=(e,t)=>{let n;switch(e.code){case St.invalid_type:e.received===Ot.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case St.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,vn.jsonStringifyReplacer)}`;break;case St.unrecognized_keys:n=`Unrecognized key(s) in object: ${vn.joinValues(e.keys,", ")}`;break;case St.invalid_union:n="Invalid input";break;case St.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${vn.joinValues(e.options)}`;break;case St.invalid_enum_value:n=`Invalid enum value. Expected ${vn.joinValues(e.options)}, received '${e.received}'`;break;case St.invalid_arguments:n="Invalid function arguments";break;case St.invalid_return_type:n="Invalid function return type";break;case St.invalid_date:n="Invalid date";break;case St.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:vn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case St.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case St.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case St.custom:n="Invalid input";break;case St.invalid_intersection_types:n="Intersection results could not be merged";break;case St.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case St.not_finite:n="Number must be finite";break;default:n=t.defaultError,vn.assertNever(e)}return{message:n}};let M3=Rh;function V1e(e){M3=e}function Fv(){return M3}const Bv=e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};let c="";const u=r.filter(d=>!!d).slice().reverse();for(const d of u)c=d(a,{data:t,defaultError:c}).message;return{...i,path:o,message:i.message||c}},j1e=[];function Lt(e,t){const n=Bv({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,Fv(),Rh].filter(r=>!!r)});e.common.issues.push(n)}class Qr{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const i of n){if(i.status==="aborted")return Ut;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const i of n)r.push({key:await i.key,value:await i.value});return Qr.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const i of n){const{key:o,value:a}=i;if(o.status==="aborted"||a.status==="aborted")return Ut;o.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[o.value]=a.value)}return{status:t.value,value:r}}}const Ut=Object.freeze({status:"aborted"}),L3=e=>({status:"dirty",value:e}),ci=e=>({status:"valid",value:e}),SS=e=>e.status==="aborted",AS=e=>e.status==="dirty",Oh=e=>e.status==="valid",Wv=e=>typeof Promise<"u"&&e instanceof Promise;var zt;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(zt||(zt={}));class ia{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const xM=(e,t)=>{if(Oh(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new Co(e.common.issues);return this._error=n,this._error}}};function Kt(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(a,c)=>a.code!=="invalid_type"?{message:c.defaultError}:typeof c.data>"u"?{message:r!=null?r:c.defaultError}:{message:n!=null?n:c.defaultError},description:i}}class nn{constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return ls(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ls(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Qr,ctx:{common:t.parent.common,data:t.data,parsedType:ls(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Wv(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const i={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ls(t)},o=this._parseSync({data:t,path:i.path,parent:i});return xM(i,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ls(t)},i=this._parse({data:t,path:r.path,parent:r}),o=await(Wv(i)?i:Promise.resolve(i));return xM(r,o)}refine(t,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,o)=>{const a=t(i),c=()=>o.addIssue({code:St.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(c(),!1)):a?!0:(c(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new _o({schema:this,typeName:Zt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Ea.create(this,this._def)}nullable(){return kl.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return So.create(this,this._def)}promise(){return lu.create(this,this._def)}or(t){return $h.create([this,t],this._def)}and(t){return Nh.create(this,t,this._def)}transform(t){return new _o({...Kt(this._def),schema:this,typeName:Zt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new zh({...Kt(this._def),innerType:this,defaultValue:n,typeName:Zt.ZodDefault})}brand(){return new $3({typeName:Zt.ZodBranded,type:this,...Kt(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new jv({...Kt(this._def),innerType:this,catchValue:n,typeName:Zt.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return mf.create(this,t)}readonly(){return Yv.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const G1e=/^c[^\s-]{8,}$/i,Y1e=/^[a-z][a-z0-9]*$/,Z1e=/^[0-9A-HJKMNP-TV-Z]{26}$/,X1e=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,U1e=/^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,K1e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Wx;const J1e=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,Q1e=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,q1e=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function eSe(e,t){return!!((t==="v4"||!t)&&J1e.test(e)||(t==="v6"||!t)&&Q1e.test(e))}class bo extends nn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Ot.string){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.string,received:o.parsedType}),Ut}const r=new Qr;let i;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(i=this._getOrReturnCtx(t,i),Lt(i,{code:St.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const a=t.data.length>o.value,c=t.data.lengtht.test(i),{validation:n,code:St.invalid_string,...zt.errToObj(r)})}_addCheck(t){return new bo({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...zt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...zt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...zt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...zt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...zt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...zt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...zt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...zt.errToObj(t)})}datetime(t){var n;return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...zt.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...zt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...zt.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...zt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...zt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...zt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...zt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...zt.errToObj(n)})}nonempty(t){return this.min(1,zt.errToObj(t))}trim(){return new bo({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new bo({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new bo({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new bo({checks:[],typeName:Zt.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...Kt(e)})};function tSe(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,o=parseInt(e.toFixed(i).replace(".","")),a=parseInt(t.toFixed(i).replace(".",""));return o%a/Math.pow(10,i)}class Ps extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Ot.number){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.number,received:o.parsedType}),Ut}let r;const i=new Qr;for(const o of this._def.checks)o.kind==="int"?vn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?tSe(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_finite,message:o.message}),i.dirty()):vn.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,zt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,zt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,zt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,zt.toString(n))}setLimit(t,n,r,i){return new Ps({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:zt.toString(i)}]})}_addCheck(t){return new Ps({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:zt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:zt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:zt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:zt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:zt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:zt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:zt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:zt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:zt.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&vn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew Ps({checks:[],typeName:Zt.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...Kt(e)});class Rs extends nn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==Ot.bigint){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.bigint,received:o.parsedType}),Ut}let r;const i=new Qr;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Lt(r,{code:St.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):vn.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,zt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,zt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,zt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,zt.toString(n))}setLimit(t,n,r,i){return new Rs({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:zt.toString(i)}]})}_addCheck(t){return new Rs({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:zt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:zt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:zt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:zt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:zt.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new Rs({checks:[],typeName:Zt.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...Kt(e)})};class Mh extends nn{_parse(t){if(this._def.coerce&&(t.data=Boolean(t.data)),this._getType(t)!==Ot.boolean){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.boolean,received:r.parsedType}),Ut}return ci(t.data)}}Mh.create=e=>new Mh({typeName:Zt.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...Kt(e)});class Al extends nn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Ot.date){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_type,expected:Ot.date,received:o.parsedType}),Ut}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return Lt(o,{code:St.invalid_date}),Ut}const r=new Qr;let i;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(i=this._getOrReturnCtx(t,i),Lt(i,{code:St.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):vn.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Al({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:zt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:zt.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Al({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:Zt.ZodDate,...Kt(e)});class Hv extends nn{_parse(t){if(this._getType(t)!==Ot.symbol){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.symbol,received:r.parsedType}),Ut}return ci(t.data)}}Hv.create=e=>new Hv({typeName:Zt.ZodSymbol,...Kt(e)});class Lh extends nn{_parse(t){if(this._getType(t)!==Ot.undefined){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.undefined,received:r.parsedType}),Ut}return ci(t.data)}}Lh.create=e=>new Lh({typeName:Zt.ZodUndefined,...Kt(e)});class Dh extends nn{_parse(t){if(this._getType(t)!==Ot.null){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.null,received:r.parsedType}),Ut}return ci(t.data)}}Dh.create=e=>new Dh({typeName:Zt.ZodNull,...Kt(e)});class su extends nn{constructor(){super(...arguments),this._any=!0}_parse(t){return ci(t.data)}}su.create=e=>new su({typeName:Zt.ZodAny,...Kt(e)});class fl extends nn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ci(t.data)}}fl.create=e=>new fl({typeName:Zt.ZodUnknown,...Kt(e)});class Fa extends nn{_parse(t){const n=this._getOrReturnCtx(t);return Lt(n,{code:St.invalid_type,expected:Ot.never,received:n.parsedType}),Ut}}Fa.create=e=>new Fa({typeName:Zt.ZodNever,...Kt(e)});class zv extends nn{_parse(t){if(this._getType(t)!==Ot.undefined){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.void,received:r.parsedType}),Ut}return ci(t.data)}}zv.create=e=>new zv({typeName:Zt.ZodVoid,...Kt(e)});class So extends nn{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Ot.array)return Lt(n,{code:St.invalid_type,expected:Ot.array,received:n.parsedType}),Ut;if(i.exactLength!==null){const a=n.data.length>i.exactLength.value,c=n.data.lengthi.maxLength.value&&(Lt(n,{code:St.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,c)=>i.type._parseAsync(new ia(n,a,n.path,c)))).then(a=>Qr.mergeArray(r,a));const o=[...n.data].map((a,c)=>i.type._parseSync(new ia(n,a,n.path,c)));return Qr.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new So({...this._def,minLength:{value:t,message:zt.toString(n)}})}max(t,n){return new So({...this._def,maxLength:{value:t,message:zt.toString(n)}})}length(t,n){return new So({...this._def,exactLength:{value:t,message:zt.toString(n)}})}nonempty(t){return this.min(1,t)}}So.create=(e,t)=>new So({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Zt.ZodArray,...Kt(t)});function Ql(e){if(e instanceof Un){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Ea.create(Ql(r))}return new Un({...e._def,shape:()=>t})}else return e instanceof So?new So({...e._def,type:Ql(e.element)}):e instanceof Ea?Ea.create(Ql(e.unwrap())):e instanceof kl?kl.create(Ql(e.unwrap())):e instanceof oa?oa.create(e.items.map(t=>Ql(t))):e}class Un extends nn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=vn.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==Ot.object){const d=this._getOrReturnCtx(t);return Lt(d,{code:St.invalid_type,expected:Ot.object,received:d.parsedType}),Ut}const{status:r,ctx:i}=this._processInputParams(t),{shape:o,keys:a}=this._getCached(),c=[];if(!(this._def.catchall instanceof Fa&&this._def.unknownKeys==="strip"))for(const d in i.data)a.includes(d)||c.push(d);const u=[];for(const d of a){const p=o[d],I=i.data[d];u.push({key:{status:"valid",value:d},value:p._parse(new ia(i,I,i.path,d)),alwaysSet:d in i.data})}if(this._def.catchall instanceof Fa){const d=this._def.unknownKeys;if(d==="passthrough")for(const p of c)u.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(d==="strict")c.length>0&&(Lt(i,{code:St.unrecognized_keys,keys:c}),r.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const p of c){const I=i.data[p];u.push({key:{status:"valid",value:p},value:d._parse(new ia(i,I,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const d=[];for(const p of u){const I=await p.key;d.push({key:I,value:await p.value,alwaysSet:p.alwaysSet})}return d}).then(d=>Qr.mergeObjectSync(r,d)):Qr.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return zt.errToObj,new Un({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var i,o,a,c;const u=(a=(o=(i=this._def).errorMap)===null||o===void 0?void 0:o.call(i,n,r).message)!==null&&a!==void 0?a:r.defaultError;return n.code==="unrecognized_keys"?{message:(c=zt.errToObj(t).message)!==null&&c!==void 0?c:u}:{message:u}}}:{}})}strip(){return new Un({...this._def,unknownKeys:"strip"})}passthrough(){return new Un({...this._def,unknownKeys:"passthrough"})}extend(t){return new Un({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Un({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Zt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Un({...this._def,catchall:t})}pick(t){const n={};return vn.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Un({...this._def,shape:()=>n})}omit(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Un({...this._def,shape:()=>n})}deepPartial(){return Ql(this)}partial(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{const i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}),new Un({...this._def,shape:()=>n})}required(t){const n={};return vn.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Ea;)o=o._def.innerType;n[r]=o}}),new Un({...this._def,shape:()=>n})}keyof(){return D3(vn.objectKeys(this.shape))}}Un.create=(e,t)=>new Un({shape:()=>e,unknownKeys:"strip",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});Un.strictCreate=(e,t)=>new Un({shape:()=>e,unknownKeys:"strict",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});Un.lazycreate=(e,t)=>new Un({shape:e,unknownKeys:"strip",catchall:Fa.create(),typeName:Zt.ZodObject,...Kt(t)});class $h extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function i(o){for(const c of o)if(c.result.status==="valid")return c.result;for(const c of o)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;const a=o.map(c=>new Co(c.ctx.common.issues));return Lt(n,{code:St.invalid_union,unionErrors:a}),Ut}if(n.common.async)return Promise.all(r.map(async o=>{const a={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let o;const a=[];for(const u of r){const d={...n,common:{...n.common,issues:[]},parent:null},p=u._parseSync({data:n.data,path:n.path,parent:d});if(p.status==="valid")return p;p.status==="dirty"&&!o&&(o={result:p,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const c=a.map(u=>new Co(u));return Lt(n,{code:St.invalid_union,unionErrors:c}),Ut}}get options(){return this._def.options}}$h.create=(e,t)=>new $h({options:e,typeName:Zt.ZodUnion,...Kt(t)});const Tg=e=>e instanceof Bh?Tg(e.schema):e instanceof _o?Tg(e.innerType()):e instanceof Wh?[e.value]:e instanceof Os?e.options:e instanceof Hh?Object.keys(e.enum):e instanceof zh?Tg(e._def.innerType):e instanceof Lh?[void 0]:e instanceof Dh?[null]:null;class Ob extends nn{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.object)return Lt(n,{code:St.invalid_type,expected:Ot.object,received:n.parsedType}),Ut;const r=this.discriminator,i=n.data[r],o=this.optionsMap.get(i);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(Lt(n,{code:St.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Ut)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const i=new Map;for(const o of n){const a=Tg(o.shape[t]);if(!a)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const c of a){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,o)}}return new Ob({typeName:Zt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Kt(r)})}}function IS(e,t){const n=ls(e),r=ls(t);if(e===t)return{valid:!0,data:e};if(n===Ot.object&&r===Ot.object){const i=vn.objectKeys(t),o=vn.objectKeys(e).filter(c=>i.indexOf(c)!==-1),a={...e,...t};for(const c of o){const u=IS(e[c],t[c]);if(!u.valid)return{valid:!1};a[c]=u.data}return{valid:!0,data:a}}else if(n===Ot.array&&r===Ot.array){if(e.length!==t.length)return{valid:!1};const i=[];for(let o=0;o{if(SS(o)||SS(a))return Ut;const c=IS(o.value,a.value);return c.valid?((AS(o)||AS(a))&&n.dirty(),{status:n.value,value:c.data}):(Lt(r,{code:St.invalid_intersection_types}),Ut)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,a])=>i(o,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Nh.create=(e,t,n)=>new Nh({left:e,right:t,typeName:Zt.ZodIntersection,...Kt(n)});class oa extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.array)return Lt(r,{code:St.invalid_type,expected:Ot.array,received:r.parsedType}),Ut;if(r.data.lengththis._def.items.length&&(Lt(r,{code:St.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((a,c)=>{const u=this._def.items[c]||this._def.rest;return u?u._parse(new ia(r,a,r.path,c)):null}).filter(a=>!!a);return r.common.async?Promise.all(o).then(a=>Qr.mergeArray(n,a)):Qr.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new oa({...this._def,rest:t})}}oa.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new oa({items:e,typeName:Zt.ZodTuple,rest:null,...Kt(t)})};class Fh extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.object)return Lt(r,{code:St.invalid_type,expected:Ot.object,received:r.parsedType}),Ut;const i=[],o=this._def.keyType,a=this._def.valueType;for(const c in r.data)i.push({key:o._parse(new ia(r,c,r.path,c)),value:a._parse(new ia(r,r.data[c],r.path,c))});return r.common.async?Qr.mergeObjectAsync(n,i):Qr.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof nn?new Fh({keyType:t,valueType:n,typeName:Zt.ZodRecord,...Kt(r)}):new Fh({keyType:bo.create(),valueType:t,typeName:Zt.ZodRecord,...Kt(n)})}}class Vv extends nn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.map)return Lt(r,{code:St.invalid_type,expected:Ot.map,received:r.parsedType}),Ut;const i=this._def.keyType,o=this._def.valueType,a=[...r.data.entries()].map(([c,u],d)=>({key:i._parse(new ia(r,c,r.path,[d,"key"])),value:o._parse(new ia(r,u,r.path,[d,"value"]))}));if(r.common.async){const c=new Map;return Promise.resolve().then(async()=>{for(const u of a){const d=await u.key,p=await u.value;if(d.status==="aborted"||p.status==="aborted")return Ut;(d.status==="dirty"||p.status==="dirty")&&n.dirty(),c.set(d.value,p.value)}return{status:n.value,value:c}})}else{const c=new Map;for(const u of a){const d=u.key,p=u.value;if(d.status==="aborted"||p.status==="aborted")return Ut;(d.status==="dirty"||p.status==="dirty")&&n.dirty(),c.set(d.value,p.value)}return{status:n.value,value:c}}}}Vv.create=(e,t,n)=>new Vv({valueType:t,keyType:e,typeName:Zt.ZodMap,...Kt(n)});class Il extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Ot.set)return Lt(r,{code:St.invalid_type,expected:Ot.set,received:r.parsedType}),Ut;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Lt(r,{code:St.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const o=this._def.valueType;function a(u){const d=new Set;for(const p of u){if(p.status==="aborted")return Ut;p.status==="dirty"&&n.dirty(),d.add(p.value)}return{status:n.value,value:d}}const c=[...r.data.values()].map((u,d)=>o._parse(new ia(r,u,r.path,d)));return r.common.async?Promise.all(c).then(u=>a(u)):a(c)}min(t,n){return new Il({...this._def,minSize:{value:t,message:zt.toString(n)}})}max(t,n){return new Il({...this._def,maxSize:{value:t,message:zt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Il.create=(e,t)=>new Il({valueType:e,minSize:null,maxSize:null,typeName:Zt.ZodSet,...Kt(t)});class Wc extends nn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.function)return Lt(n,{code:St.invalid_type,expected:Ot.function,received:n.parsedType}),Ut;function r(c,u){return Bv({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Fv(),Rh].filter(d=>!!d),issueData:{code:St.invalid_arguments,argumentsError:u}})}function i(c,u){return Bv({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Fv(),Rh].filter(d=>!!d),issueData:{code:St.invalid_return_type,returnTypeError:u}})}const o={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof lu){const c=this;return ci(async function(...u){const d=new Co([]),p=await c._def.args.parseAsync(u,o).catch(F=>{throw d.addIssue(r(u,F)),d}),I=await Reflect.apply(a,this,p);return await c._def.returns._def.type.parseAsync(I,o).catch(F=>{throw d.addIssue(i(I,F)),d})})}else{const c=this;return ci(function(...u){const d=c._def.args.safeParse(u,o);if(!d.success)throw new Co([r(u,d.error)]);const p=Reflect.apply(a,this,d.data),I=c._def.returns.safeParse(p,o);if(!I.success)throw new Co([i(p,I.error)]);return I.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new Wc({...this._def,args:oa.create(t).rest(fl.create())})}returns(t){return new Wc({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new Wc({args:t||oa.create([]).rest(fl.create()),returns:n||fl.create(),typeName:Zt.ZodFunction,...Kt(r)})}}class Bh extends nn{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}Bh.create=(e,t)=>new Bh({getter:e,typeName:Zt.ZodLazy,...Kt(t)});class Wh extends nn{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return Lt(n,{received:n.data,code:St.invalid_literal,expected:this._def.value}),Ut}return{status:"valid",value:t.data}}get value(){return this._def.value}}Wh.create=(e,t)=>new Wh({value:e,typeName:Zt.ZodLiteral,...Kt(t)});function D3(e,t){return new Os({values:e,typeName:Zt.ZodEnum,...Kt(t)})}class Os extends nn{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return Lt(n,{expected:vn.joinValues(r),received:n.parsedType,code:St.invalid_type}),Ut}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return Lt(n,{received:n.data,code:St.invalid_enum_value,options:r}),Ut}return ci(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return Os.create(t)}exclude(t){return Os.create(this.options.filter(n=>!t.includes(n)))}}Os.create=D3;class Hh extends nn{_parse(t){const n=vn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Ot.string&&r.parsedType!==Ot.number){const i=vn.objectValues(n);return Lt(r,{expected:vn.joinValues(i),received:r.parsedType,code:St.invalid_type}),Ut}if(n.indexOf(t.data)===-1){const i=vn.objectValues(n);return Lt(r,{received:r.data,code:St.invalid_enum_value,options:i}),Ut}return ci(t.data)}get enum(){return this._def.values}}Hh.create=(e,t)=>new Hh({values:e,typeName:Zt.ZodNativeEnum,...Kt(t)});class lu extends nn{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Ot.promise&&n.common.async===!1)return Lt(n,{code:St.invalid_type,expected:Ot.promise,received:n.parsedType}),Ut;const r=n.parsedType===Ot.promise?n.data:Promise.resolve(n.data);return ci(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}lu.create=(e,t)=>new lu({type:e,typeName:Zt.ZodPromise,...Kt(t)});class _o extends nn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Zt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:a=>{Lt(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){const a=i.transform(r.data,o);return r.common.issues.length?{status:"dirty",value:r.data}:r.common.async?Promise.resolve(a).then(c=>this._def.schema._parseAsync({data:c,path:r.path,parent:r})):this._def.schema._parseSync({data:a,path:r.path,parent:r})}if(i.type==="refinement"){const a=c=>{const u=i.refinement(c,o);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){const c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?Ut:(c.status==="dirty"&&n.dirty(),a(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?Ut:(c.status==="dirty"&&n.dirty(),a(c.value).then(()=>({status:n.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Oh(a))return a;const c=i.transform(a.value,o);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Oh(a)?Promise.resolve(i.transform(a.value,o)).then(c=>({status:n.value,value:c})):a);vn.assertNever(i)}}_o.create=(e,t,n)=>new _o({schema:e,typeName:Zt.ZodEffects,effect:t,...Kt(n)});_o.createWithPreprocess=(e,t,n)=>new _o({schema:t,effect:{type:"preprocess",transform:e},typeName:Zt.ZodEffects,...Kt(n)});class Ea extends nn{_parse(t){return this._getType(t)===Ot.undefined?ci(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Ea.create=(e,t)=>new Ea({innerType:e,typeName:Zt.ZodOptional,...Kt(t)});class kl extends nn{_parse(t){return this._getType(t)===Ot.null?ci(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}kl.create=(e,t)=>new kl({innerType:e,typeName:Zt.ZodNullable,...Kt(t)});class zh extends nn{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Ot.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}zh.create=(e,t)=>new zh({innerType:e,typeName:Zt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Kt(t)});class jv extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Wv(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Co(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Co(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}jv.create=(e,t)=>new jv({innerType:e,typeName:Zt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Kt(t)});class Gv extends nn{_parse(t){if(this._getType(t)!==Ot.nan){const r=this._getOrReturnCtx(t);return Lt(r,{code:St.invalid_type,expected:Ot.nan,received:r.parsedType}),Ut}return{status:"valid",value:t.data}}}Gv.create=e=>new Gv({typeName:Zt.ZodNaN,...Kt(e)});const nSe=Symbol("zod_brand");class $3 extends nn{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class mf extends nn{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?Ut:o.status==="dirty"?(n.dirty(),L3(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Ut:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new mf({in:t,out:n,typeName:Zt.ZodPipeline})}}class Yv extends nn{_parse(t){const n=this._def.innerType._parse(t);return Oh(n)&&(n.value=Object.freeze(n.value)),n}}Yv.create=(e,t)=>new Yv({innerType:e,typeName:Zt.ZodReadonly,...Kt(t)});const N3=(e,t={},n)=>e?su.create().superRefine((r,i)=>{var o,a;if(!e(r)){const c=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,u=(a=(o=c.fatal)!==null&&o!==void 0?o:n)!==null&&a!==void 0?a:!0,d=typeof c=="string"?{message:c}:c;i.addIssue({code:"custom",...d,fatal:u})}}):su.create(),rSe={object:Un.lazycreate};var Zt;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Zt||(Zt={}));const iSe=(e,t={message:`Input not instance of ${e.name}`})=>N3(n=>n instanceof e,t),F3=bo.create,B3=Ps.create,oSe=Gv.create,aSe=Rs.create,W3=Mh.create,sSe=Al.create,lSe=Hv.create,cSe=Lh.create,uSe=Dh.create,dSe=su.create,hSe=fl.create,fSe=Fa.create,pSe=zv.create,gSe=So.create,mSe=Un.create,vSe=Un.strictCreate,ySe=$h.create,bSe=Ob.create,xSe=Nh.create,wSe=oa.create,CSe=Fh.create,SSe=Vv.create,ASe=Il.create,ISe=Wc.create,kSe=Bh.create,_Se=Wh.create,ESe=Os.create,TSe=Hh.create,PSe=lu.create,wM=_o.create,RSe=Ea.create,OSe=kl.create,MSe=_o.createWithPreprocess,LSe=mf.create,DSe=()=>F3().optional(),$Se=()=>B3().optional(),NSe=()=>W3().optional(),FSe={string:e=>bo.create({...e,coerce:!0}),number:e=>Ps.create({...e,coerce:!0}),boolean:e=>Mh.create({...e,coerce:!0}),bigint:e=>Rs.create({...e,coerce:!0}),date:e=>Al.create({...e,coerce:!0})},BSe=Ut;var $_e=Object.freeze({__proto__:null,defaultErrorMap:Rh,setErrorMap:V1e,getErrorMap:Fv,makeIssue:Bv,EMPTY_PATH:j1e,addIssueToContext:Lt,ParseStatus:Qr,INVALID:Ut,DIRTY:L3,OK:ci,isAborted:SS,isDirty:AS,isValid:Oh,isAsync:Wv,get util(){return vn},get objectUtil(){return CS},ZodParsedType:Ot,getParsedType:ls,ZodType:nn,ZodString:bo,ZodNumber:Ps,ZodBigInt:Rs,ZodBoolean:Mh,ZodDate:Al,ZodSymbol:Hv,ZodUndefined:Lh,ZodNull:Dh,ZodAny:su,ZodUnknown:fl,ZodNever:Fa,ZodVoid:zv,ZodArray:So,ZodObject:Un,ZodUnion:$h,ZodDiscriminatedUnion:Ob,ZodIntersection:Nh,ZodTuple:oa,ZodRecord:Fh,ZodMap:Vv,ZodSet:Il,ZodFunction:Wc,ZodLazy:Bh,ZodLiteral:Wh,ZodEnum:Os,ZodNativeEnum:Hh,ZodPromise:lu,ZodEffects:_o,ZodTransformer:_o,ZodOptional:Ea,ZodNullable:kl,ZodDefault:zh,ZodCatch:jv,ZodNaN:Gv,BRAND:nSe,ZodBranded:$3,ZodPipeline:mf,ZodReadonly:Yv,custom:N3,Schema:nn,ZodSchema:nn,late:rSe,get ZodFirstPartyTypeKind(){return Zt},coerce:FSe,any:dSe,array:gSe,bigint:aSe,boolean:W3,date:sSe,discriminatedUnion:bSe,effect:wM,enum:ESe,function:ISe,instanceof:iSe,intersection:xSe,lazy:kSe,literal:_Se,map:SSe,nan:oSe,nativeEnum:TSe,never:fSe,null:uSe,nullable:OSe,number:B3,object:mSe,oboolean:NSe,onumber:$Se,optional:RSe,ostring:DSe,pipeline:LSe,preprocess:MSe,promise:PSe,record:CSe,set:ASe,strictObject:vSe,string:F3,symbol:lSe,transformer:wM,tuple:wSe,undefined:cSe,union:ySe,unknown:hSe,void:pSe,NEVER:BSe,ZodIssueCode:St,quotelessJson:z1e,ZodError:Co}),H3={},kS={exports:{}};/*! * ApexCharts v3.40.0 * (c) 2018-2023 ApexCharts * Released under the MIT License. diff --git a/app/dashboard/build/index.html b/app/dashboard/build/index.html index 3355bc71..7fb06110 100644 --- a/app/dashboard/build/index.html +++ b/app/dashboard/build/index.html @@ -7,35 +7,35 @@ - + - + - - - + + +
diff --git a/app/dashboard/build/locales/en.json b/app/dashboard/build/locales/en.json index a81f47b5..62442243 100644 --- a/app/dashboard/build/locales/en.json +++ b/app/dashboard/build/locales/en.json @@ -68,6 +68,8 @@ "userDialog.revokeSubscription": "Revoke Subscription", "revoke": "Revoke", "userDialog.total": "Total: ", + "userDialog.onHold" : "On Hold", + "userDialog.onHoldExpireDuration":"Expire Duration", "hostsDialog.title": "Using this setting, you are able to assign specific address for each inbound.", "hostsDialog.desc": "Use these variables to make it dynamic", "hostsDialog.username": "The username of the user", @@ -131,6 +133,7 @@ "nodes.editNode": "Update Node", "nodes.reconnect": "Reconnect", "nodes.reconnecting": "Reconnecting...", + "nodes.usageCoefficient": "Usage Ratio", "deleteNode.title": "Delete Node", "deleteNode.prompt": "Are you sure you want to delete the {{name}} node?", "deleteNode.deleteSuccess": "Node {{name}} removed successfully", diff --git a/app/dashboard/build/locales/fa.json b/app/dashboard/build/locales/fa.json index 0b0fbd88..dce878a5 100644 --- a/app/dashboard/build/locales/fa.json +++ b/app/dashboard/build/locales/fa.json @@ -71,6 +71,8 @@ "userDialog.startDate": "تاریخ شروع", "userDialog.endDate": "تاریخ پایان", "userDialog.total": "مجموع: ", + "userDialog.onHold" : "در انتظار", + "userDialog.onHoldExpireDuration":"مدت انقضا", "hostsDialog.title": "با انتخاب این تنظیمات، می‌توانید برای هر ورودی یک آدرس منحصر به فرد انتخاب کنید.", "hostsDialog.desc": "برای ساخت نوشته پویا، از این متغیرها استفاده کنید", "hostsDialog.username": "نام کاربری کاربر", @@ -130,6 +132,7 @@ "nodes.show-certificate": "نمایش دادن گواهی", "nodes.hide-certificate": "مخفی کردن گواهی", "nodes.reconnecting": "درحال اتصال مجدد...", + "nodes.usageCoefficient": "ضریب گره", "deleteNode.title": "حذف گره", "deleteNode.prompt": "از حذف گره {{name}} مطمئن هستید؟", "deleteNode.deleteSuccess": "گره {{name}} با موفقیت حذف شد", diff --git a/app/dashboard/build/locales/ru.json b/app/dashboard/build/locales/ru.json index 6e52cec1..cc26c232 100644 --- a/app/dashboard/build/locales/ru.json +++ b/app/dashboard/build/locales/ru.json @@ -68,6 +68,8 @@ "userDialog.revokeSubscription": "Отозвать подписку", "revoke": "Отозвать", "userDialog.total": "Всего: ", + "userDialog.onHold": "В режиме ожидания", + "userDialog.onHoldExpireDuration":"Продолжительность срока действия", "hostsDialog.title": "Используя эту настройку, Вы можете настроить свои inbound.", "hostsDialog.desc": "Используйте эти переменные, чтобы сделать его динамическим", "hostsDialog.username": "Имя пользователя", @@ -127,6 +129,7 @@ "nodes.show-certificate": "Показать сертификат", "nodes.hide-certificate": "Скрыть сертификат", "nodes.reconnecting": "Переподключение...", + "nodes.usageCoefficient": "Коэффициент использования", "deleteNode.title": "Удалить узел", "deleteNode.prompt": "Вы уверены, что хотите удалить узел {{name}}?", "deleteNode.deleteSuccess": "Узел {{name}} успешно удалён", diff --git a/app/dashboard/build/locales/zh.json b/app/dashboard/build/locales/zh.json index 65789ad4..827ac2b9 100644 --- a/app/dashboard/build/locales/zh.json +++ b/app/dashboard/build/locales/zh.json @@ -64,6 +64,8 @@ "userDialog.startDate": "开始日期", "userDialog.endDate": "结束日期", "userDialog.total": "总共:", + "userDialog.onHold" : "保持", + "userDialog.onHoldExpireDuration":"过期时间", "hostsDialog.title": "使用此设置,您可以为每个入站分配特定的地址。", "hostsDialog.desc": "使用这些变量使其可以动态替换", "hostsDialog.username": "用户的用户名", @@ -120,6 +122,7 @@ "nodes.show-certificate": "如何证书", "nodes.hide-certificate": "隐藏证书", "nodes.reconnecting": "重连中...", + "nodes.usageCoefficient": "使用系数", "deleteNode.title": "删除节点", "deleteNode.prompt": "您确实要删除 {{name}} 节点吗?", "deleteNode.deleteSuccess": "节点 {{name}} 删除成功", From 5ab60ba96da1a2d6ed141e8059ce5e1998c7b200 Mon Sep 17 00:00:00 2001 From: Sina Date: Fri, 19 Jul 2024 14:22:46 +0330 Subject: [PATCH 4/7] On Hold Duration is now Required in on hold active --- app/dashboard/build/assets/index.8ee3e03d.js | 14 --- app/dashboard/build/assets/index.d40a313c.js | 14 +++ ...{vendor.7a7a2a97.js => vendor.667f5e84.js} | 0 app/dashboard/build/index.html | 4 +- app/dashboard/src/components/UserDialog.tsx | 105 +++++++++--------- 5 files changed, 70 insertions(+), 67 deletions(-) delete mode 100644 app/dashboard/build/assets/index.8ee3e03d.js create mode 100644 app/dashboard/build/assets/index.d40a313c.js rename app/dashboard/build/assets/{vendor.7a7a2a97.js => vendor.667f5e84.js} (100%) diff --git a/app/dashboard/build/assets/index.8ee3e03d.js b/app/dashboard/build/assets/index.8ee3e03d.js deleted file mode 100644 index ca937fa2..00000000 --- a/app/dashboard/build/assets/index.8ee3e03d.js +++ /dev/null @@ -1,14 +0,0 @@ -import{i as Nt,B as an,a as ln,b as cn,j as Ir,d as B,U as Ht,z as dn,r as un,f as hn,Q as pn,e as mn,$ as gn,c as zt,g as x,h as fn,C as bn,k as Dt,u as Bt,l as j,m as r,H as _,n as e,T as u,o as xn,p as D,s as yn,q as m,t as ct,J as Sn,v as zr,A as Et,w as Cn,x as wn,M as ne,y as oe,D as se,E as ae,F as ie,G as fe,I as Be,K as Dr,L as _n,N as at,O as le,P as R,R as H,S as Er,V as re,W as U,X as pe,Y as Z,Z as Le,_ as F,a0 as Ut,a1 as tt,a2 as kn,a3 as Ue,a4 as Fe,a5 as vn,a6 as Ur,a7 as Rr,a8 as nt,a9 as St,aa as In,ab as We,ac as Ct,ad as Kt,ae as zn,af as Lr,ag as Tr,ah as Ar,ai as me,aj as Dn,ak as En,al as Un,am as Rn,an as Ln,ao as $t,ap as Mr,aq as Nr,ar as ge,as as er,at as Tn,au as An,av as Mn,aw as Ft,ax as Nn,ay as Fn,az as Pn,aA as Wn,aB as On,aC as jn,aD as wt,aE as Hn,aF as Ne,aG as Bn,aH as C,aI as dt,aJ as Fr,aK as ut,aL as N,aM as Vt,aN as $n,aO as Oe,aP as je,aQ as Pt,aR as He,aS as we,aT as _e,aU as ke,aV as ve,aW as Ie,aX as ze,aY as tr,aZ as Vn,a_ as _t,a$ as ot,b0 as Gt,b1 as Gn,b2 as Yn,b3 as Zn,b4 as Pr,b5 as Qn,b6 as it,b7 as kt,b8 as Wr,b9 as qn,ba as Xn,bb as Or,bc as Me,bd as Jn,be as Kn,bf as eo,bg as Yt,bh as Lt,bi as rr,bj as jr,bk as to,bl as ro,bm as nr,bn as no,bo as or,bp as Hr,bq as oo,br as Br,bs as so,bt as ao,bu as $r,bv as io,bw as lo,bx as Vr,by as Gr,bz as Yr,bA as J,bB as co,bC as Zr,bD as sr,bE as uo,bF as ho,bG as po,bH as mo,bI as go,bJ as fo,bK as Qr,bL as bo,bM as ar,bN as ir,bO as Pe,bP as De,bQ as lr,bR as he,bS as cr,bT as xo,bU as yo,bV as So,bW as Co,bX as wo,bY as _o,bZ as ko,b_ as vo,b$ as Io,c0 as zo,c1 as Do,c2 as Eo,c3 as Uo,c4 as Ro,c5 as Lo,c6 as To,c7 as Ao}from"./vendor.7a7a2a97.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function o(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerpolicy&&(i.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?i.credentials="include":a.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=o(a);fetch(a.href,i)}})();Nt.use(an).use(ln).use(cn).init({debug:{}.NODE_ENV==="development",returnNull:!1,fallbackLng:"en",interpolation:{escapeValue:!1},react:{useSuspense:!1},load:"languageOnly",detection:{caches:["localStorage","sessionStorage","cookie"]},backend:{loadPath:Ir(["/","locales/{{lng}}.json"])}},function(t,n){B.locale(Nt.language)});Nt.on("languageChanged",t=>{B.locale(t)});Ht("zh-cn",dn);Ht("ru",un);Ht("fa",hn);const Wt=new pn,qr=t=>{const n=document.querySelector('meta[name="theme-color"]');n==null||n.setAttribute("content",t=="dark"?"#1A202C":"#3B81F6")},Mo=mn({shadows:{outline:"0 0 0 2px var(--chakra-colors-primary-200)"},fonts:{body:"Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif"},colors:{"light-border":"#d2d2d4",primary:{50:"#9cb7f2",100:"#88a9ef",200:"#749aec",300:"#618ce9",400:"#4d7de7",500:"#396fe4",600:"#3364cd",700:"#2e59b6",800:"#284ea0",900:"#224389"},gray:{750:"#222C3B"}},components:{Alert:{baseStyle:{container:{borderRadius:"6px",fontSize:"sm"}}},Select:{baseStyle:{field:{_dark:{borderColor:"gray.600",borderRadius:"6px"},_light:{borderRadius:"6px"}}}},FormHelperText:{baseStyle:{fontSize:"xs"}},FormLabel:{baseStyle:{fontSize:"sm",fontWeight:"medium",mb:"1",_dark:{color:"gray.300"}}},Input:{baseStyle:{addon:{_dark:{borderColor:"gray.600",_placeholder:{color:"gray.500"}}},field:{_focusVisible:{boxShadow:"none",borderColor:"primary.200",outlineColor:"primary.200"},_dark:{borderColor:"gray.600",_disabled:{color:"gray.400",borderColor:"gray.500"},_placeholder:{color:"gray.500"}}}}},Table:{baseStyle:{table:{borderCollapse:"separate",borderSpacing:0},thead:{borderBottomColor:"light-border"},th:{background:"#F9FAFB",borderColor:"light-border !important",borderBottomColor:"light-border !important",borderTop:"1px solid ",borderTopColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border !important"},_last:{borderRight:"1px solid",borderColor:"light-border !important"},_dark:{borderColor:"gray.600 !important",background:"gray.750"}},td:{transition:"all .1s ease-out",borderColor:"light-border",borderBottomColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_last:{borderRight:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_dark:{borderColor:"gray.600",borderBottomColor:"gray.600 !important"}},tr:{"&.interactive":{cursor:"pointer",_hover:{"& > td":{bg:"gray.200"},_dark:{"& > td":{bg:"gray.750"}}}},_last:{"& > td":{_first:{borderBottomLeftRadius:"8px"},_last:{borderBottomRightRadius:"8px"}}}}}}}});const vt=()=>localStorage.getItem("token"),No=t=>{localStorage.setItem("token",t)},Fo=()=>{localStorage.removeItem("token")},Po=gn.create({baseURL:"https://sub.vnext.uno/api"}),Wo=(t,n={})=>(vt()&&(n.headers={...(n==null?void 0:n.headers)||{},Authorization:`Bearer ${vt()}`}),Po(t,n)),O=Wo,Oo=zt(t=>({isLoading:!0,isPostLoading:!1,version:null,started:!1,logs_websocket:null,config:"",fetchCoreSettings:()=>{t({isLoading:!0}),Promise.all([O("/core").then(({version:n,started:o,logs_websocket:s})=>t({version:n,started:o,logs_websocket:s})),O("/core/config").then(n=>t({config:n}))]).finally(()=>t({isLoading:!1}))},updateConfig:n=>(t({isPostLoading:!0}),O("/core/config",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})})),restartCore:()=>O("/core/restart",{method:"POST"})}));function te(t,n=2,o=!1){if(!+t)return"0 B";const s=1024,a=n<0?0:n,i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],l=Math.floor(Math.log(t)/Math.log(s));return o?[parseFloat((t/Math.pow(s,l)).toFixed(a)),i[l]]:`${parseFloat((t/Math.pow(s,l)).toFixed(a))} ${i[l]}`}const dr=t=>{if(t!==null)return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},jo=x(fn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Ho=x(bn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Bo=x(Dt,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Tt=({title:t,content:n,icon:o})=>r(xn,{p:6,borderWidth:"1px",borderColor:"light-border",bg:"#F9FAFB",_dark:{borderColor:"gray.600",bg:"gray.750"},borderStyle:"solid",boxShadow:"none",borderRadius:"12px",width:"full",display:"flex",justifyContent:"space-between",flexDirection:"row",children:[r(_,{alignItems:"center",columnGap:"4",children:[e(D,{p:"2",position:"relative",color:"white",_before:{content:'""',position:"absolute",top:0,left:0,bg:"primary.400",display:"block",w:"full",h:"full",borderRadius:"5px",opacity:".5",z:"1"},_after:{content:'""',position:"absolute",top:"-5px",left:"-5px",bg:"primary.400",display:"block",w:"calc(100% + 10px)",h:"calc(100% + 10px)",borderRadius:"8px",opacity:".4",z:"1"},children:o}),e(u,{color:"gray.600",_dark:{color:"gray.300"},fontWeight:"medium",textTransform:"capitalize",fontSize:"sm",children:t})]}),e(D,{fontSize:"3xl",fontWeight:"semibold",mt:"2",children:n})]}),Ot="statistics-query-key",$o=t=>{const{version:n}=E(),{data:o}=Bt({queryKey:Ot,queryFn:()=>O("/system"),refetchInterval:5e3,onSuccess:({version:a})=>{n!==a&&E.setState({version:a})}}),{t:s}=j();return r(_,{justifyContent:"space-between",gap:0,columnGap:{lg:4,md:0},rowGap:{lg:0,base:4},display:"flex",flexDirection:{lg:"row",base:"column"},...t,children:[e(Tt,{title:s("activeUsers"),content:o&&r(_,{alignItems:"flex-end",children:[e(u,{children:dr(o.users_active)}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:["/ ",dr(o.total_user)]})]}),icon:e(jo,{})}),e(Tt,{title:s("dataUsage"),content:o&&te(o.incoming_bandwidth+o.outgoing_bandwidth),icon:e(Ho,{})}),e(Tt,{title:s("memoryUsage"),content:o&&r(_,{alignItems:"flex-end",children:[e(u,{children:te(o.mem_used,1,!0)[0]}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:[te(o.mem_used,1,!0)[1]," /"," ",te(o.mem_total,1)]})]}),icon:e(Bo,{})})]})},Xr="marzban-num-users-per-page",ur=10,Vo=()=>{const t=localStorage.getItem(Xr)||ur.toString();return parseInt(t)||ur},Go=t=>localStorage.setItem(Xr,t),Yo=t=>{for(const n in t)t[n]||delete t[n];return E.setState({loading:!0}),O("/users",{query:t}).then(n=>(E.setState({users:n}),n)).finally(()=>{E.setState({loading:!1})})},Zo=()=>O("/inbounds").then(t=>{E.setState({inbounds:new Map(Object.entries(t))})}).finally(()=>{E.setState({loading:!1})}),E=zt(yn((t,n)=>({version:null,editingUser:null,deletingUser:null,isCreatingNewUser:!1,QRcodeLinks:null,subscribeUrl:null,users:{users:[],total:0},loading:!0,isResetingAllUsage:!1,isEditingHosts:!1,isEditingNodes:!1,isShowingNodesUsage:!1,resetUsageUser:null,revokeSubscriptionUser:null,filters:{username:"",limit:Vo(),sort:"-created_at"},inbounds:new Map,isEditingCore:!1,refetchUsers:()=>{Yo(n().filters)},resetAllUsage:()=>O("/users/reset",{method:"POST"}).then(()=>{n().onResetAllUsage(!1),n().refetchUsers()}),onResetAllUsage:o=>t({isResetingAllUsage:o}),onCreateUser:o=>t({isCreatingNewUser:o}),onEditingUser:o=>{t({editingUser:o})},onDeletingUser:o=>{t({deletingUser:o})},onFilterChange:o=>{t({filters:{...n().filters,...o}}),n().refetchUsers()},setQRCode:o=>{t({QRcodeLinks:o})},deleteUser:o=>(t({editingUser:null}),O(`/user/${o.username}`,{method:"DELETE"}).then(()=>{t({deletingUser:null}),n().refetchUsers(),Wt.invalidateQueries(Ot)})),createUser:o=>O("/user",{method:"POST",body:o}).then(()=>{t({editingUser:null}),n().refetchUsers(),Wt.invalidateQueries(Ot)}),editUser:o=>O(`/user/${o.username}`,{method:"PUT",body:o}).then(()=>{n().onEditingUser(null),n().refetchUsers()}),fetchUserUsage:(o,s)=>{for(const a in s)s[a]||delete s[a];return O(`/user/${o.username}/usage`,{method:"GET",query:s})},onEditingHosts:o=>{t({isEditingHosts:o})},onEditingNodes:o=>{t({isEditingNodes:o})},onShowingNodesUsage:o=>{t({isShowingNodesUsage:o})},setSubLink:o=>{t({subscribeUrl:o})},resetDataUsage:o=>O(`/user/${o.username}/reset`,{method:"POST"}).then(()=>{t({resetUsageUser:null}),n().refetchUsers()}),revokeSubscription:o=>O(`/user/${o.username}/revoke_sub`,{method:"POST"}).then(s=>{t({revokeSubscriptionUser:null,editingUser:s}),n().refetchUsers()})}))),ce=({children:t,color:n})=>e(D,{position:"relative",width:"36px",height:"36px",display:"flex",justifyContent:"center",alignItems:"center",_before:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100%)",height:"calc(100%)",bg:`${n}.400`,opacity:".5",borderRadius:"5px",zIndex:"1",_dark:{bg:`${n}.400`}},_after:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100% + 10px)",height:"calc(100% + 10px)",transform:"translate(-5px, -5px)",bg:`${n}.400`,opacity:".4",borderRadius:"8px",zIndex:"1",_dark:{bg:`${n}.400`}},children:e(u,{color:`${n}.500`,_dark:{color:`${n}.900`},position:"relative",zIndex:"2",children:t})});window.ace.define("ace/theme/nord_dark",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!0,n.cssClass="ace-nord-dark",t("../lib/dom").importCssString(n.cssText,n.cssClass)});window.ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],(t,n,o)=>{n.isDark=!1,n.cssClass="ace-dawn",t("../lib/dom").importCssString(n.cssText,n.cssClass)});const Qo=m.exports.forwardRef(({json:t,onChange:n,mode:o="code"},s)=>{const{colorMode:a}=ct(),i={mode:o,onChangeText:n,statusBar:!1,mainMenuBar:!1,theme:a==="dark"?"ace/theme/nord_dark":"ace/theme/dawn"},l=m.exports.useRef(null),h=m.exports.useRef(null);return m.exports.useEffect(()=>(h.current=new Sn(l.current,i),()=>{h.current&&h.current.destroy()}),[]),m.exports.useEffect(()=>{h.current&&h.current.update(t)},[t]),e(D,{ref:s,border:"1px solid",borderColor:"gray.300",_dark:{borderColor:"gray.500"},borderRadius:5,h:"full",children:e(D,{height:"full",ref:l})})}),hr=500,qo=x(zr,{baseStyle:{w:5,h:5}}),Xo=x(Et,{baseStyle:{w:4,h:4}}),Jo=x(Cn,{baseStyle:{w:4,h:4}}),Ko=x(wn,{baseStyle:{w:3,h:3}}),es=t=>({[tt.ReadyState.CONNECTING]:"connecting",[tt.ReadyState.OPEN]:"connected",[tt.ReadyState.CLOSING]:"closed",[tt.ReadyState.CLOSED]:"closed",[tt.ReadyState.UNINSTANTIATED]:"closed"})[t],ts=()=>{try{let t=new URL("https://sub.vnext.uno/api".startsWith("/")?window.location.origin+"https://sub.vnext.uno/api":"https://sub.vnext.uno/api");return(t.protocol==="https:"?"wss://":"ws://")+Ir([t.host+t.pathname,"/core/logs"])+"?interval=1&token="+vt()}catch(t){return console.error("Unable to generate websocket url"),console.error(t),null}};let Te=[];const rs=()=>{const{isEditingCore:t}=E(),{fetchCoreSettings:n,updateConfig:o,isLoading:s,config:a,isPostLoading:i,version:l,restartCore:h}=Oo(),p=m.exports.useRef(null),[S,d]=m.exports.useState([]),{t:c}=j(),w=fe(),I=Be({defaultValues:{config:a||{}}});m.exports.useEffect(()=>{a&&I.setValue("config",a)},[a]),m.exports.useEffect(()=>{t&&n()},[t]);const f=m.exports.useRef(!0),y=m.exports.useCallback(Dr(L=>{var X,z,W;const V=Math.abs((((X=p.current)==null?void 0:X.scrollTop)||0)-(((z=p.current)==null?void 0:z.scrollHeight)||0)+(((W=p.current)==null?void 0:W.offsetHeight)||0))<10;p.current&&V?f.current=!0:f.current=!1,L.length<40&&d(L)},300),[]),{readyState:T}=_n(ts(),{onMessage:L=>{Te.push(L.data),Te.length>hr&&(Te=Te.splice(0,Te.length-hr)),y([...Te])},shouldReconnect:()=>!0,reconnectAttempts:10,reconnectInterval:1e3});m.exports.useEffect(()=>{var L;p.current&&f.current&&(p.current.scrollTop=(L=p.current)==null?void 0:L.scrollHeight)},[S]),m.exports.useEffect(()=>()=>{Te=[]},[]);const g=es(T.toString()),{mutate:b,isLoading:P}=at(h),$=({config:L})=>{o(L).then(()=>{w({title:c("core.successMessage"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(V=>{let X=c("core.generalErrorMessage");typeof V.response._data.detail=="object"&&(X=V.response._data.detail[Object.keys(V.response._data.detail)[0]]),typeof V.response._data.detail=="string"&&(X=V.response._data.detail),w({title:X,status:"error",isClosable:!0,position:"top",duration:3e3})})},v=m.exports.useRef(null),[A,G]=m.exports.useState(!1),q=()=>{var L;document.fullscreenElement?(document.exitFullscreen(),G(!1)):((L=v.current)==null||L.requestFullscreen(),G(!0))};return r("form",{onSubmit:I.handleSubmit($),children:[r(le,{children:[r(R,{children:[r(_,{justifyContent:"space-between",alignItems:"flex-start",children:[r(H,{children:[c("core.configuration")," ",s&&e(Er,{isIndeterminate:!0,size:"15px"})]}),e(_,{gap:0,children:e(re,{label:"Xray Version",placement:"top",children:e(U,{height:"100%",textTransform:"lowercase",children:l&&`v${l}`})})})]}),r(D,{position:"relative",ref:v,minHeight:"300px",children:[e(pe,{control:I.control,name:"config",render:({field:L})=>e(Qo,{json:a,onChange:L.onChange})}),e(Z,{size:"xs","aria-label":"full screen",variant:"ghost",position:"absolute",top:"2",right:"4",onClick:q,children:A?e(Ko,{}):e(Jo,{})})]})]}),r(R,{mt:"4",children:[r(_,{justifyContent:"space-between",children:[e(H,{children:c("core.logs")}),e(u,{as:H,children:c(`core.socket.${g}`)})]}),e(D,{border:"1px solid",borderColor:"gray.300",bg:"#F9F9F9",_dark:{borderColor:"gray.500",bg:"#2e3440"},borderRadius:5,minHeight:"200px",maxHeight:"250px",p:2,overflowY:"auto",ref:p,children:S.map((L,V)=>e(u,{fontSize:"xs",opacity:.8,whiteSpace:"pre-line",children:L},V))})]})]}),e(Le,{children:r(_,{w:"full",justifyContent:"space-between",children:[e(D,{children:e(F,{size:"sm",leftIcon:e(Xo,{className:Ut({"animate-spin":P})}),onClick:()=>b(),children:c(P?"core.restarting":"core.restartCore")})}),e(_,{children:e(F,{size:"sm",variant:"solid",colorScheme:"primary",px:"5",type:"submit",isDisabled:s||i,isLoading:i,children:c("core.save")})})]})})]})},ns=()=>{const{isEditingCore:t}=E(),n=E.setState.bind(null,{isEditingCore:!1}),{t:o}=j();return r(ne,{isOpen:t,onClose:n,size:"3xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"full",children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:e(qo,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:o("core.title")})]})}),e(ie,{mt:3}),e(rs,{})]})]})},ht=x(kn,{baseStyle:{w:5,h:5}}),os=()=>{const[t,n]=m.exports.useState(!1),{deletingUser:o,onDeletingUser:s,deleteUser:a}=E(),{t:i}=j(),l=fe(),h=()=>{s(null)},p=()=>{o&&(n(!0),a(o).then(()=>{l({title:i("deleteUser.deleteSuccess",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).then(h).finally(n.bind(null,!1)))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(ht,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("deleteUser.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:i("deleteUser.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:i("delete")})]})]})]})},Zt={baseStyle:{w:4,h:4}},ss=x(vn,Zt),as=x(Ur,Zt),Jr=x(Et,Zt),is=Dr(t=>{E.getState().onFilterChange({...E.getState().filters,offset:0,search:t})},300),ls=({...t})=>{const{loading:n,filters:o,onFilterChange:s,refetchUsers:a,onCreateUser:i}=E(),{t:l}=j(),[h,p]=m.exports.useState(""),S=c=>{p(c.target.value),is(c.target.value)},d=()=>{p(""),s({...o,offset:0,search:""})};return r(Rr,{id:"filters",templateColumns:{lg:"repeat(3, 1fr)",md:"repeat(4, 1fr)",base:"repeat(1, 1fr)"},position:"sticky",top:0,mx:"-6",px:"6",rowGap:4,gap:{lg:4,base:0},bg:"var(--chakra-colors-chakra-body-bg)",py:4,zIndex:"docked",...t,children:[e(nt,{colSpan:{base:1,md:2,lg:1},order:{base:2,md:1},children:r(St,{children:[e(In,{pointerEvents:"none",children:e(ss,{})}),e(We,{placeholder:l("search"),value:h,borderColor:"light-border",onChange:S}),r(Ct,{children:[n&&e(Fe,{size:"xs"}),o.search&&o.search.length>0&&e(Z,{onClick:d,"aria-label":"clear",size:"xs",variant:"ghost",children:e(as,{})})]})]})}),e(nt,{colSpan:2,order:{base:1,md:2},children:r(_,{justifyContent:"flex-end",alignItems:"center",h:"full",children:[e(Z,{"aria-label":"refresh users",disabled:n,onClick:a,size:"sm",variant:"outline",children:e(Jr,{className:Ut({"animate-spin":n})})}),e(F,{colorScheme:"primary",size:"sm",onClick:()=>i(!0),px:5,children:l("createUser")})]})})]})},Kr="https://github.com/Gozargah/Marzban",cs="https://github.com/Gozargah",ds="https://github.com/Gozargah/Marzban#donation",en=t=>{const{version:n}=E();return e(_,{w:"full",py:"0",position:"relative",...t,children:r(u,{display:"inline-block",flexGrow:1,textAlign:"center",color:"gray.500",fontSize:"xs",children:[e(Kt,{color:"blue.400",href:Kr,children:"Marzban"}),n?` (v${n}), `:", ","Made with \u2764\uFE0F in"," ",e(Kt,{color:"blue.400",href:cs,children:"Gozargah"})]})})},us=x(zn,{baseStyle:{w:4,h:4}}),tn=({actions:t})=>{const{i18n:n}=j();var o=s=>{n.changeLanguage(s)};return r(Lr,{placement:"bottom-end",children:[e(Tr,{as:Z,size:"sm",variant:"outline",icon:e(us,{}),position:"relative"}),r(Ar,{minW:"100px",zIndex:9999,children:[e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("en"),children:"English"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("fa"),children:"\u0641\u0627\u0631\u0633\u06CC"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("zh-cn"),children:"\u7B80\u4F53\u4E2D\u6587"}),e(me,{maxW:"100px",fontSize:"sm",onClick:()=>o("ru"),children:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"})]})]})},be={baseStyle:{w:4,h:4}},hs=x(Dn,be),ps=x(En,be),ms=x(zr,be),gs=x(Un,be),fs=x(Rn,be),bs=x(Ln,be),xs=x($t,be),ys=x(Mr,be),Ss=x(Dt,be),Cs=x(Nr,be),pr=x(D,{baseStyle:{bg:"yellow.500",w:"2",h:"2",rounded:"full",position:"absolute"}}),rn="marzban-menu-notification",ws=()=>{const t=localStorage.getItem(rn);if(!t)return!0;try{return t&&An(parseInt(t))?Mn(new Date,new Date(parseInt(t)))>=7:!0}catch{return!0}},_s=({actions:t})=>{const{onEditingHosts:n,onResetAllUsage:o,onEditingNodes:s,onShowingNodesUsage:a}=E(),{t:i}=j(),{colorMode:l,toggleColorMode:h}=ct(),[p,S]=m.exports.useState(ws()),d=l==="dark"?"dark_dimmed":l,c=()=>{localStorage.setItem(rn,new Date().getTime().toString()),S(!1)};return r(_,{gap:2,justifyContent:"space-between",__css:{"& .menuList":{direction:"ltr"}},position:"relative",children:[e(u,{as:"h1",fontWeight:"semibold",fontSize:"2xl",children:i("users")}),p&&e(pr,{top:"0",right:"0",zIndex:9999}),e(D,{overflow:"auto",css:{direction:"rtl"},children:r(_,{alignItems:"center",children:[r(Lr,{children:[e(Tr,{as:Z,size:"sm",variant:"outline",icon:e(ge,{children:e(gs,{})}),position:"relative"}),r(Ar,{minW:"170px",zIndex:99999,className:"menuList",children:[e(me,{maxW:"170px",fontSize:"sm",icon:e(xs,{}),onClick:n.bind(null,!0),children:i("header.hostSettings")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(ys,{}),onClick:s.bind(null,!0),children:i("header.nodeSettings")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(Ss,{}),onClick:a.bind(null,!0),children:i("header.nodesUsage")}),e(me,{maxW:"170px",fontSize:"sm",icon:e(Cs,{}),onClick:o.bind(null,!0),children:i("resetAllUsage")}),e(er,{to:ds,target:"_blank",children:r(me,{maxW:"170px",fontSize:"sm",icon:e(bs,{}),position:"relative",onClick:c,children:[i("header.donation")," ",p&&e(pr,{top:"3",right:"2"})]})}),e(er,{to:"/login",children:e(me,{maxW:"170px",fontSize:"sm",icon:e(fs,{}),children:i("header.logout")})})]})]}),e(Z,{size:"sm",variant:"outline","aria-label":"core settings",onClick:()=>{E.setState({isEditingCore:!0})},children:e(ms,{})}),e(tn,{}),e(Z,{size:"sm",variant:"outline","aria-label":"switch theme",onClick:()=>{qr(l=="dark"?"light":"dark"),h()},children:l==="light"?e(hs,{}):e(ps,{})}),e(D,{css:{direction:"ltr"},display:"flex",alignItems:"center",pr:"2",__css:{"& span":{display:"inline-flex"}},children:e(Tn,{href:Kr,"data-color-scheme":`no-preference: ${d}; light: ${d}; dark: ${d};`,"data-size":"large","data-show-count":"true","aria-label":"Star Marzban on GitHub",children:"Star"})})]})})]})},ks=[{title:"Inbound's default",value:"inbound_default"},{title:"TLS",value:"tls"},{title:"None",value:"none"}],vs=[{title:"",value:""},{title:"h3",value:"h3"},{title:"h2",value:"h2"},{title:"http/1.1",value:"http/1.1"},{title:"h3,h2,http/1.1",value:"h3,h2,http/1.1"},{title:"h3,h2",value:"h3,h2"},{title:"h2,http/1.1",value:"h2,http/1.1"}],Is=[{title:"",value:""},...["chrome","firefox","safari","ios","android","edge","360","qq","random","randomized"].map(t=>({title:t,value:t}))],zs=[{title:"none",value:""},{title:"xtls-rprx-vision",value:"xtls-rprx-vision"}],Ds=["aes-128-gcm","aes-256-gcm","chacha20-ietf-poly1305"],Es=zt(t=>({isLoading:!1,isPostLoading:!1,hosts:{},fetchHosts:()=>{t({isLoading:!0}),O("/hosts").then(n=>t({hosts:n})).finally(()=>t({isLoading:!1}))},setHosts:n=>(t({isPostLoading:!0}),O("/hosts",{method:"PUT",body:n}).finally(()=>{t({isPostLoading:!1})}))}));const Us=x(Ur,{baseStyle:{w:4,h:4}}),Re=Ft.forwardRef(({disabled:t,step:n,label:o,className:s,startAdornment:a,endAdornment:i,type:l="text",placeholder:h,onChange:p,onBlur:S,name:d,value:c,onClick:w,error:I,clearable:f=!1,...y},T)=>{const g=()=>{p&&p({target:{value:"",name:d}})},{size:b="md"}=y,P=l=="number"?Hn:We,$=l=="number"?Nn:Ft.Fragment,v=l=="number"?{keepWithinRange:!0,precision:5,format:A=>isNaN(parseFloat(String(A)))||Number(parseFloat(String(A)).toFixed(5))===0?A:Number(parseFloat(String(A)).toFixed(5)),min:0,step:n,name:d,type:l,placeholder:h,onChange:A=>{p&&p(A)},onBlur:S,value:c,onClick:w,disabled:t,flexGrow:1,size:b}:{};return r(R,{isInvalid:!!I,children:[o&&e(H,{children:o}),r(St,{size:b,w:"full",rounded:"md",_focusWithin:{outline:"2px solid",outlineColor:"primary.200"},bg:t?"gray.100":"transparent",_dark:{bg:t?"gray.600":"transparent"},children:[a&&e(Fn,{children:a}),r($,{...v,children:[e(P,{name:d,ref:T,step:n,className:Ut(s),type:l,placeholder:h,onChange:p,onBlur:S,value:c,onClick:w,disabled:t,flexGrow:1,_focusVisible:{outline:"none",borderTopColor:"transparent",borderRightColor:"transparent",borderBottomColor:"transparent"},_disabled:{cursor:"not-allowed"},...y,roundedLeft:a?"0":"md",roundedRight:i?"0":"md"}),l=="number"&&e(ge,{children:r(Pn,{children:[e(Wn,{}),e(On,{})]})})]}),i&&e(jn,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",children:i}),f&&c&&c.length&&e(Ct,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",onClick:g,cursor:"pointer",children:e(Us,{})})]}),!!I&&e(wt,{children:I})]})}),At=x(Ne,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Ae=x(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Rs=x($t,{baseStyle:{w:5,h:5}}),Ee=x(Bn,{baseStyle:{w:4,h:4,color:"gray.400",cursor:"pointer"}}),Ls=C.record(C.string().min(1),C.array(C.object({remark:C.string().min(1,"Remark is required"),address:C.string().min(1,"Address is required"),port:C.string().or(C.number()).nullable().transform(t=>typeof t=="number"?t:t!==null&&!isNaN(parseInt(t))?Number(parseInt(t)):null),path:C.string().nullable(),sni:C.string().nullable(),host:C.string().nullable(),mux_enable:C.boolean().default(!1),allowinsecure:C.boolean().nullable().default(!1),is_disabled:C.boolean().default(!0),fragment_setting:C.string().nullable(),random_user_agent:C.boolean().default(!1),security:C.string(),alpn:C.string(),fingerprint:C.string()}))),Se=x(wt,{baseStyle:{color:"red.400",display:"block",textAlign:"left",w:"100%"}}),Ts=({hostKey:t,isOpen:n,toggleAccordion:o})=>{const{inbounds:s}=E(),a=[...s.values()].flat().filter(I=>I.tag===t)[0],i=Vt(),{fields:l,append:h,remove:p}=$n({control:i.control,name:t}),{errors:S}=i.formState,{t:d}=j(),c=S[t],w=()=>{h({host:"",sni:"",port:null,path:null,address:"",remark:"",mux_enable:!1,allowinsecure:!1,is_disabled:!1,fragment_setting:"",random_user_agent:!1,security:"inbound_default",alpn:"",fingerprint:""})};return m.exports.useEffect(()=>{c&&!n&&o()},[c]),r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:o,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:t}),e(Pt,{})]}),e(He,{px:2,pb:2,children:r(N,{gap:3,children:[l.map((I,f)=>{var y,T,g,b,P,$,v,A,G,q,L,V,X,z,W,K,gt,ft,de,Ve,Ce,Ge,bt,Ye,Ze,Qe,qe,Xe,k,M,ee,xe,ue,ye,Y,Je,Ke;return r(N,{border:"1px solid",_dark:{borderColor:"gray.600",bg:"#273142"},_light:{borderColor:"gray.200",bg:"#fcfbfb"},p:2,w:"full",borderRadius:"4px",children:[e(_,{w:"100%",alignItems:"flex-start",children:r(R,{position:"relative",zIndex:10,isInvalid:!!(c&&((y=c[f])==null?void 0:y.remark)),children:[r(St,{children:[e(Ae,{...i.register(t+"."+f+".remark"),size:"sm",borderRadius:"4px",placeholder:"Remark"}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(tr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((T=c[f])==null?void 0:T.remark)&&e(Se,{children:(b=(g=c[f])==null?void 0:g.remark)==null?void 0:b.message})]})}),r(R,{isInvalid:!!(c&&((P=c[f])==null?void 0:P.address)),children:[r(St,{children:[e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Address (e.g. example.com)",...i.register(t+"."+f+".address")}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(tr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(U,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(U,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(U,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(U,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(U,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(U,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(U,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(U,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(U,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(U,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&(($=c[f])==null?void 0:$.address)&&e(Se,{children:(A=(v=c[f])==null?void 0:v.address)==null?void 0:A.message})]}),e(ut,{w:"full",allowToggle:!0,children:r(Oe,{border:"0",children:[r(je,{display:"flex",px:0,py:1,borderRadius:3,_hover:{bg:"transparent"},children:[r(u,{flex:"3",align:"start",fontSize:"xs",color:"gray.600",_dark:{color:"gray.500"},pl:1,children:[d("hostsDialog.advancedOptions"),e(Pt,{fontSize:"sm",ml:1})]}),r(Vn,{flex:"1",px:"0",children:[e(pe,{control:i.control,name:`${t}.${f}.is_disabled`,render:({field:Q})=>e(_t,{mx:"1.5",colorScheme:"primary",...Q,value:void 0,isChecked:!Q.value,onChange:et=>{console.log(et.target.checked),Q.onChange(!et.target.checked)}})}),e(re,{label:"Delete",placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",colorScheme:"red",variant:"ghost",onClick:p.bind(null,f),children:e(ht,{})})})]})]}),e(He,{w:"full",p:1,children:r(N,{w:"full",borderRadius:"4px",children:[r(R,{isInvalid:!!(c&&((G=c[f])==null?void 0:G.port)),children:[r(H,{display:"flex",pb:1,alignItems:"center",justifyContent:"space-between",gap:1,m:"0",children:[e("span",{children:d("hostsDialog.port")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.port.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:String(a.port||"8080"),type:"number",...i.register(t+"."+f+".port")})]}),r(R,{isInvalid:!!(c&&((q=c[f])==null?void 0:q.sni)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.sni")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.sni.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"SNI (e.g. example.com)",...i.register(t+"."+f+".sni")}),c&&((L=c[f])==null?void 0:L.sni)&&e(Se,{children:(X=(V=c[f])==null?void 0:V.sni)==null?void 0:X.message})]}),r(R,{isInvalid:!!(c&&((z=c[f])==null?void 0:z.host)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.host")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.host.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(U,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(U,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Host (e.g. example.com)",...i.register(t+"."+f+".host")}),c&&((W=c[f])==null?void 0:W.host)&&e(Se,{children:(gt=(K=c[f])==null?void 0:K.host)==null?void 0:gt.message})]}),r(R,{isInvalid:!!(c&&((ft=c[f])==null?void 0:ft.path)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.path")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.path.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"path (e.g. /vless)",...i.register(t+"."+f+".path")}),c&&((de=c[f])==null?void 0:de.path)&&e(Se,{children:(Ce=(Ve=c[f])==null?void 0:Ve.path)==null?void 0:Ce.message})]}),r(R,{height:"66px",children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.security")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.security.info")})]})})]})]}),e(At,{size:"sm",...i.register(t+"."+f+".security"),children:ks.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{height:"66px",children:[e(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.alpn")})}),e(At,{size:"sm",...i.register(t+"."+f+".alpn"),children:vs.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{height:"66px",children:[e(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.fingerprint")})}),e(At,{size:"sm",...i.register(t+"."+f+".fingerprint"),children:Is.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(R,{isInvalid:!!(c&&((Ge=c[f])==null?void 0:Ge.fragment_setting)),children:[r(H,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.fragment")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.fragment.info")}),e(u,{fontSize:"xs",pr:5,pt:2,pb:1,children:d("hostsDialog.fragment.info.examples")}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,tlshello"}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,1-3"}),e(u,{fontSize:"xs",pr:5,pt:"3",children:d("hostsDialog.fragment.info.attention")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Fragment settings by pattern",...i.register(t+"."+f+".fragment_setting")}),c&&((bt=c[f])==null?void 0:bt.fragment_setting)&&e(Se,{children:(Ze=(Ye=c[f])==null?void 0:Ye.fragment_setting)==null?void 0:Ze.message})]}),e(R,{isInvalid:!!(c&&((Qe=c[f])==null?void 0:Qe.allowinsecure)),children:r(ot,{...i.register(t+"."+f+".allowinsecure"),name:t+"."+f+".allowinsecure",children:[e(H,{children:d("hostsDialog.allowinsecure")}),c&&((qe=c[f])==null?void 0:qe.allowinsecure)&&e(Se,{children:(k=(Xe=c[f])==null?void 0:Xe.allowinsecure)==null?void 0:k.message})]})}),r(R,{isInvalid:!!(c&&((M=c[f])==null?void 0:M.mux_enable)),children:[e(ot,{...i.register(t+"."+f+".mux_enable"),children:e(H,{children:d("hostsDialog.muxEnable")})}),c&&((ee=c[f])==null?void 0:ee.mux_enable)&&e(Se,{children:(ue=(xe=c[f])==null?void 0:xe.mux_enable)==null?void 0:ue.message})]}),r(R,{isInvalid:!!(c&&((ye=c[f])==null?void 0:ye.random_user_agent)),children:[e(ot,{...i.register(t+"."+f+".random_user_agent"),children:e(H,{children:d("hostsDialog.randomUserAgent")})}),c&&((Y=c[f])==null?void 0:Y.random_user_agent)&&e(Se,{children:(Ke=(Je=c[f])==null?void 0:Je.random_user_agent)==null?void 0:Ke.message})]})]},f)})]})})]},f)}),e(F,{variant:"outline",w:"full",size:"sm",color:"",fontWeight:"normal",onClick:w,children:d("hostsDialog.addHost")})]})})]})},As=()=>{const{isEditingHosts:t,onEditingHosts:n,refetchUsers:o,inbounds:s}=E(),{isLoading:a,hosts:i,fetchHosts:l,isPostLoading:h,setHosts:p}=Es(),S=fe(),{t:d}=j(),[c,w]=m.exports.useState({});m.exports.useEffect(()=>{t&&l()},[t]);const I=Be({resolver:dt(Ls)});m.exports.useEffect(()=>{i&&t&&I.reset(i)},[i]);const f=()=>{w({}),n(!1)},y=g=>{p(g).then(()=>{S({title:d("hostsDialog.savedSuccess"),status:"success",isClosable:!0,position:"top",duration:3e3}),o()}).catch(b=>{var P,$,v,A,G;(((P=b==null?void 0:b.response)==null?void 0:P.status)===409||(($=b==null?void 0:b.response)==null?void 0:$.status)===400)&&S({title:(A=(v=b.response)==null?void 0:v._data)==null?void 0:A.detail,status:"error",isClosable:!0,position:"top",duration:3e3}),((G=b==null?void 0:b.response)==null?void 0:G.status)===422&&Object.keys(b.response._data.detail).forEach(q=>{S({title:b.response._data.detail[q]+" ("+q+")",status:"error",isClosable:!0,position:"top",duration:3e3})})})},T=g=>{c[String(g)]?delete c[String(g)]:c[String(g)]={},w({...c})};return r(ne,{isOpen:t,onClose:f,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Rs,{color:"white"})})}),e(ie,{mt:3}),e(le,{w:"440px",pb:3,pt:3,children:e(Fr,{...I,children:r("form",{onSubmit:I.handleSubmit(y),children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:d("hostsDialog.title")}),a&&d("hostsDialog.loading"),!a&&i&&(Object.keys(i).length>0?e(ut,{w:"full",allowToggle:!0,allowMultiple:!0,index:Object.keys(c).map(g=>parseInt(g)),children:e(N,{w:"full",children:Object.keys(i).map((g,b)=>e(Ts,{toggleAccordion:()=>T(b),isOpen:c[String(b)],hostKey:g},g))})}):"No inbound found. Please check your Xray config file."),e(_,{justifyContent:"flex-end",py:2,children:e(F,{variant:"solid",mt:"2",type:"submit",colorScheme:"primary",size:"sm",px:5,isLoading:h,disabled:h,children:d("hostsDialog.apply")})})]})})})]})]})},nn=C.object({name:C.string().min(1),address:C.string().min(1),port:C.number().min(1).or(C.string().transform(t=>parseFloat(t))),api_port:C.number().min(1).or(C.string().transform(t=>parseFloat(t))),xray_version:C.string().nullable().optional(),id:C.number().nullable().optional(),status:C.enum(["connected","connecting","error","disabled"]).nullable().optional(),message:C.string().nullable().optional(),add_as_new_host:C.boolean().optional(),usage_coefficient:C.number().or(C.string().transform(t=>parseFloat(t)))}),Ms=()=>({name:"",address:"",port:62050,api_port:62051,xray_version:"",usage_coefficient:1}),lt="fetch-nodes-query-key",Ns=()=>{const{isEditingNodes:t}=E();return Bt({queryKey:lt,queryFn:pt.getState().fetchNodes,refetchInterval:t?3e3:void 0,refetchOnWindowFocus:!1})},pt=zt((t,n)=>({nodes:[],addNode(o){return O("/node",{method:"POST",body:o})},fetchNodes(){return O("/nodes")},fetchNodesUsage(o){return O("/nodes/usage",{query:o})},updateNode(o){return O(`/node/${o.id}`,{method:"PUT",body:o})},setDeletingNode(o){t({deletingNode:o})},reconnectNode(o){return O(`/node/${o.id}/reconnect`,{method:"POST"})},deleteNode:()=>{var o;return O(`/node/${(o=n().deletingNode)==null?void 0:o.id}`,{method:"DELETE"})}})),Qt=(t,n,o)=>{if(t.response&&t.response._data){if(typeof t.response._data.detail=="string")return n({title:t.response._data.detail,status:"error",isClosable:!0,position:"top",duration:3e3});if(typeof t.response._data.detail=="object"&&o){Object.keys(t.response._data.detail).forEach(s=>o.setError(s,{message:t.response._data.detail[s]}));return}}return n({title:"Something went wrong!",status:"error",isClosable:!0,position:"top",duration:3e3})},qt=(t,n)=>n({title:t,status:"success",isClosable:!0,position:"top",duration:3e3}),Fs=({deleteCallback:t})=>{const{deleteNode:n,deletingNode:o,setDeletingNode:s}=pt(),{t:a}=j(),i=fe(),l=Gt(),h=()=>{s(null)},{isLoading:p,mutate:S}=at(n,{onSuccess:()=>{qt(a("deleteNode.deleteSuccess",{name:o&&o.name}),i),s(null),l.invalidateQueries(lt),t&&t()},onError:d=>{Qt(d,i)}});return r(ne,{isCentered:!0,isOpen:!!o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(ht,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("deleteNode.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("deleteNode.prompt",{name:o.name})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:()=>S(),leftIcon:p?e(Fe,{size:"xs"}):void 0,children:a("delete")})]})]})]})},mt={baseStyle:{strokeWidth:"2px",w:4,h:4}},mr=x(Gn,mt),Ps=x(Yn,mt),gr=x(Zn,mt),fr=x(Pr,mt),Ws=x(Pr,mt),jt=[{title:"No",value:"no_reset"},{title:"Daily",value:"day"},{title:"Weekly",value:"week"},{title:"Monthly",value:"month"},{title:"Annually",value:"year"}],st={active:{statusColor:"green",bandWidthColor:"primary",icon:mr},connected:{statusColor:"green",bandWidthColor:"primary",icon:mr},disabled:{statusColor:"gray",bandWidthColor:"gray",icon:Ps},expired:{statusColor:"orange",bandWidthColor:"orange",icon:fr},on_hold:{statusColor:"purple",bandWidthColor:"purple",icon:Ws},connecting:{statusColor:"orange",bandWidthColor:"orange",icon:fr},limited:{statusColor:"red",bandWidthColor:"red",icon:gr},error:{statusColor:"red",bandWidthColor:"red",icon:gr}},Xt=t=>{let n={status:"",time:""};if(t){B(t*1e3).utc().isAfter(B().utc())?n.status="expires":n.status="expired";const o=[],s=B.duration(B(t*1e3).utc().diff(B()));s.years()!=0&&o.push(Math.abs(s.years())+" year"+(Math.abs(s.years())!=1?"s":"")),s.months()!=0&&o.push(Math.abs(s.months())+" month"+(Math.abs(s.months())!=1?"s":"")),s.days()!=0&&o.push(Math.abs(s.days())+" day"+(Math.abs(s.days())!=1?"s":"")),o.length===0&&(s.hours()!=0&&o.push(Math.abs(s.hours())+" hour"+(Math.abs(s.hours())!=1?"s":"")),s.minutes()!=0&&o.push(Math.abs(s.minutes())+" min"+(Math.abs(s.minutes())!=1?"s":""))),n.time=o.join(", ")}return n},yt=({expiryDate:t,status:n,compact:o=!1,showDetail:s=!0,extraText:a})=>{const{t:i}=j(),l=Xt(t),h=st[n].icon;return r(ge,{children:[r(U,{colorScheme:st[n].statusColor,rounded:"full",display:"inline-flex",px:3,py:1,columnGap:o?1:2,alignItems:"center",children:[e(h,{w:o?3:4}),s&&r(u,{textTransform:"capitalize",fontSize:o?".7rem":".875rem",lineHeight:o?"1rem":"1.25rem",fontWeight:"medium",letterSpacing:"tighter",children:[n,a&&`: ${a}`]})]}),s&&t&&e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:i(l.status,{time:l.time})})]})},rt=x(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Os=x(Mr,{baseStyle:{w:5,h:5}}),js=x(Qn,{baseStyle:{w:5,h:5,strokeWidth:2}}),Hs=({toggleAccordion:t,node:n})=>{const{updateNode:o,reconnectNode:s,setDeletingNode:a}=pt(),{t:i}=j(),l=Gt(),h=fe(),p=Be({defaultValues:n,resolver:dt(nn)}),S=a.bind(null,n),{isLoading:d,mutate:c}=at(o,{onSuccess:()=>{qt("Node updated successfully",h),l.invalidateQueries(lt)},onError:y=>{Qt(y,h,p)}}),{isLoading:w,mutate:I}=at(s.bind(null,n),{onSuccess:()=>{l.invalidateQueries(lt)}}),f=w?"connecting":n.status?n.status:"error";return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(je,{px:2,borderRadius:"3px",onClick:t,children:[r(_,{w:"full",justifyContent:"space-between",pr:2,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:n.name}),r(_,{children:[n.xray_version&&e(U,{colorScheme:"blue",rounded:"full",display:"inline-flex",px:3,py:1,children:r(u,{textTransform:"capitalize",fontSize:"0.7rem",fontWeight:"medium",letterSpacing:"tighter",children:["Xray ",n.xray_version]})}),n.status&&e(yt,{status:f,compact:!0})]})]}),e(Pt,{})]}),r(He,{px:2,pb:2,children:[e(N,{pb:3,alignItems:"flex-start",children:f==="error"&&e(it,{status:"error",size:"xs",children:r(D,{children:[r(_,{w:"full",children:[e(kt,{w:4}),e(u,{marginInlineEnd:0,children:n.message})]}),e(_,{justifyContent:"flex-end",w:"full",children:e(F,{size:"sm","aria-label":"reconnect node",leftIcon:e(Jr,{}),onClick:()=>I(),disabled:w,children:i(w?"nodes.reconnecting":"nodes.reconnect")})})]})})}),e(on,{form:p,mutate:c,isLoading:d,submitBtnText:i("nodes.editNode"),btnLeftAdornment:e(re,{label:i("delete"),placement:"top",children:e(Z,{colorScheme:"red",variant:"ghost",size:"sm","aria-label":"delete node",onClick:S,children:e(ht,{})})})})]})]})},Bs=({toggleAccordion:t,resetAccordions:n})=>{const o=fe(),{t:s}=j(),a=Gt(),{addNode:i}=pt(),l=Be({resolver:dt(nn),defaultValues:{...Ms(),add_as_new_host:!0}}),{isLoading:h,mutate:p}=at(i,{onSuccess:()=>{qt(s("nodes.addNodeSuccess",{name:l.getValues("name")}),o),a.invalidateQueries(lt),l.reset(),n()},onError:S=>{Qt(S,o,l)}});return r(Oe,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[e(je,{px:2,borderRadius:"3px",onClick:t,children:r(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},display:"flex",gap:1,children:[e(js,{display:"inline-block"})," ",e("span",{children:s("nodes.addNewMarzbanNode")})]})}),e(He,{px:2,py:4,children:e(on,{form:l,mutate:p,isLoading:h,submitBtnText:s("nodes.addNode"),btnProps:{variant:"solid"},addAsHost:!0})})]})},on=({form:t,mutate:n,isLoading:o,submitBtnText:s,btnProps:a={},btnLeftAdornment:i,addAsHost:l=!1})=>{var I,f,y,T,g,b,P,$,v,A,G,q,L,V,X;const{t:h}=j(),[p,S]=m.exports.useState(!1),{data:d,isLoading:c}=Bt({queryKey:"node-settings",queryFn:()=>O("/node/settings")});function w(z){if(document.body.createTextRange){const W=document.body.createTextRange();W.moveToElementText(z),W.select()}else if(window.getSelection){const W=window.getSelection(),K=document.createRange();K.selectNodeContents(z),W.removeAllRanges(),W.addRange(K)}else console.warn("Could not select text in node: Unsupported browser.")}return e("form",{onSubmit:t.handleSubmit(z=>n(z)),children:r(N,{children:[d&&d.certificate&&e(it,{status:"info",alignItems:"start",children:r(Wr,{display:"flex",flexDirection:"column",overflow:"hidden",children:[e("span",{children:h("nodes.connection-hint")}),r(_,{justify:"end",py:2,children:[e(F,{as:"a",colorScheme:"primary",size:"xs",download:"ssl_client_cert.pem",href:URL.createObjectURL(new Blob([d.certificate],{type:"text/plain"})),children:h("nodes.download-certificate")}),e(re,{placement:"top",label:h("nodes.show-certificate"),children:e(Z,{"aria-label":h("nodes.show-certificate"),onClick:S.bind(null,!p),colorScheme:"whiteAlpha",color:"primary",size:"xs",children:p?e(Xn,{width:"15px"}):e(qn,{width:"15px"})})})]}),e(Or,{in:p,animateOpacity:!0,children:e(u,{bg:"rgba(255,255,255,.5)",_dark:{bg:"rgba(255,255,255,.2)"},rounded:"md",p:"2",lineHeight:"1.2",fontSize:"10px",fontFamily:"Courier",whiteSpace:"pre",overflow:"auto",onClick:z=>{w(z.target)},children:d.certificate})})]})}),r(_,{w:"full",children:[e(R,{children:e(rt,{label:h("nodes.nodeName"),size:"sm",placeholder:"Marzban-S2",...t.register("name"),error:(y=(f=(I=t.formState)==null?void 0:I.errors)==null?void 0:f.name)==null?void 0:y.message})}),e(_,{px:1,children:e(pe,{name:"status",control:t.control,render:({field:z})=>e(re,{placement:"top",label:`${h("usersTable.status")}: `+(z.value!=="disabled"?h("active"):h("disabled")),textTransform:"capitalize",children:e(D,{mt:"6",children:e(_t,{colorScheme:"primary",isChecked:z.value!=="disabled",onChange:W=>{W.target.checked?z.onChange("connecting"):z.onChange("disabled")}})})},z.value)})})]}),e(_,{alignItems:"flex-start",w:"100%",children:e(D,{w:"100%",children:e(rt,{label:h("nodes.nodeAddress"),size:"sm",placeholder:"51.20.12.13",...t.register("address"),error:(b=(g=(T=t.formState)==null?void 0:T.errors)==null?void 0:g.address)==null?void 0:b.message})})}),r(_,{alignItems:"flex-start",w:"100%",children:[e(D,{children:e(rt,{label:h("nodes.nodePort"),size:"sm",placeholder:"62050",...t.register("port"),error:(v=($=(P=t.formState)==null?void 0:P.errors)==null?void 0:$.port)==null?void 0:v.message})}),e(D,{children:e(rt,{label:h("nodes.nodeAPIPort"),size:"sm",placeholder:"62051",...t.register("api_port"),error:(q=(G=(A=t.formState)==null?void 0:A.errors)==null?void 0:G.api_port)==null?void 0:q.message})}),e(D,{children:e(rt,{label:h("nodes.usageCoefficient"),size:"sm",placeholder:"1",...t.register("usage_coefficient"),error:(X=(V=(L=t.formState)==null?void 0:L.errors)==null?void 0:V.usage_coefficient)==null?void 0:X.message})})]}),l&&e(R,{py:1,children:e(ot,{...t.register("add_as_new_host"),children:e(H,{m:0,children:h("nodes.addHostForEveryInbound")})})}),r(_,{w:"full",children:[i,e(F,{flexGrow:1,type:"submit",colorScheme:"primary",size:"sm",px:5,w:"full",isLoading:o,...a,children:s})]})]})})},$s=()=>{const{isEditingNodes:t,onEditingNodes:n}=E(),{t:o}=j(),[s,a]=m.exports.useState({}),{data:i,isLoading:l}=Ns(),h=()=>{a({}),n(!1)},p=S=>{s[String(S)]?delete s[String(S)]:s[String(S)]={},a({...s})};return r(ge,{children:[r(ne,{isOpen:t,onClose:h,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Os,{color:"white"})})}),e(ie,{mt:3}),r(le,{w:"440px",pb:6,pt:3,children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:o("nodes.title")}),l&&"loading...",e(ut,{w:"full",allowToggle:!0,index:Object.keys(s).map(S=>parseInt(S)),children:r(N,{w:"full",children:[!l&&i&&i.map((S,d)=>e(Hs,{toggleAccordion:()=>p(d),node:S},S.name)),e(Bs,{toggleAccordion:()=>p((i||[]).length),resetAccordions:()=>a({})})]})})]})]})]}),e(Fs,{deleteCallback:()=>a({})})]})};function Vs(t){const n=360/t,o=90,s=47,a=[];for(let i=0;i(w<0&&(w+=1),w>1&&(w-=1),w<.16666666666666666?d+(c-d)*6*w:w<.5?c:w<.6666666666666666?d+(c-d)*(.6666666666666666-w)*6:d),p=o<.5?o*(1+n):o+n-o*n,S=2*o-p;s=Math.round(h(S,p,t+1/3)*255),a=Math.round(h(S,p,t)*255),i=Math.round(h(S,p,t-1/3)*255)}const l=h=>{const p=h.toString(16);return p.length===1?"0"+p:p};return`#${l(s)}${l(a)}${l(i)}`}const br=({border:t,...n})=>{const{getInputProps:o,getRadioProps:s}=oo(n),a=Me({base:"xs",md:"sm"});return r(D,{as:"label",children:[e("input",{...o()}),e(D,{...s(),minW:"48px",w:"full",h:"full",textAlign:"center",cursor:"pointer",fontSize:a,borderWidth:t?"1px":"0px",borderRadius:"md",_checked:{bg:"primary.500",color:"white",borderColor:"primary.500"},_focus:{boxShadow:"outline"},px:3,py:1,children:n.children})]})},sn=({onChange:t,defaultValue:n,...o})=>{const{t:s,i18n:a}=j();ct();const i=Me({base:["7h","1d","3d","1w"],md:["7h","1d","3d","1w","1m","3m"]}),l={h:"hour",d:"day",w:"week",m:"month",y:"year"},h=Me({base:[{title:"hours",options:["1h","3h","6h","12h"]},{title:"days",options:["1d","2d","3d","4d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m"]}],md:[{title:"hours",options:["1h","2h","3h","6h","8h","12h"]},{title:"days",options:["1d","2d","3d","4d","5d","6d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m","8m"]}]}),{getRootProps:p,getRadioProps:S,setValue:d}=Jn({name:"filter",defaultValue:n,onChange:z=>{if(z==="custom")return;I(),i.indexOf(z)>=0?(T(s("userDialog.custom")),b(!1)):(T(s("userDialog.custom")+` (${z})`),b(!0));const W=Number(z.substring(0,z.length-1)),K=l[z[z.length-1]];t(z,{start:B().utc().subtract(W,K).format("YYYY-MM-DDTHH:00:00")})}}),{isOpen:c,onOpen:w,onClose:I}=Kn(),f=m.exports.useRef(null);eo({ref:f,handler:I});const[y,T]=m.exports.useState(s("userDialog.custom")),[g,b]=m.exports.useState(!1),[P,$]=m.exports.useState(0),v=Me({base:1,md:2}),A=Me({base:"xs",md:"sm"}),[G,q]=m.exports.useState(null),[L,V]=m.exports.useState(null),X=z=>{const[W,K]=z;L&&!K?(q(null),V(null)):(q(W),V(K),W&&K&&(I(),t("custom",{start:B(W).format("YYYY-MM-DDT00:00:00"),end:B(K).format("YYYY-MM-DDT23:59:59")})))};return r(N,{...o,children:[P==0&&r(Yt,{...p(),gap:0,display:"flex",borderWidth:"1px",borderRadius:"md",minW:{base:"320px",md:"400px"},children:[i.map(z=>e(br,{...S({value:z}),children:z},z)),e(D,{onClick:()=>{q(null),V(null),w()},cursor:"pointer",borderRadius:"md",w:"full",fontSize:A,px:3,py:1,bg:g?"primary.500":"unset",color:g?"white":"unset",borderColor:g?"primary.500":"unset",children:r(_,{children:[e(u,{children:y}),e(Lt,{as:rr,boxSize:"18px"})]})})]}),P==1&&r(_,{onClick:w,cursor:"pointer",fontSize:A,borderRadius:"md",px:3,py:1,minW:{base:"320px",md:"400px"},borderWidth:"1px",children:[e(u,{w:"full",color:G?"unset":"gray.500",children:G?B(G).format("YYYY-MM-DD (00:00)"):s("userDialog.startDate")}),e(Lt,{as:jr,boxSize:"18px"}),e(u,{w:"full",color:L?"unset":"gray.500",children:L?B(L).format("YYYY-MM-DD (23:59)"):s("userDialog.endDate")}),e(Lt,{as:rr,boxSize:"18px"})]}),e(N,{ref:f,marginTop:"40px !important",borderRadius:"md",borderWidth:"1px",position:"absolute",zIndex:"1",backgroundColor:"white",_dark:{backgroundColor:"gray.700"},display:c?"unset":"none",children:r(to,{onChange:z=>$(z),children:[r(ro,{children:[e(nr,{fontSize:A,children:s("userDialog.relative")}),e(nr,{fontSize:A,children:s("userDialog.absolute")})]}),r(no,{children:[e(or,{children:h.map(z=>e(N,{alignItems:"start",pl:2,pr:2,children:r(_,{justifyItems:"flex-start",mb:4,children:[e(u,{fontSize:A,minW:"60px",children:s("userDialog."+z.title)}),z.options.map(W=>e(br,{border:!0,...S({value:W}),children:W},W+".custom"))]})},z.title))}),e(or,{className:"datepicker-panel",children:e(N,{children:e(Hr,{locale:a.language.toLocaleLowerCase(),selected:G,onChange:X,startDate:G,endDate:L,selectsRange:!0,maxDate:new Date,monthsShown:v,peekNextMonth:!1,inline:!0})})})]})]})})]})};function It(t,n,o=[],s=[]){const a=te(o.reduce((i,l)=>i+=l,0));return{series:o,options:{labels:s,chart:{width:"100%",height:"100%",type:"donut",animations:{enabled:!1}},title:{text:`${n}${a}`,align:"center",style:{fontWeight:"var(--chakra-fontWeights-medium)",color:t==="dark"?"var(--chakra-colors-gray-300)":void 0}},legend:{position:"bottom",labels:{colors:t==="dark"?"#CBD5E0":void 0,useSeriesColors:!1}},stroke:{width:1,colors:void 0},dataLabels:{formatter:(i,{seriesIndex:l,w:h})=>te(h.config.series[l],1)},tooltip:{custom:({series:i,seriesIndex:l,dataPointIndex:h,w:p})=>{const S=te(i[l],1),d=Math.max(i.reduce((w,I)=>w+=I),1),c=Math.round(i[l]/d*1e3)/10+"%";return` -
- ${p.config.labels[l]}: ${c}, ${S} -
- `}},colors:Vs(o.length)}}}const Ys=x(Dt,{baseStyle:{w:5,h:5}}),Zs=()=>{const{isShowingNodesUsage:t,onShowingNodesUsage:n}=E(),{fetchNodesUsage:o}=pt(),{t:s}=j(),[a,i]=m.exports.useState(!1),{colorMode:l}=ct(),h=s("userDialog.total"),[p,S]=m.exports.useState(It(l,h)),[d,c]=m.exports.useState("1m"),w=y=>{o(y).then(T=>{const g=[],b=[];for(const P in T.usages){const $=T.usages[P];b.push($.uplink+$.downlink),g.push($.node_name)}S(It(l,h,b,g))})};m.exports.useEffect(()=>{t&&w({start:B().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")})},[t]);const I=()=>{n(!1),c("1m")},f=a;return r(ne,{isOpen:t,onClose:I,size:"2xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"full",children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:e(Ys,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:s("header.nodesUsage")})]})}),e(ie,{mt:3,disabled:f}),e(le,{children:r(N,{gap:4,children:[e(sn,{defaultValue:d,onChange:(y,T)=>{c(y),w(T)}}),e(D,{justifySelf:"center",w:"full",maxW:"300px",mt:"4",children:e(m.exports.Suspense,{fallback:e(Er,{isIndeterminate:!0}),children:e(Br,{options:p.options,series:p.series,type:"donut",height:"500px"})})})]})}),e(Le,{mt:"3"})]})]})},xr=x(so),Qs=x(jr,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),qs=x(ao,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Xs=x($r,{baseStyle:{w:5,h:5}}),Js=()=>{const{QRcodeLinks:t,setQRCode:n,setSubLink:o,subscribeUrl:s}=E(),a=t!==null,[i,l]=m.exports.useState(0),{t:h}=j(),p=()=>{n(null),o(null)},S=String(s).startsWith("/")?window.location.origin+s:String(s);return r(ne,{isOpen:a,onClose:p,children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ae,{pt:6,children:e(ce,{color:"primary",children:e(Xs,{color:"white"})})}),e(ie,{mt:3}),t&&r(le,{gap:{base:"20px",lg:"50px"},pr:{lg:"60px"},px:{base:"50px"},display:"flex",justifyContent:"center",flexDirection:{base:"column",lg:"row"},children:[s&&r(N,{children:[e(xr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:S,bg:"white"}),e(u,{display:"block",textAlign:"center",pb:3,mt:1,children:h("qrcodeDialog.sublink")})]}),r(D,{w:"300px",children:[e(io,{centerPadding:"0px",centerMode:!0,slidesToShow:1,slidesToScroll:1,dots:!1,afterChange:l,onInit:()=>l(0),nextArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"next",mr:"-4",children:e(Qs,{})}),prevArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"prev",ml:"-4",children:e(qs,{})}),children:t.map((d,c)=>e(_,{children:e(xr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:d,bg:"white"})},c))}),r(u,{display:"block",textAlign:"center",pb:3,mt:1,children:[i+1," / ",t.length]})]})]})]})]})},Ks=x(Nr,{baseStyle:{w:5,h:5}}),ea=()=>{const[t,n]=m.exports.useState(!1),{isResetingAllUsage:o,onResetAllUsage:s,resetAllUsage:a}=E(),{t:i}=j(),l=fe(),h=()=>{s(!1)},p=()=>{n(!0),a().then(()=>{l({title:i("resetAllUsage.success"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{l({title:i("resetAllUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)})};return r(ne,{isCentered:!0,isOpen:o,onClose:h,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"red",children:e(Ks,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("resetAllUsage.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:i("resetAllUsage.prompt")})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:i("reset")})]})]})]})},ta=x(Et,{baseStyle:{w:5,h:5}}),ra=()=>{const[t,n]=m.exports.useState(!1),{resetUsageUser:o,resetDataUsage:s}=E(),{t:a}=j(),i=fe(),l=()=>{E.setState({resetUsageUser:null})},h=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("resetUserUsage.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("resetUserUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"blue",children:e(ta,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("resetUserUsage.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("resetUserUsage.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:a("reset")})]})]})]})},na=x(Et,{baseStyle:{w:5,h:5}}),oa=()=>{const[t,n]=m.exports.useState(!1),{revokeSubscriptionUser:o,revokeSubscription:s}=E(),{t:a}=j(),i=fe(),l=()=>{E.setState({revokeSubscriptionUser:null})},h=()=>{o&&(n(!0),s(o).then(()=>{i({title:a("revokeUserSub.success",{username:o.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("revokeUserSub.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{n(!1)}))};return r(ne,{isCentered:!0,isOpen:!!o,onClose:l,size:"sm",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(se,{mx:"3",children:[e(ae,{pt:6,children:e(ce,{color:"blue",children:e(na,{})})}),e(ie,{mt:3}),r(le,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("revokeUserSub.title")}),o&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("revokeUserSub.prompt",{username:o.username})})})]}),r(Le,{display:"flex",children:[e(F,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(F,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Fe,{size:"xs"}):void 0,children:a("revoke")})]})]})]})},sa=x(lo,{baseStyle:{strokeWidth:"2px",w:5,h:5}}),aa=({inbound:t,...n})=>{const{getCheckboxProps:o,getInputProps:s,getLabelProps:a,htmlProps:i}=Gr(n),l=s();return r(D,{as:"label",children:[e("input",{...l}),r(D,{w:"fll",position:"relative",...i,cursor:"pointer",borderRadius:"sm",border:"1px solid",borderColor:"gray.200",_dark:{borderColor:"gray.600"},display:"flex",alignItems:"center",justifyContent:"space-between",overflow:"hidden",_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent",fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& p":{opacity:1}},__css:{"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...o(),children:[e(ot,{size:"sm",w:"full",maxW:"full",color:"gray.700",_dark:{color:"gray.300"},textTransform:"uppercase",colorScheme:"primary",className:"inbound-item",isChecked:l.checked,pointerEvents:"none",flexGrow:1,children:e(_,{justify:"space-between",w:"full",maxW:"calc(100% - 20px)",spacing:0,gap:2,overflow:"hidden",children:r(u,{isTruncated:!0,...a(),fontSize:"xs",children:[t.tag," ",r(u,{as:"span",children:["(",t.network,")"]})]})})}),t.tls&&t.tls!="none"&&e(U,{fontSize:"xs",opacity:".8",size:"xs",children:t.tls})]})]})},ia=({disabled:t,title:n,description:o,toggleAccordion:s,isSelected:a,...i})=>{const l=Vt(),{inbounds:h}=E(),{getCheckboxProps:p,getInputProps:S,getLabelProps:d,htmlProps:c}=Gr(i),w=S(),[I]=Yr({name:[`inbounds.${n}`],control:l.control}),{getCheckboxProps:f}=Vr({value:I,onChange:b=>{if(l.setValue(`inbounds.${n}`,b),b.length===0){const P=l.getValues("selected_proxies");l.setValue("selected_proxies",P.filter($=>$!==n)),s()}}}),y=I&&a&&(E.getState().inbounds.get(n)||[]).length!==I.length,T=(E.getState().inbounds.get(n)||[]).length>0,g=!a&&!T;return r(Oe,{isDisabled:!T,borderRadius:"md",borderStyle:"solid",border:"1px",borderColor:"gray.200",bg:g?"gray.100":"transparent",_dark:{borderColor:"gray.600",bg:g?"#364154":"transparent"},_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent"},...p(),children:[r(D,{as:g?"span":"label",position:"relative",children:[y&&e(D,{position:"absolute",w:"2",h:"2",bg:"yellow.500",top:"-1",right:"-1",rounded:"full",zIndex:999}),e("input",{...w}),r(D,{w:"fll",position:"relative",...c,borderRadius:"md",cursor:g?"not-allowed":"pointer",_checked:{fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& > svg":{opacity:1,"&.checked":{display:"block"},"&.unchecked":{display:"none"}},"& p":{opacity:1}},__css:{"& > svg":{opacity:.3,"&.checked":{display:"none"},"&.unchecked":{display:"block"}},"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...p(),children:[e(je,{display:w.checked&&T?"block":"none",as:"span",className:"checked",color:"primary.200",position:"absolute",right:"3",top:"3",w:"auto",p:0,onClick:s,children:e(Z,{size:"sm","aria-label":"inbound settings",children:e(sa,{})})}),e(u,{fontSize:"sm",color:g?"gray.400":"gray.700",_dark:{color:g?"gray.500":"gray.300"},...d(),children:n}),e(u,{fontWeight:"medium",color:g?"gray.400":"gray.600",_dark:{color:g?"gray.500":"gray.400"},fontSize:"xs",children:o})]})]}),e(He,{px:2,pb:3,roundedBottom:"5px",pt:3,_dark:{bg:w.checked&&"gray.750"},children:r(N,{w:"full",rowGap:2,borderStyle:"solid",borderWidth:"1px",borderRadius:"md",pl:3,pr:3,pt:1.5,_dark:{bg:"gray.700"},children:[r(N,{alignItems:"flex-start",w:"full",children:[e(u,{fontSize:"sm",children:J("inbound")}),e(Yt,{gap:2,alignItems:"flex-start",w:"full",columns:1,spacing:1,children:(h.get(n)||[]).map(b=>e(aa,{...f({value:b.tag}),inbound:b},b.tag))})]}),n==="vmess"&&a&&e(N,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vmess.id")})]})}),n==="vless"&&a&&r(N,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vless.id")})]}),r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"Flow"}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.vless.flow"),children:zs.map(b=>e("option",{value:b.value,children:b.title},b.title))})]})]}),n==="trojan"&&a&&e(N,{alignItems:"flex-start",w:"full",children:r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.trojan.password")})]})}),n==="shadowsocks"&&a&&r(N,{alignItems:"flex-start",w:"full",children:[r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(We,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.shadowsocks.password")})]}),r(R,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("userDialog.method")}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.shadowsocks.method"),children:Ds.map(b=>e("option",{value:b,children:b},b))})]})]})]})})]})},la=m.exports.forwardRef(({name:t,list:n,onChange:o,disabled:s,...a},i)=>{const l=Vt(),[h,p]=m.exports.useState([]),S=c=>{h.includes(c)?h.splice(h.indexOf(c),1):h.push(c),p([...h])},{getCheckboxProps:d}=Vr({value:a.value,onChange:c=>{var I;const w=c.filter(f=>!a.value.includes(f));w[0]&&l.setValue(`inbounds.${w[0]}`,(I=E.getState().inbounds.get(w[0]))==null?void 0:I.map(f=>f.tag)),p(h.filter(f=>c.find(y=>y===n[f].title))),o({target:{value:c,name:t}})}});return e(ut,{allowToggle:!0,index:h,children:e(Yt,{ref:i,gap:2,alignItems:"flex-start",columns:1,spacing:1,children:n.map((c,w)=>e(ia,{toggleAccordion:S.bind(null,w),disabled:s,title:c.title,description:c.description,isSelected:!!a.value.find(I=>I===c.title),...d({value:c.title})},c.title))})})}),ca=x(co,{baseStyle:{w:5,h:5}}),da=x(Zr,{baseStyle:{w:5,h:5}}),ua=x(Dt,{baseStyle:{w:5,h:5}}),ha=C.object({username:C.string().min(1,{message:"Required"}),selected_proxies:C.array(C.string()).refine(t=>t.length>0,{message:"userDialog.selectOneProtocol"}),note:C.string().nullable(),proxies:C.record(C.string(),C.record(C.string(),C.any())).transform(t=>{const n=(o,s)=>{o&&o[s]===""&&delete o[s]};return n(t.vmess,"id"),n(t.vless,"id"),n(t.trojan,"password"),n(t.shadowsocks,"password"),n(t.shadowsocks,"method"),t}),data_limit:C.string().min(0,"The minimum number is 0").or(C.number()).nullable().transform(t=>t?Number((parseFloat(String(t))*1073741824).toFixed(5)):0),expire:C.number().nullable(),on_hold_expire_duration:C.string().min(.1,"The minimum number is 0.1").or(C.number()).nullable().transform(t=>t?Number(parseFloat(String(t))*(24*60*60)):0),data_limit_reset_strategy:C.string(),status:C.string(),inbounds:C.record(C.string(),C.array(C.string())).transform(t=>(Object.keys(t).forEach(n=>{var o;Array.isArray(t[n])&&!((o=t[n])!=null&&o.length)&&delete t[n]}),t))}),pa=t=>({...t,data_limit:t.data_limit?Number((t.data_limit/1073741824).toFixed(5)):t.data_limit,on_hold_expire_duration:t.on_hold_expire_duration?Number(t.on_hold_expire_duration/(24*60*60)):t.on_hold_expire_duration,selected_proxies:Object.keys(t.proxies)}),Mt=()=>{const t=Object.fromEntries(E.getState().inbounds),n={};for(const o in t)n[o]=t[o].map(s=>s.tag);return{selected_proxies:Object.keys(t),data_limit:null,expire:null,username:"",data_limit_reset_strategy:"no_reset",status:"active",on_hold_expire_duration:null,note:"",inbounds:n,proxies:{vless:{id:"",flow:""},vmess:{id:""},trojan:{password:""},shadowsocks:{password:"",method:"chacha20-ietf-poly1305"}}}},ma=(t,n)=>{const o=t.reduce((s,a)=>({...s,[a]:{}}),{});return n&&t.forEach(s=>{n[s]&&(o[s]=n[s])}),o},ga=()=>{var Ye,Ze,Qe,qe,Xe;const{editingUser:t,isCreatingNewUser:n,onCreateUser:o,editUser:s,fetchUserUsage:a,onEditingUser:i,createUser:l,onDeletingUser:h}=E(),p=!!t,S=n||p,[d,c]=m.exports.useState(!1),[w,I]=m.exports.useState(""),f=fe(),{t:y,i18n:T}=j(),{colorMode:g}=ct(),[b,P]=m.exports.useState(!1),$=()=>{P(k=>!k)},v=Be({defaultValues:Mt(),resolver:dt(ha)});m.exports.useEffect(()=>E.subscribe(k=>k.inbounds,()=>{v.reset(Mt())}),[]);const[A]=Yr({control:v.control,name:["data_limit"]}),G=y("userDialog.total"),[q,L]=m.exports.useState(It(g,G)),[V,X]=m.exports.useState("1m"),z=k=>{a(t,k).then(M=>{const ee=[],xe=[];for(const ue in M.usages)xe.push(M.usages[ue].used_traffic),ee.push(M.usages[ue].node_name);L(It(g,G,xe,ee))})};m.exports.useEffect(()=>{t&&(v.reset(pa(t)),Ce(v.getValues().status),z({start:B().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")}))},[t]);const W=k=>{c(!0);const M={edited:s,created:l},ee=p?"edited":"created";I(null);const{selected_proxies:xe,...ue}=k;let ye={...ue,data_limit:k.data_limit,proxies:ma(xe,k.proxies),data_limit_reset_strategy:k.data_limit&&k.data_limit>0?k.data_limit_reset_strategy:"no_reset",status:k.status==="active"||k.status==="disabled"||k.status==="on_hold"?k.status:"active"};M[ee](ye).then(()=>{f({title:y(p?"userDialog.userEdited":"userDialog.userCreated",{username:k.username}),status:"success",isClosable:!0,position:"top",duration:3e3}),K()}).catch(Y=>{var Je,Ke,Q,et,Jt;(((Je=Y==null?void 0:Y.response)==null?void 0:Je.status)===409||((Ke=Y==null?void 0:Y.response)==null?void 0:Ke.status)===400)&&I((et=(Q=Y==null?void 0:Y.response)==null?void 0:Q._data)==null?void 0:et.detail),((Jt=Y==null?void 0:Y.response)==null?void 0:Jt.status)===422&&Object.keys(Y.response._data.detail).forEach(Rt=>{I(Y==null?void 0:Y.response._data.detail[Rt]),v.setError(Rt,{type:"custom",message:Y.response._data.detail[Rt]})})}).finally(()=>{c(!1)})},K=()=>{v.reset(Mt()),o(!1),i(null),I(null),P(!1),X("1m"),Ce(null)},gt=()=>{E.setState({resetUsageUser:t})},ft=()=>{E.setState({revokeSubscriptionUser:t})},de=d,[Ve,Ce]=m.exports.useState(),[Ge,bt]=m.exports.useState();return m.exports.useEffect(()=>{Ce(v.getValues().status)},[v]),m.exports.useEffect(()=>{bt(v.getValues().status)},[]),r(ne,{isOpen:S,onClose:K,size:"2xl",children:[e(oe,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),e(Fr,{...v,children:e(se,{mx:"3",children:r("form",{onSubmit:v.handleSubmit(W),children:[e(ae,{pt:6,children:r(_,{gap:2,children:[e(ce,{color:"primary",children:p?e(da,{color:"white"}):e(ca,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:y(p?"userDialog.editUserTitle":"createNewUser")})]})}),e(ie,{mt:3,disabled:de}),r(le,{children:[r(Rr,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)"},gap:3,children:[e(nt,{children:r(N,{justifyContent:"space-between",children:[r(sr,{flexDirection:"column",gridAutoRows:"min-content",w:"full",children:[r(R,{mb:"10px",children:[e(H,{children:y("username")}),r(_,{children:[e(Re,{size:"sm",type:"text",borderRadius:"6px",error:(Ye=v.formState.errors.username)==null?void 0:Ye.message,disabled:de||p,...v.register("username")}),p&&e(_,{px:1,children:e(pe,{name:"status",control:v.control,render:({field:k})=>e(re,{placement:"top",label:"status: "+k.value,textTransform:"capitalize",children:e(D,{children:e(_t,{colorScheme:"primary",disabled:k.value!=="disabled"&&k.value!=="on_hold",isChecked:k.value==="active",onChange:M=>{M.target.checked?k.onChange("active"):k.onChange("disabled")}})})})})})]})]}),r(R,{mb:"10px",children:[e(H,{children:y("userDialog.dataLimit")}),e(pe,{control:v.control,name:"data_limit",render:({field:k})=>{var M;return e(Re,{endAdornment:"GB",type:"number",size:"sm",borderRadius:"6px",onChange:k.onChange,disabled:de,error:(M=v.formState.errors.data_limit)==null?void 0:M.message,value:k.value?String(k.value):""})}})]}),e(Or,{in:!!(A&&A>0),animateOpacity:!0,style:{width:"100%"},children:r(R,{height:"66px",children:[e(H,{children:y("userDialog.periodicUsageReset")}),e(pe,{control:v.control,name:"data_limit_reset_strategy",render:({field:k})=>e(Ne,{size:"sm",...k,children:jt.map(M=>e("option",{value:M.value,children:y("userDialog.resetStrategy"+M.title)},M.value))})})]})}),r(sr,{flexDirection:"row",w:"full",gap:"1rem",mb:"10px",children:[r(R,{display:Ve==="on_hold"&&v.getValues().status==="on_hold"?"none":"block",children:[e(H,{children:y("userDialog.expiryDate")}),e(pe,{name:"expire",control:v.control,render:({field:k})=>{var ue;function M(ye){return B(B(ye*1e3).utc()).toDate()}const{status:ee,time:xe}=Xt(k.value);return r(ge,{children:[e(Hr,{locale:T.language.toLocaleLowerCase(),dateFormat:y("dateFormat"),minDate:new Date,selected:k.value?M(k.value):void 0,onChange:ye=>{v.setValue("on_hold_expire_duration",null),k.onChange({target:{value:ye?B(B(ye).set("hour",23).set("minute",59).set("second",59)).utc().valueOf()/1e3:0,name:"expire"}})},customInput:e(Re,{size:"sm",type:"text",borderRadius:"6px",clearable:!0,disabled:de,error:(ue=v.formState.errors.expire)==null?void 0:ue.message})}),k.value?e(uo,{children:y(ee,{time:xe})}):""]})}})]}),r(R,{display:Ve!=="on_hold"&&v.getValues().status!=="on_hold"?"none":"block",children:[e(H,{children:y("userDialog.onHoldExpireDuration")}),e(pe,{control:v.control,name:"on_hold_expire_duration",render:({field:k})=>{var M;return e(Re,{endAdornment:"Days",type:"number",size:"sm",borderRadius:"6px",onChange:ee=>{v.setValue("expire",null),k.onChange({target:{value:ee}})},disabled:de,error:(M=v.formState.errors.on_hold_expire_duration)==null?void 0:M.message,value:k.value?String(k.value):""})}})]}),r(R,{flex:"1",children:[e(H,{whiteSpace:"nowrap",children:y("userDialog.onHold")}),e(pe,{name:"status",control:v.control,render:({field:k})=>{const M=k.value;return e(ge,{children:M?e(_t,{colorScheme:"primary",isChecked:M==="on_hold",onChange:ee=>{ee.target.checked?(k.onChange("on_hold"),Ce("on_hold")):(k.onChange(Ge),Ce(Ge))}}):""})}})]})]}),r(R,{mb:"10px",isInvalid:!!v.formState.errors.note,children:[e(H,{children:y("userDialog.note")}),e(ho,{...v.register("note")}),e(wt,{children:(Qe=(Ze=v.formState.errors)==null?void 0:Ze.note)==null?void 0:Qe.message})]})]}),w&&r(it,{status:"error",display:{base:"none",md:"flex"},children:[e(kt,{}),w]})]})}),e(nt,{children:r(R,{isInvalid:!!((qe=v.formState.errors.selected_proxies)!=null&&qe.message),children:[e(H,{children:y("userDialog.protocols")}),e(pe,{control:v.control,name:"selected_proxies",render:({field:k})=>e(la,{list:[{title:"vmess",description:y("userDialog.vmessDesc")},{title:"vless",description:y("userDialog.vlessDesc")},{title:"trojan",description:y("userDialog.trojanDesc")},{title:"shadowsocks",description:y("userDialog.shadowsocksDesc")}],disabled:de,...k})}),e(wt,{children:y((Xe=v.formState.errors.selected_proxies)==null?void 0:Xe.message)})]})}),p&&b&&e(nt,{pt:6,colSpan:{base:1,md:2},children:r(N,{gap:4,children:[e(sn,{defaultValue:V,onChange:(k,M)=>{X(k),z(M)}}),e(D,{width:{base:"100%",md:"70%"},justifySelf:"center",children:e(Br,{options:q.options,series:q.series,type:"donut"})})]})})]}),w&&r(it,{mt:"3",status:"error",display:{base:"flex",md:"none"},children:[e(kt,{}),w]})]}),e(Le,{mt:"3",children:r(_,{justifyContent:"space-between",w:"full",gap:3,flexDirection:{base:"column",sm:"row"},children:[e(_,{justifyContent:"flex-start",w:{base:"full",sm:"unset"},children:p&&r(ge,{children:[e(re,{label:y("delete"),placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",onClick:()=>{h(t),K()},children:e(ht,{})})}),e(re,{label:y("userDialog.usage"),placement:"top",children:e(Z,{"aria-label":"usage",size:"sm",onClick:$,children:e(ua,{})})}),e(F,{onClick:gt,size:"sm",children:y("userDialog.resetUsage")}),e(F,{onClick:ft,size:"sm",children:y("userDialog.revokeSubscription")})]})}),e(_,{w:"full",maxW:{md:"50%",base:"full"},justify:"end",children:e(F,{type:"submit",size:"sm",px:"8",colorScheme:"primary",leftIcon:d?e(Fe,{size:"xs"}):void 0,disabled:de,children:y(p?"userDialog.editUser":"createUser")})})]})})]})})})]})},fa=t=>m.exports.createElement("svg",{xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:782.04441,height:701.88002,viewBox:"0 0 782.04441 701.88002",xmlnsXlink:"http://www.w3.org/1999/xlink",...t},m.exports.createElement("path",{d:"M609.48783,100.59015l-25.44631,6.56209L270.53735,187.9987,245.091,194.56079A48.17927,48.17927,0,0,0,210.508,253.17865L320.849,681.05606a48.17924,48.17924,0,0,0,58.61776,34.58317l.06572-.01695,364.26536-93.93675.06572-.01695a48.17923,48.17923,0,0,0,34.58309-58.6178l-110.341-427.87741A48.17928,48.17928,0,0,0,609.48783,100.59015Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M612.94784,114.00532l-30.13945,7.77236L278.68955,200.20385l-30.139,7.77223a34.30949,34.30949,0,0,0-24.6275,41.74308l110.341,427.87741a34.30946,34.30946,0,0,0,41.7431,24.62736l.06572-.01695,364.26536-93.93674.06619-.01707a34.30935,34.30935,0,0,0,24.627-41.7429l-110.341-427.87741A34.30938,34.30938,0,0,0,612.94784,114.00532Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M590.19,252.56327,405.917,300.08359a8.01411,8.01411,0,0,1-4.00241-15.52046l184.273-47.52033A8.01412,8.01412,0,0,1,590.19,252.56327Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M628.955,270.49906,412.671,326.27437a8.01411,8.01411,0,1,1-4.00241-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M620.45825,369.93676l-184.273,47.52032a8.01411,8.01411,0,1,1-4.00242-15.52046l184.273-47.52032a8.01411,8.01411,0,1,1,4.00241,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M659.22329,387.87255l-216.284,55.77531a8.01411,8.01411,0,1,1-4.00242-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M650.72653,487.31025l-184.273,47.52033a8.01412,8.01412,0,0,1-4.00242-15.52047l184.273-47.52032a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M689.49156,505.246l-216.284,55.77532a8.01412,8.01412,0,1,1-4.00241-15.52047l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M374.45884,348.80871l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76146L289.5963,304.81607a3.847,3.847,0,0,1,2.76145-4.68061l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76145l14.96947,58.04817A3.847,3.847,0,0,1,374.45884,348.80871Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M404.72712,466.1822l-65.21247,16.817a3.847,3.847,0,0,1-4.68062-2.76146l-14.96946-58.04816A3.847,3.847,0,0,1,322.626,417.509l65.21246-16.817a3.847,3.847,0,0,1,4.68062,2.76145l14.96946,58.04817A3.847,3.847,0,0,1,404.72712,466.1822Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M434.99539,583.55569l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76145l-14.96946-58.04817a3.847,3.847,0,0,1,2.76145-4.68062l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76146l14.96947,58.04816A3.847,3.847,0,0,1,434.99539,583.55569Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.63647,209.0517H487.31811a48.17928,48.17928,0,0,0-48.125,48.12512V699.05261a48.17924,48.17924,0,0,0,48.125,48.12507H863.63647a48.17924,48.17924,0,0,0,48.125-48.12507V257.17682A48.17928,48.17928,0,0,0,863.63647,209.0517Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.637,222.90589H487.31811a34.30948,34.30948,0,0,0-34.271,34.27093V699.05261a34.30947,34.30947,0,0,0,34.271,34.27088H863.637a34.30936,34.30936,0,0,0,34.27051-34.27088V257.17682A34.30937,34.30937,0,0,0,863.637,222.90589Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("circle",{cx:694.19401,cy:614.02963,r:87.85039,fill:"#3182CE"}),m.exports.createElement("path",{d:"M945.18722,701.63087H914.63056V671.07421a11.45875,11.45875,0,0,0-22.9175,0v30.55666H861.1564a11.45875,11.45875,0,0,0,0,22.9175h30.55666V755.105a11.45875,11.45875,0,1,0,22.9175,0V724.54837h30.55666a11.45875,11.45875,0,0,0,0-22.9175Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M807.00068,465.71551H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01412,8.01412,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,492.76314H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01411,8.01411,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.00068,586.929H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,613.97661H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01412,8.01412,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,505.04162H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V441.25158a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,505.04162Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,626.25509H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V562.46505a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,626.25509Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.21185,330.781H666.91017a8.01411,8.01411,0,0,1,0-16.02823H807.21185a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M840.27007,357.82862H666.91017a8.01411,8.01411,0,1,1,0-16.02822h173.3599a8.01411,8.01411,0,0,1,0,16.02822Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M635.85911,390.6071H506.51316a3.847,3.847,0,0,1-3.84277-3.84277V285.81706a3.847,3.847,0,0,1,3.84277-3.84277H635.85911a3.847,3.847,0,0,1,3.84277,3.84277V386.76433A3.847,3.847,0,0,1,635.85911,390.6071Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"})),ba=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},yr=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=ba(t);if(typeof t>"u"||t===null)return e("div",{className:"circle pulse orange"});const s=o?n-o:1/0;return s>0&&s<=60?e("div",{className:"circle pulse green"}):e("div",{className:"circle pulse red"})},xa=t=>{if(!t)return null;const n=new Date(t+"Z");return Math.floor(n.getTime()/1e3)},Sr=({lastOnline:t})=>{const n=Math.floor(Date.now()/1e3),o=xa(t),s=o?n-o:null,a=o?Xt(o):{status:"",time:"Not Connected Yet"};return e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:s&&s<=60?"Online":s?`${a.time} ago`:a.time})},ya=x(po,{baseStyle:{w:4,h:4}}),Sa=x(mo,{baseStyle:{w:4,h:4}}),Cr=5;function Ca(t,n,o){if(o0&&(a[0]=0,a[1]="prev-more"),a[a.length-1]{const{filters:t,onFilterChange:n,users:{total:o}}=E(),{limit:s,offset:a}=t,i=(a||0)/(s||1),l=Math.ceil(o/(s||1)),h=Ca(l,i,7),p=c=>{n({...t,offset:c*s})},S=c=>{n({...t,limit:parseInt(c.target.value)}),Go(c.target.value)},{t:d}=j();return r(_,{justifyContent:"space-between",mt:4,w:"full",display:"flex",columnGap:{lg:4,md:0},rowGap:{md:0,base:4},flexDirection:{md:"row",base:"column"},children:[e(D,{order:{base:2,md:1},children:r(_,{children:[r(Ne,{minW:"60px",value:s,onChange:S,size:"sm",rounded:"md",children:[e("option",{children:"10"}),e("option",{children:"20"}),e("option",{children:"30"})]}),e(u,{whiteSpace:"nowrap",fontSize:"sm",children:d("itemsPerPage")})]})}),r(go,{size:"sm",isAttached:!0,variant:"outline",order:{base:1,md:2},children:[e(F,{leftIcon:e(ya,{}),onClick:p.bind(null,i-1),isDisabled:i===0||l===0,children:d("previous")}),h.map(c=>typeof c=="string"?e(F,{children:"..."},c):e(F,{variant:c===i?"solid":"outline",onClick:p.bind(null,c),children:c+1},c)),e(F,{rightIcon:e(Sa,{}),onClick:p.bind(null,i+1),isDisabled:i+1===l||l===0,children:d("next")})]})]})},_a=x(fa),$e={baseStyle:{w:{base:4,md:5},h:{base:4,md:5}}},ka=x(fo,$e),va=x(Qr,$e),wr=x(bo,$e),Ia=x($t,$e),za=x($r,$e),Da=x(Zr,$e),Ea=x(Qr,{baseStyle:{width:"15px",height:"15px"}}),Ua=t=>{for(var n=0;n{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a}=t,i=o===0||o===null;return e(_,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:r(u,{children:[te(n)," /"," ",i?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):te(o)]})})},_r=t=>{const{used:n,total:o,dataLimitResetStrategy:s,totalUsedTraffic:a,...i}=t,l=o===0||o===null,h=!l&&n/o*100>=100;return r(ge,{children:[e(xo,{orientation:"horizontal",value:l?100:Math.min(n/o*100,100),colorScheme:h?"red":"primary",...i,children:e(yo,{h:"6px",borderRadius:"full",children:e(So,{borderRadius:"full"})})}),r(_,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:[r(u,{children:[te(n)," /"," ",l?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):te(o)+(s&&s!=="no_reset"?" "+J("userDialog.resetStrategy"+Ua(s)):"")]}),r(u,{children:[J("usersTable.total"),": ",te(a)]})]})]})},xt=({sort:t,column:n})=>t.includes(n)?e(Ea,{transform:t.startsWith("-")?void 0:"rotate(180deg)"}):null,La=t=>{const{filters:n,users:{users:o},users:s,onEditingUser:a,onFilterChange:i}=E(),{t:l}=j(),[h,p]=m.exports.useState(void 0),S=Me({base:120,lg:72})||72,[d,c]=m.exports.useState(`${S}px`),w=Me({base:!1,md:!0});m.exports.useEffect(()=>{const g=()=>{const b=document.querySelectorAll("#filters")[0];c(`${b.offsetHeight}px`)};window.addEventListener("scroll",g)},[]);const I=o.length!==s.total,f=g=>{let b=n.sort;b.includes(g)?b.startsWith("-")?b="-created_at":b="-"+g:b=g,i({sort:b})},y=g=>{i({status:g.target.value.length>0?g.target.value:void 0})},T=g=>{p(g===h?void 0:g)};return r(D,{id:"users-table",overflowX:{base:"unset",md:"unset"},children:[e(ut,{allowMultiple:!0,display:{base:"block",md:"none"},index:h,children:r(ar,{orientation:"vertical",zIndex:"docked",...t,children:[e(ir,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(De,{position:"sticky",top:d,minW:"120px",pl:4,pr:4,cursor:"pointer",onClick:f.bind(null,"username"),children:r(_,{children:[e("span",{children:l("users")}),e(xt,{sort:n.sort,column:"username"})]})}),e(De,{position:"sticky",top:d,minW:"50px",pl:0,pr:0,w:"140px",cursor:"pointer",children:r(_,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Ne,{value:n.sort,fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ge,{}),_focusVisible:{border:"0 !important"},onChange:y,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:d,minW:"100px",cursor:"pointer",pr:0,onClick:f.bind(null,"used_traffic"),children:r(_,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:n.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:d,minW:"32px",w:"32px",p:0,cursor:"pointer"})]})}),e(lr,{children:!w&&(o==null?void 0:o.map((g,b)=>r(m.exports.Fragment,{children:[r(Pe,{onClick:T.bind(null,b),cursor:"pointer",children:[e(he,{borderBottom:0,minW:"100px",pl:4,pr:4,maxW:"calc(100vw - 50px - 32px - 100px - 48px)",children:r("div",{className:"flex-status",children:[e(yr,{lastOnline:g.online_at}),e(u,{isTruncated:!0,children:g.username})]})}),e(he,{borderBottom:0,minW:"50px",pl:0,pr:0,children:e(yt,{compact:!0,showDetail:!1,expiryDate:g.expire,status:g.status})}),e(he,{borderBottom:0,minW:"100px",pr:0,children:e(Ra,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})}),e(he,{p:0,borderBottom:0,w:"32px",minW:"32px",children:e(va,{color:"gray.600",_dark:{color:"gray.400"},transition:"transform .2s ease-out",transform:h===b?"rotate(180deg)":"0deg"})})]}),e(Pe,{className:"collapsible",onClick:T.bind(null,b),children:e(he,{p:0,colSpan:4,children:r(Oe,{border:0,children:[e(je,{display:"none"}),e(He,{border:0,cursor:"pointer",px:6,py:3,children:r(N,{justifyContent:"space-between",spacing:"4",children:[r(N,{alignItems:"flex-start",w:"full",spacing:-1,children:[e(u,{textTransform:"capitalize",fontSize:"xs",fontWeight:"bold",color:"gray.600",_dark:{color:"gray.400"},children:l("usersTable.dataUsage")}),e(D,{width:"full",minW:"230px",children:e(_r,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})})]}),r(_,{w:"full",justifyContent:"space-between",children:[r(D,{width:"full",children:[e(yt,{compact:!0,expiryDate:g.expire,status:g.status}),e(Sr,{lastOnline:g.online_at})]}),r(_,{children:[e(kr,{user:g}),e(re,{label:l("userDialog.editUser"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"Edit user",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:P=>{P.stopPropagation(),a(g)},children:e(Da,{})})})]})]})]})})]})})})]},g.username)))})]})}),r(ar,{orientation:"vertical",display:{base:"none",md:"table"},...t,children:[e(ir,{zIndex:"docked",position:"relative",children:r(Pe,{children:[e(De,{position:"sticky",top:{base:"unset",md:d},minW:"140px",cursor:"pointer",onClick:f.bind(null,"username"),children:r(_,{children:[e("span",{children:l("username")}),e(xt,{sort:n.sort,column:"username"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"400px",minW:"150px",cursor:"pointer",children:r(_,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),n.status?": "+n.status:""]}),r(Ne,{fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(ge,{}),_focusVisible:{border:"0 !important"},value:n.sort,onChange:y,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"350px",minW:"230px",cursor:"pointer",onClick:f.bind(null,"used_traffic"),children:r(_,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:n.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"200px",minW:"180px"})]})}),r(lr,{children:[w&&(o==null?void 0:o.map((g,b)=>r(Pe,{className:Ut("interactive",{"last-row":b===o.length-1}),onClick:()=>a(g),children:[e(he,{minW:"140px",children:r("div",{className:"flex-status",children:[e(yr,{lastOnline:g.online_at}),g.username,e(Sr,{lastOnline:g.online_at})]})}),e(he,{width:"400px",minW:"150px",children:e(yt,{expiryDate:g.expire,status:g.status})}),e(he,{width:"350px",minW:"230px",children:e(_r,{totalUsedTraffic:g.lifetime_used_traffic,dataLimitResetStrategy:g.data_limit_reset_strategy,used:g.used_traffic,total:g.data_limit,colorScheme:st[g.status].bandWidthColor})}),e(he,{width:"200px",minW:"180px",children:e(kr,{user:g})})]},g.username))),o.length==0&&e(Pe,{children:e(he,{colSpan:4,children:e(Ta,{isFiltered:I})})})]})]}),e(wa,{})]})},kr=({user:t})=>{const{setQRCode:n,setSubLink:o}=E(),s=t.links.join(`\r -`),[a,i]=m.exports.useState([-1,!1]);return m.exports.useEffect(()=>{a[1]&&setTimeout(()=>{i([-1,!1])},1e3)},[a]),r(_,{justifyContent:"flex-end",onClick:l=>{l.preventDefault(),l.stopPropagation()},children:[e(cr,{text:t.subscription_url.startsWith("/")?window.location.origin+t.subscription_url:t.subscription_url,onCopy:()=>{i([0,!0])},children:e("div",{children:e(re,{label:a[0]==0&&a[1]?J("usersTable.copied"):J("usersTable.copyLink"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy subscription link",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==0&&a[1]?e(wr,{}):e(Ia,{})})})})}),e(cr,{text:s,onCopy:()=>{i([1,!0])},children:e("div",{children:e(re,{label:a[0]==1&&a[1]?J("usersTable.copied"):J("usersTable.copyConfigs"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy configs",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==1&&a[1]?e(wr,{}):e(ka,{})})})})}),e(re,{label:"QR Code",placement:"top",children:e(Z,{p:"0 !important","aria-label":"qr code",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:()=>{n(t.links),o(t.subscription_url)},children:e(za,{})})})]})},Ta=({isFiltered:t})=>{const{onCreateUser:n}=E();return r(D,{padding:"5",py:"8",display:"flex",alignItems:"center",flexDirection:"column",gap:4,w:"full",children:[e(_a,{maxHeight:"200px",maxWidth:"200px",_dark:{'path[fill="#fff"]':{fill:"gray.800"},'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.700"},'circle[fill="#3182CE"]':{fill:"primary.300"}},_light:{'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.300"},'circle[fill="#3182CE"]':{fill:"primary.500"}}}),e(u,{fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:t?J("usersTable.noUserMatched"):J("usersTable.noUser")}),!t&&e(F,{size:"sm",colorScheme:"primary",onClick:()=>n(!0),children:J("createUser")})]})},Aa=()=>(m.exports.useEffect(()=>{E.getState().refetchUsers(),Zo()},[]),r(N,{justifyContent:"space-between",minH:"100vh",p:"6",rowGap:4,children:[r(D,{w:"full",children:[e(_s,{}),e($o,{mt:"4"}),e(ls,{}),e(La,{}),e(ga,{}),e(os,{}),e(Js,{}),e(As,{}),e(ra,{}),e(oa,{}),e($s,{}),e(Zs,{}),e(ea,{}),e(ns,{})]}),e(en,{})]})),Ma=t=>m.exports.createElement("svg",{viewBox:"0 0 747 747",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},m.exports.createElement("path",{d:"M746.671 209.652V77.6572C746.671 72.9384 743.827 68.6832 739.468 66.8811C735.108 65.0738 730.093 66.0739 726.754 69.4072L579.354 216.807C577.453 202.386 570.203 189.203 559.037 179.87C547.875 170.542 533.615 165.744 519.083 166.432C504.551 167.12 490.807 173.24 480.573 183.583L414.375 249.776C412.417 235.391 405.141 222.25 393.985 212.959C382.823 203.662 368.594 198.88 354.083 199.552C339.578 200.224 325.849 206.302 315.594 216.588L274.343 257.828L19.9167 3.41515C16.5781 0.0818157 11.5625 -0.918184 7.20306 0.889149C2.84373 2.69648 0 6.94648 0 11.6651V143.649C0 146.743 1.22917 149.712 3.41667 151.899L191.843 340.339L3.41667 528.753C1.2292 530.94 0 533.909 0 537.003V668.997C0 673.716 2.84373 677.971 7.20306 679.773C11.5624 681.581 16.578 680.58 19.9167 677.247L167.317 529.847C169.285 544.233 176.561 557.358 187.718 566.65C198.869 575.947 213.098 580.728 227.603 580.066C242.103 579.404 255.838 573.342 266.098 563.071L332.295 496.874V496.879C334.259 511.264 341.535 524.395 352.691 533.686C363.853 542.977 378.082 547.759 392.587 547.092C407.093 546.421 420.822 540.348 431.077 530.066L472.327 488.826L726.754 743.239C728.941 745.427 731.91 746.656 735.004 746.656C736.535 746.661 738.056 746.359 739.473 745.77C743.832 743.963 746.671 739.708 746.671 734.989V602.994C746.671 599.901 745.442 596.932 743.254 594.744L554.827 406.318L743.254 217.904H743.259C745.447 215.717 746.676 212.748 746.676 209.654L746.671 209.652ZM23.3373 39.8118L257.844 274.318L208.328 323.818L23.3413 138.818L23.3373 39.8118ZM723.337 706.825L488.831 472.318L538.347 422.818L723.333 607.818L723.337 706.825ZM23.3373 541.825L332.097 233.078C338.764 226.719 347.624 223.172 356.843 223.172C366.056 223.172 374.916 226.719 381.588 233.078C388.151 239.641 391.838 248.548 391.838 257.828C391.838 267.114 388.151 276.016 381.588 282.577L23.3347 640.831L23.3373 541.825ZM249.604 546.575C240.755 555.419 227.864 558.872 215.781 555.638C203.703 552.398 194.265 542.961 191.027 530.883C187.792 518.8 191.245 505.91 200.089 497.06L497.076 200.074C505.92 191.23 518.811 187.772 530.893 191.011C542.971 194.246 552.409 203.678 555.648 215.76C558.888 227.839 555.434 240.73 546.591 249.572L249.604 546.575ZM723.337 204.815L414.577 513.562C407.911 519.926 399.051 523.473 389.832 523.473C380.618 523.473 371.753 519.926 365.087 513.562C358.529 506.999 354.842 498.098 354.842 488.816C354.842 479.535 358.529 470.634 365.087 464.071L723.34 105.818L723.337 204.815Z",fill:"currentColor"})),Na=C.object({username:C.string().min(1,"login.fieldRequired"),password:C.string().min(1,"login.fieldRequired")}),Fa=x(Ma,{baseStyle:{strokeWidth:"10px",w:12,h:12}}),Pa=x(Co,{baseStyle:{w:5,h:5,strokeWidth:"2px"}}),vr=()=>{var c,w;const[t,n]=m.exports.useState(""),[o,s]=m.exports.useState(!1),a=wo(),{t:i}=j();let l=_o();const{register:h,formState:{errors:p},handleSubmit:S}=Be({resolver:dt(Na)});m.exports.useEffect(()=>{Fo(),l.pathname!=="/login"&&a("/login",{replace:!0})},[]);const d=I=>{n("");const f=new FormData;f.append("username",I.username),f.append("password",I.password),f.append("grant_type","password"),s(!0),O("/admin/token",{method:"post",body:f}).then(({access_token:y})=>{No(y),a("/")}).catch(y=>{n(y.response._data.detail)}).finally(s.bind(null,!1))};return r(N,{justifyContent:"space-between",minH:"100vh",p:"6",w:"full",children:[r(D,{w:"full",children:[e(_,{justifyContent:"end",w:"full",children:e(tn,{})}),e(_,{w:"full",justifyContent:"center",alignItems:"center",children:r(D,{w:"full",maxW:"340px",mt:"6",children:[r(N,{alignItems:"center",w:"full",children:[e(Fa,{}),e(u,{fontSize:"2xl",fontWeight:"semibold",children:i("login.loginYourAccount")}),e(u,{color:"gray.600",_dark:{color:"gray.400"},children:i("login.welcomeBack")})]}),e(D,{w:"full",maxW:"300px",m:"auto",pt:"4",children:e("form",{onSubmit:S(d),children:r(N,{mt:4,rowGap:2,children:[e(R,{children:e(Re,{w:"full",placeholder:i("username"),...h("username"),error:i((c=p==null?void 0:p.username)==null?void 0:c.message)})}),e(R,{children:e(Re,{w:"full",type:"password",placeholder:i("password"),...h("password"),error:i((w=p==null?void 0:p.password)==null?void 0:w.message)})}),t&&r(it,{status:"error",rounded:"md",children:[e(kt,{}),e(Wr,{children:t})]}),r(F,{isLoading:o,type:"submit",w:"full",colorScheme:"primary",children:[e(Pa,{marginRight:1}),i("login")]})]})})})]})})]}),e(en,{})]})},Wa=()=>O("/admin",{headers:{Authorization:`Bearer ${vt()}`}}),Oa=ko([{path:"/",element:e(Aa,{}),errorElement:e(vr,{}),loader:Wa},{path:"/login/",element:e(vr,{})}],{basename:"/"});function ja(){return e("main",{className:"p-8",children:e(vo,{router:Oa})})}B.extend(Io);B.extend(zo);B.extend(Do);B.extend(Eo);B.extend(Uo);qr(Ro.get()||"light");Lo.createRoot(document.getElementById("root")).render(e(Ft.StrictMode,{children:e(To,{theme:Mo,children:e(Ao,{client:Wt,children:e(ja,{})})})})); diff --git a/app/dashboard/build/assets/index.d40a313c.js b/app/dashboard/build/assets/index.d40a313c.js new file mode 100644 index 00000000..5bf0b53b --- /dev/null +++ b/app/dashboard/build/assets/index.d40a313c.js @@ -0,0 +1,14 @@ +import{i as Nt,B as ln,a as cn,b as dn,j as zr,d as H,U as Bt,z as un,r as hn,f as pn,Q as mn,e as gn,$ as fn,c as zt,g as y,h as bn,C as xn,k as Dt,u as Ht,l as W,m as r,H as v,n as e,T as u,o as yn,p as D,s as Sn,q as m,t as ct,J as Cn,v as Dr,A as Et,w as wn,x as _n,M as oe,y as se,D as ae,E as ie,F as le,G as be,I as Ve,K as Er,L as kn,N as at,O as ce,P as T,R as j,S as Ur,V as ne,W as R,X as me,Y as Z,Z as Te,_ as N,a0 as Ut,a1 as tt,a2 as vn,a3 as Ue,a4 as Pe,a5 as In,a6 as Rr,a7 as Tr,a8 as nt,a9 as St,aa as zn,ab as je,ac as Ct,ad as er,ae as Dn,af as Lr,ag as Ar,ah as Mr,ai as ge,aj as En,ak as Un,al as Rn,am as Tn,an as Ln,ao as $t,ap as Nr,aq as Pr,ar as fe,as as tr,at as An,au as Mn,av as Nn,aw as Pt,ax as Pn,ay as Fn,az as Wn,aA as On,aB as jn,aC as Bn,aD as wt,aE as Hn,aF as Ne,aG as $n,aH as _,aI as dt,aJ as Fr,aK as ut,aL as M,aM as Vt,aN as Vn,aO as Be,aP as He,aQ as Ft,aR as $e,aS as we,aT as _e,aU as ke,aV as ve,aW as Ie,aX as ze,aY as rr,aZ as Gn,a_ as _t,a$ as ot,b0 as Gt,b1 as Yn,b2 as Zn,b3 as Qn,b4 as Wr,b5 as qn,b6 as it,b7 as kt,b8 as Or,b9 as Xn,ba as Jn,bb as jr,bc as Me,bd as Kn,be as eo,bf as to,bg as Yt,bh as Tt,bi as nr,bj as Br,bk as ro,bl as no,bm as or,bn as oo,bo as sr,bp as Hr,bq as so,br as $r,bs as ao,bt as io,bu as Vr,bv as lo,bw as co,bx as Gr,by as Yr,bz as Zr,bA as J,bB as uo,bC as Qr,bD as ar,bE as ho,bF as po,bG as mo,bH as go,bI as fo,bJ as bo,bK as qr,bL as xo,bM as ir,bN as lr,bO as Oe,bP as De,bQ as cr,bR as pe,bS as dr,bT as yo,bU as So,bV as Co,bW as wo,bX as _o,bY as ko,bZ as vo,b_ as Io,b$ as zo,c0 as Do,c1 as Eo,c2 as Uo,c3 as Ro,c4 as To,c5 as Lo,c6 as Ao,c7 as Mo}from"./vendor.667f5e84.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerpolicy&&(i.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?i.credentials="include":a.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();Nt.use(ln).use(cn).use(dn).init({debug:{}.NODE_ENV==="development",returnNull:!1,fallbackLng:"en",interpolation:{escapeValue:!1},react:{useSuspense:!1},load:"languageOnly",detection:{caches:["localStorage","sessionStorage","cookie"]},backend:{loadPath:zr(["/","locales/{{lng}}.json"])}},function(t,o){H.locale(Nt.language)});Nt.on("languageChanged",t=>{H.locale(t)});Bt("zh-cn",un);Bt("ru",hn);Bt("fa",pn);const Wt=new mn,Xr=t=>{const o=document.querySelector('meta[name="theme-color"]');o==null||o.setAttribute("content",t=="dark"?"#1A202C":"#3B81F6")},No=gn({shadows:{outline:"0 0 0 2px var(--chakra-colors-primary-200)"},fonts:{body:"Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif"},colors:{"light-border":"#d2d2d4",primary:{50:"#9cb7f2",100:"#88a9ef",200:"#749aec",300:"#618ce9",400:"#4d7de7",500:"#396fe4",600:"#3364cd",700:"#2e59b6",800:"#284ea0",900:"#224389"},gray:{750:"#222C3B"}},components:{Alert:{baseStyle:{container:{borderRadius:"6px",fontSize:"sm"}}},Select:{baseStyle:{field:{_dark:{borderColor:"gray.600",borderRadius:"6px"},_light:{borderRadius:"6px"}}}},FormHelperText:{baseStyle:{fontSize:"xs"}},FormLabel:{baseStyle:{fontSize:"sm",fontWeight:"medium",mb:"1",_dark:{color:"gray.300"}}},Input:{baseStyle:{addon:{_dark:{borderColor:"gray.600",_placeholder:{color:"gray.500"}}},field:{_focusVisible:{boxShadow:"none",borderColor:"primary.200",outlineColor:"primary.200"},_dark:{borderColor:"gray.600",_disabled:{color:"gray.400",borderColor:"gray.500"},_placeholder:{color:"gray.500"}}}}},Table:{baseStyle:{table:{borderCollapse:"separate",borderSpacing:0},thead:{borderBottomColor:"light-border"},th:{background:"#F9FAFB",borderColor:"light-border !important",borderBottomColor:"light-border !important",borderTop:"1px solid ",borderTopColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border !important"},_last:{borderRight:"1px solid",borderColor:"light-border !important"},_dark:{borderColor:"gray.600 !important",background:"gray.750"}},td:{transition:"all .1s ease-out",borderColor:"light-border",borderBottomColor:"light-border !important",_first:{borderLeft:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_last:{borderRight:"1px solid",borderColor:"light-border",_dark:{borderColor:"gray.600"}},_dark:{borderColor:"gray.600",borderBottomColor:"gray.600 !important"}},tr:{"&.interactive":{cursor:"pointer",_hover:{"& > td":{bg:"gray.200"},_dark:{"& > td":{bg:"gray.750"}}}},_last:{"& > td":{_first:{borderBottomLeftRadius:"8px"},_last:{borderBottomRightRadius:"8px"}}}}}}}});const vt=()=>localStorage.getItem("token"),Po=t=>{localStorage.setItem("token",t)},Fo=()=>{localStorage.removeItem("token")},Wo=fn.create({baseURL:{}.VITE_BASE_API}),Oo=(t,o={})=>(vt()&&(o.headers={...(o==null?void 0:o.headers)||{},Authorization:`Bearer ${vt()}`}),Wo(t,o)),F=Oo,jo=zt(t=>({isLoading:!0,isPostLoading:!1,version:null,started:!1,logs_websocket:null,config:"",fetchCoreSettings:()=>{t({isLoading:!0}),Promise.all([F("/core").then(({version:o,started:n,logs_websocket:s})=>t({version:o,started:n,logs_websocket:s})),F("/core/config").then(o=>t({config:o}))]).finally(()=>t({isLoading:!1}))},updateConfig:o=>(t({isPostLoading:!0}),F("/core/config",{method:"PUT",body:o}).finally(()=>{t({isPostLoading:!1})})),restartCore:()=>F("/core/restart",{method:"POST"})}));function re(t,o=2,n=!1){if(!+t)return"0 B";const s=1024,a=o<0?0:o,i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],l=Math.floor(Math.log(t)/Math.log(s));return n?[parseFloat((t/Math.pow(s,l)).toFixed(a)),i[l]]:`${parseFloat((t/Math.pow(s,l)).toFixed(a))} ${i[l]}`}const ur=t=>{if(t!==null)return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},Bo=y(bn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Ho=y(xn,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),$o=y(Dt,{baseStyle:{w:5,h:5,position:"relative",zIndex:"2"}}),Lt=({title:t,content:o,icon:n})=>r(yn,{p:6,borderWidth:"1px",borderColor:"light-border",bg:"#F9FAFB",_dark:{borderColor:"gray.600",bg:"gray.750"},borderStyle:"solid",boxShadow:"none",borderRadius:"12px",width:"full",display:"flex",justifyContent:"space-between",flexDirection:"row",children:[r(v,{alignItems:"center",columnGap:"4",children:[e(D,{p:"2",position:"relative",color:"white",_before:{content:'""',position:"absolute",top:0,left:0,bg:"primary.400",display:"block",w:"full",h:"full",borderRadius:"5px",opacity:".5",z:"1"},_after:{content:'""',position:"absolute",top:"-5px",left:"-5px",bg:"primary.400",display:"block",w:"calc(100% + 10px)",h:"calc(100% + 10px)",borderRadius:"8px",opacity:".4",z:"1"},children:n}),e(u,{color:"gray.600",_dark:{color:"gray.300"},fontWeight:"medium",textTransform:"capitalize",fontSize:"sm",children:t})]}),e(D,{fontSize:"3xl",fontWeight:"semibold",mt:"2",children:o})]}),Ot="statistics-query-key",Vo=t=>{const{version:o}=E(),{data:n}=Ht({queryKey:Ot,queryFn:()=>F("/system"),refetchInterval:5e3,onSuccess:({version:a})=>{o!==a&&E.setState({version:a})}}),{t:s}=W();return r(v,{justifyContent:"space-between",gap:0,columnGap:{lg:4,md:0},rowGap:{lg:0,base:4},display:"flex",flexDirection:{lg:"row",base:"column"},...t,children:[e(Lt,{title:s("activeUsers"),content:n&&r(v,{alignItems:"flex-end",children:[e(u,{children:ur(n.users_active)}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:["/ ",ur(n.total_user)]})]}),icon:e(Bo,{})}),e(Lt,{title:s("dataUsage"),content:n&&re(n.incoming_bandwidth+n.outgoing_bandwidth),icon:e(Ho,{})}),e(Lt,{title:s("memoryUsage"),content:n&&r(v,{alignItems:"flex-end",children:[e(u,{children:re(n.mem_used,1,!0)[0]}),r(u,{fontWeight:"normal",fontSize:"lg",as:"span",display:"inline-block",pb:"5px",children:[re(n.mem_used,1,!0)[1]," /"," ",re(n.mem_total,1)]})]}),icon:e($o,{})})]})},Jr="marzban-num-users-per-page",hr=10,Go=()=>{const t=localStorage.getItem(Jr)||hr.toString();return parseInt(t)||hr},Yo=t=>localStorage.setItem(Jr,t),Zo=t=>{for(const o in t)t[o]||delete t[o];return E.setState({loading:!0}),F("/users",{query:t}).then(o=>(E.setState({users:o}),o)).finally(()=>{E.setState({loading:!1})})},Qo=()=>F("/inbounds").then(t=>{E.setState({inbounds:new Map(Object.entries(t))})}).finally(()=>{E.setState({loading:!1})}),E=zt(Sn((t,o)=>({version:null,editingUser:null,deletingUser:null,isCreatingNewUser:!1,QRcodeLinks:null,subscribeUrl:null,users:{users:[],total:0},loading:!0,isResetingAllUsage:!1,isEditingHosts:!1,isEditingNodes:!1,isShowingNodesUsage:!1,resetUsageUser:null,revokeSubscriptionUser:null,filters:{username:"",limit:Go(),sort:"-created_at"},inbounds:new Map,isEditingCore:!1,refetchUsers:()=>{Zo(o().filters)},resetAllUsage:()=>F("/users/reset",{method:"POST"}).then(()=>{o().onResetAllUsage(!1),o().refetchUsers()}),onResetAllUsage:n=>t({isResetingAllUsage:n}),onCreateUser:n=>t({isCreatingNewUser:n}),onEditingUser:n=>{t({editingUser:n})},onDeletingUser:n=>{t({deletingUser:n})},onFilterChange:n=>{t({filters:{...o().filters,...n}}),o().refetchUsers()},setQRCode:n=>{t({QRcodeLinks:n})},deleteUser:n=>(t({editingUser:null}),F(`/user/${n.username}`,{method:"DELETE"}).then(()=>{t({deletingUser:null}),o().refetchUsers(),Wt.invalidateQueries(Ot)})),createUser:n=>F("/user",{method:"POST",body:n}).then(()=>{t({editingUser:null}),o().refetchUsers(),Wt.invalidateQueries(Ot)}),editUser:n=>F(`/user/${n.username}`,{method:"PUT",body:n}).then(()=>{o().onEditingUser(null),o().refetchUsers()}),fetchUserUsage:(n,s)=>{for(const a in s)s[a]||delete s[a];return F(`/user/${n.username}/usage`,{method:"GET",query:s})},onEditingHosts:n=>{t({isEditingHosts:n})},onEditingNodes:n=>{t({isEditingNodes:n})},onShowingNodesUsage:n=>{t({isShowingNodesUsage:n})},setSubLink:n=>{t({subscribeUrl:n})},resetDataUsage:n=>F(`/user/${n.username}/reset`,{method:"POST"}).then(()=>{t({resetUsageUser:null}),o().refetchUsers()}),revokeSubscription:n=>F(`/user/${n.username}/revoke_sub`,{method:"POST"}).then(s=>{t({revokeSubscriptionUser:null,editingUser:s}),o().refetchUsers()})}))),de=({children:t,color:o})=>e(D,{position:"relative",width:"36px",height:"36px",display:"flex",justifyContent:"center",alignItems:"center",_before:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100%)",height:"calc(100%)",bg:`${o}.400`,opacity:".5",borderRadius:"5px",zIndex:"1",_dark:{bg:`${o}.400`}},_after:{content:'""',display:"block",position:"absolute",top:"0",left:"0",width:"calc(100% + 10px)",height:"calc(100% + 10px)",transform:"translate(-5px, -5px)",bg:`${o}.400`,opacity:".4",borderRadius:"8px",zIndex:"1",_dark:{bg:`${o}.400`}},children:e(u,{color:`${o}.500`,_dark:{color:`${o}.900`},position:"relative",zIndex:"2",children:t})});window.ace.define("ace/theme/nord_dark",["require","exports","module","ace/lib/dom"],(t,o,n)=>{o.isDark=!0,o.cssClass="ace-nord-dark",t("../lib/dom").importCssString(o.cssText,o.cssClass)});window.ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],(t,o,n)=>{o.isDark=!1,o.cssClass="ace-dawn",t("../lib/dom").importCssString(o.cssText,o.cssClass)});const qo=m.exports.forwardRef(({json:t,onChange:o,mode:n="code"},s)=>{const{colorMode:a}=ct(),i={mode:n,onChangeText:o,statusBar:!1,mainMenuBar:!1,theme:a==="dark"?"ace/theme/nord_dark":"ace/theme/dawn"},l=m.exports.useRef(null),h=m.exports.useRef(null);return m.exports.useEffect(()=>(h.current=new Cn(l.current,i),()=>{h.current&&h.current.destroy()}),[]),m.exports.useEffect(()=>{h.current&&h.current.update(t)},[t]),e(D,{ref:s,border:"1px solid",borderColor:"gray.300",_dark:{borderColor:"gray.500"},borderRadius:5,h:"full",children:e(D,{height:"full",ref:l})})}),pr=500,Xo=y(Dr,{baseStyle:{w:5,h:5}}),Jo=y(Et,{baseStyle:{w:4,h:4}}),Ko=y(wn,{baseStyle:{w:4,h:4}}),es=y(_n,{baseStyle:{w:3,h:3}}),ts=t=>({[tt.ReadyState.CONNECTING]:"connecting",[tt.ReadyState.OPEN]:"connected",[tt.ReadyState.CLOSING]:"closed",[tt.ReadyState.CLOSED]:"closed",[tt.ReadyState.UNINSTANTIATED]:"closed"})[t],rs=()=>{try{let t=new URL({}.VITE_BASE_API.startsWith("/")?window.location.origin+{}.VITE_BASE_API:{}.VITE_BASE_API);return(t.protocol==="https:"?"wss://":"ws://")+zr([t.host+t.pathname,"/core/logs"])+"?interval=1&token="+vt()}catch(t){return console.error("Unable to generate websocket url"),console.error(t),null}};let Le=[];const ns=()=>{const{isEditingCore:t}=E(),{fetchCoreSettings:o,updateConfig:n,isLoading:s,config:a,isPostLoading:i,version:l,restartCore:h}=jo(),p=m.exports.useRef(null),[C,d]=m.exports.useState([]),{t:c}=W(),k=be(),I=Ve({defaultValues:{config:a||{}}});m.exports.useEffect(()=>{a&&I.setValue("config",a)},[a]),m.exports.useEffect(()=>{t&&o()},[t]);const g=m.exports.useRef(!0),S=m.exports.useCallback(Er(L=>{var K,z,P;const $=Math.abs((((K=p.current)==null?void 0:K.scrollTop)||0)-(((z=p.current)==null?void 0:z.scrollHeight)||0)+(((P=p.current)==null?void 0:P.offsetHeight)||0))<10;p.current&&$?g.current=!0:g.current=!1,L.length<40&&d(L)},300),[]),{readyState:A}=kn(rs(),{onMessage:L=>{Le.push(L.data),Le.length>pr&&(Le=Le.splice(0,Le.length-pr)),S([...Le])},shouldReconnect:()=>!0,reconnectAttempts:10,reconnectInterval:1e3});m.exports.useEffect(()=>{var L;p.current&&g.current&&(p.current.scrollTop=(L=p.current)==null?void 0:L.scrollHeight)},[C]),m.exports.useEffect(()=>()=>{Le=[]},[]);const f=ts(A.toString()),{mutate:x,isLoading:O}=at(h),B=({config:L})=>{n(L).then(()=>{k({title:c("core.successMessage"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch($=>{let K=c("core.generalErrorMessage");typeof $.response._data.detail=="object"&&(K=$.response._data.detail[Object.keys($.response._data.detail)[0]]),typeof $.response._data.detail=="string"&&(K=$.response._data.detail),k({title:K,status:"error",isClosable:!0,position:"top",duration:3e3})})},q=m.exports.useRef(null),[w,V]=m.exports.useState(!1),X=()=>{var L;document.fullscreenElement?(document.exitFullscreen(),V(!1)):((L=q.current)==null||L.requestFullscreen(),V(!0))};return r("form",{onSubmit:I.handleSubmit(B),children:[r(ce,{children:[r(T,{children:[r(v,{justifyContent:"space-between",alignItems:"flex-start",children:[r(j,{children:[c("core.configuration")," ",s&&e(Ur,{isIndeterminate:!0,size:"15px"})]}),e(v,{gap:0,children:e(ne,{label:"Xray Version",placement:"top",children:e(R,{height:"100%",textTransform:"lowercase",children:l&&`v${l}`})})})]}),r(D,{position:"relative",ref:q,minHeight:"300px",children:[e(me,{control:I.control,name:"config",render:({field:L})=>e(qo,{json:a,onChange:L.onChange})}),e(Z,{size:"xs","aria-label":"full screen",variant:"ghost",position:"absolute",top:"2",right:"4",onClick:X,children:w?e(es,{}):e(Ko,{})})]})]}),r(T,{mt:"4",children:[r(v,{justifyContent:"space-between",children:[e(j,{children:c("core.logs")}),e(u,{as:j,children:c(`core.socket.${f}`)})]}),e(D,{border:"1px solid",borderColor:"gray.300",bg:"#F9F9F9",_dark:{borderColor:"gray.500",bg:"#2e3440"},borderRadius:5,minHeight:"200px",maxHeight:"250px",p:2,overflowY:"auto",ref:p,children:C.map((L,$)=>e(u,{fontSize:"xs",opacity:.8,whiteSpace:"pre-line",children:L},$))})]})]}),e(Te,{children:r(v,{w:"full",justifyContent:"space-between",children:[e(D,{children:e(N,{size:"sm",leftIcon:e(Jo,{className:Ut({"animate-spin":O})}),onClick:()=>x(),children:c(O?"core.restarting":"core.restartCore")})}),e(v,{children:e(N,{size:"sm",variant:"solid",colorScheme:"primary",px:"5",type:"submit",isDisabled:s||i,isLoading:i,children:c("core.save")})})]})})]})},os=()=>{const{isEditingCore:t}=E(),o=E.setState.bind(null,{isEditingCore:!1}),{t:n}=W();return r(oe,{isOpen:t,onClose:o,size:"3xl",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",w:"full",children:[e(ie,{pt:6,children:r(v,{gap:2,children:[e(de,{color:"primary",children:e(Xo,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:n("core.title")})]})}),e(le,{mt:3}),e(ns,{})]})]})},ht=y(vn,{baseStyle:{w:5,h:5}}),ss=()=>{const[t,o]=m.exports.useState(!1),{deletingUser:n,onDeletingUser:s,deleteUser:a}=E(),{t:i}=W(),l=be(),h=()=>{s(null)},p=()=>{n&&(o(!0),a(n).then(()=>{l({title:i("deleteUser.deleteSuccess",{username:n.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).then(h).finally(o.bind(null,!1)))};return r(oe,{isCentered:!0,isOpen:!!n,onClose:h,size:"sm",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",children:[e(ie,{pt:6,children:e(de,{color:"red",children:e(ht,{})})}),e(le,{mt:3}),r(ce,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("deleteUser.title")}),n&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:i("deleteUser.prompt",{username:n.username})})})]}),r(Te,{display:"flex",children:[e(N,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Pe,{size:"xs"}):void 0,children:i("delete")})]})]})]})},Zt={baseStyle:{w:4,h:4}},as=y(In,Zt),is=y(Rr,Zt),Kr=y(Et,Zt),ls=Er(t=>{E.getState().onFilterChange({...E.getState().filters,offset:0,search:t})},300),cs=({...t})=>{const{loading:o,filters:n,onFilterChange:s,refetchUsers:a,onCreateUser:i}=E(),{t:l}=W(),[h,p]=m.exports.useState(""),C=c=>{p(c.target.value),ls(c.target.value)},d=()=>{p(""),s({...n,offset:0,search:""})};return r(Tr,{id:"filters",templateColumns:{lg:"repeat(3, 1fr)",md:"repeat(4, 1fr)",base:"repeat(1, 1fr)"},position:"sticky",top:0,mx:"-6",px:"6",rowGap:4,gap:{lg:4,base:0},bg:"var(--chakra-colors-chakra-body-bg)",py:4,zIndex:"docked",...t,children:[e(nt,{colSpan:{base:1,md:2,lg:1},order:{base:2,md:1},children:r(St,{children:[e(zn,{pointerEvents:"none",children:e(as,{})}),e(je,{placeholder:l("search"),value:h,borderColor:"light-border",onChange:C}),r(Ct,{children:[o&&e(Pe,{size:"xs"}),n.search&&n.search.length>0&&e(Z,{onClick:d,"aria-label":"clear",size:"xs",variant:"ghost",children:e(is,{})})]})]})}),e(nt,{colSpan:2,order:{base:1,md:2},children:r(v,{justifyContent:"flex-end",alignItems:"center",h:"full",children:[e(Z,{"aria-label":"refresh users",disabled:o,onClick:a,size:"sm",variant:"outline",children:e(Kr,{className:Ut({"animate-spin":o})})}),e(N,{colorScheme:"primary",size:"sm",onClick:()=>i(!0),px:5,children:l("createUser")})]})})]})},en="https://github.com/Gozargah/Marzban",ds="https://github.com/Gozargah",us="https://github.com/Gozargah/Marzban#donation",tn=t=>{const{version:o}=E();return e(v,{w:"full",py:"0",position:"relative",...t,children:r(u,{display:"inline-block",flexGrow:1,textAlign:"center",color:"gray.500",fontSize:"xs",children:[e(er,{color:"blue.400",href:en,children:"Marzban"}),o?` (v${o}), `:", ","Made with \u2764\uFE0F in"," ",e(er,{color:"blue.400",href:ds,children:"Gozargah"})]})})},hs=y(Dn,{baseStyle:{w:4,h:4}}),rn=({actions:t})=>{const{i18n:o}=W();var n=s=>{o.changeLanguage(s)};return r(Lr,{placement:"bottom-end",children:[e(Ar,{as:Z,size:"sm",variant:"outline",icon:e(hs,{}),position:"relative"}),r(Mr,{minW:"100px",zIndex:9999,children:[e(ge,{maxW:"100px",fontSize:"sm",onClick:()=>n("en"),children:"English"}),e(ge,{maxW:"100px",fontSize:"sm",onClick:()=>n("fa"),children:"\u0641\u0627\u0631\u0633\u06CC"}),e(ge,{maxW:"100px",fontSize:"sm",onClick:()=>n("zh-cn"),children:"\u7B80\u4F53\u4E2D\u6587"}),e(ge,{maxW:"100px",fontSize:"sm",onClick:()=>n("ru"),children:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"})]})]})},xe={baseStyle:{w:4,h:4}},ps=y(En,xe),ms=y(Un,xe),gs=y(Dr,xe),fs=y(Rn,xe),bs=y(Tn,xe),xs=y(Ln,xe),ys=y($t,xe),Ss=y(Nr,xe),Cs=y(Dt,xe),ws=y(Pr,xe),mr=y(D,{baseStyle:{bg:"yellow.500",w:"2",h:"2",rounded:"full",position:"absolute"}}),nn="marzban-menu-notification",_s=()=>{const t=localStorage.getItem(nn);if(!t)return!0;try{return t&&Mn(parseInt(t))?Nn(new Date,new Date(parseInt(t)))>=7:!0}catch{return!0}},ks=({actions:t})=>{const{onEditingHosts:o,onResetAllUsage:n,onEditingNodes:s,onShowingNodesUsage:a}=E(),{t:i}=W(),{colorMode:l,toggleColorMode:h}=ct(),[p,C]=m.exports.useState(_s()),d=l==="dark"?"dark_dimmed":l,c=()=>{localStorage.setItem(nn,new Date().getTime().toString()),C(!1)};return r(v,{gap:2,justifyContent:"space-between",__css:{"& .menuList":{direction:"ltr"}},position:"relative",children:[e(u,{as:"h1",fontWeight:"semibold",fontSize:"2xl",children:i("users")}),p&&e(mr,{top:"0",right:"0",zIndex:9999}),e(D,{overflow:"auto",css:{direction:"rtl"},children:r(v,{alignItems:"center",children:[r(Lr,{children:[e(Ar,{as:Z,size:"sm",variant:"outline",icon:e(fe,{children:e(fs,{})}),position:"relative"}),r(Mr,{minW:"170px",zIndex:99999,className:"menuList",children:[e(ge,{maxW:"170px",fontSize:"sm",icon:e(ys,{}),onClick:o.bind(null,!0),children:i("header.hostSettings")}),e(ge,{maxW:"170px",fontSize:"sm",icon:e(Ss,{}),onClick:s.bind(null,!0),children:i("header.nodeSettings")}),e(ge,{maxW:"170px",fontSize:"sm",icon:e(Cs,{}),onClick:a.bind(null,!0),children:i("header.nodesUsage")}),e(ge,{maxW:"170px",fontSize:"sm",icon:e(ws,{}),onClick:n.bind(null,!0),children:i("resetAllUsage")}),e(tr,{to:us,target:"_blank",children:r(ge,{maxW:"170px",fontSize:"sm",icon:e(xs,{}),position:"relative",onClick:c,children:[i("header.donation")," ",p&&e(mr,{top:"3",right:"2"})]})}),e(tr,{to:"/login",children:e(ge,{maxW:"170px",fontSize:"sm",icon:e(bs,{}),children:i("header.logout")})})]})]}),e(Z,{size:"sm",variant:"outline","aria-label":"core settings",onClick:()=>{E.setState({isEditingCore:!0})},children:e(gs,{})}),e(rn,{}),e(Z,{size:"sm",variant:"outline","aria-label":"switch theme",onClick:()=>{Xr(l=="dark"?"light":"dark"),h()},children:l==="light"?e(ps,{}):e(ms,{})}),e(D,{css:{direction:"ltr"},display:"flex",alignItems:"center",pr:"2",__css:{"& span":{display:"inline-flex"}},children:e(An,{href:en,"data-color-scheme":`no-preference: ${d}; light: ${d}; dark: ${d};`,"data-size":"large","data-show-count":"true","aria-label":"Star Marzban on GitHub",children:"Star"})})]})})]})},vs=[{title:"Inbound's default",value:"inbound_default"},{title:"TLS",value:"tls"},{title:"None",value:"none"}],Is=[{title:"",value:""},{title:"h3",value:"h3"},{title:"h2",value:"h2"},{title:"http/1.1",value:"http/1.1"},{title:"h3,h2,http/1.1",value:"h3,h2,http/1.1"},{title:"h3,h2",value:"h3,h2"},{title:"h2,http/1.1",value:"h2,http/1.1"}],zs=[{title:"",value:""},...["chrome","firefox","safari","ios","android","edge","360","qq","random","randomized"].map(t=>({title:t,value:t}))],Ds=[{title:"none",value:""},{title:"xtls-rprx-vision",value:"xtls-rprx-vision"}],Es=["aes-128-gcm","aes-256-gcm","chacha20-ietf-poly1305"],Us=zt(t=>({isLoading:!1,isPostLoading:!1,hosts:{},fetchHosts:()=>{t({isLoading:!0}),F("/hosts").then(o=>t({hosts:o})).finally(()=>t({isLoading:!1}))},setHosts:o=>(t({isPostLoading:!0}),F("/hosts",{method:"PUT",body:o}).finally(()=>{t({isPostLoading:!1})}))}));const Rs=y(Rr,{baseStyle:{w:4,h:4}}),Re=Pt.forwardRef(({disabled:t,step:o,label:n,className:s,startAdornment:a,endAdornment:i,type:l="text",placeholder:h,onChange:p,onBlur:C,name:d,value:c,onClick:k,error:I,clearable:g=!1,...S},A)=>{const f=()=>{p&&p({target:{value:"",name:d}})},{size:x="md"}=S,O=l=="number"?Hn:je,B=l=="number"?Pn:Pt.Fragment,q=l=="number"?{keepWithinRange:!0,precision:5,format:w=>isNaN(parseFloat(String(w)))||Number(parseFloat(String(w)).toFixed(5))===0?w:Number(parseFloat(String(w)).toFixed(5)),min:0,step:o,name:d,type:l,placeholder:h,onChange:w=>{p&&p(w)},onBlur:C,value:c,onClick:k,disabled:t,flexGrow:1,size:x}:{};return r(T,{isInvalid:!!I,children:[n&&e(j,{children:n}),r(St,{size:x,w:"full",rounded:"md",_focusWithin:{outline:"2px solid",outlineColor:"primary.200"},bg:t?"gray.100":"transparent",_dark:{bg:t?"gray.600":"transparent"},children:[a&&e(Fn,{children:a}),r(B,{...q,children:[e(O,{name:d,ref:A,step:o,className:Ut(s),type:l,placeholder:h,onChange:p,onBlur:C,value:c,onClick:k,disabled:t,flexGrow:1,_focusVisible:{outline:"none",borderTopColor:"transparent",borderRightColor:"transparent",borderBottomColor:"transparent"},_disabled:{cursor:"not-allowed"},...S,roundedLeft:a?"0":"md",roundedRight:i?"0":"md"}),l=="number"&&e(fe,{children:r(Wn,{children:[e(On,{}),e(jn,{})]})})]}),i&&e(Bn,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",children:i}),g&&c&&c.length&&e(Ct,{borderLeftRadius:0,borderRightRadius:"6px",bg:"transparent",onClick:f,cursor:"pointer",children:e(Rs,{})})]}),!!I&&e(wt,{children:I})]})}),At=y(Ne,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Ae=y(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),Ts=y($t,{baseStyle:{w:5,h:5}}),Ee=y($n,{baseStyle:{w:4,h:4,color:"gray.400",cursor:"pointer"}}),Ls=_.record(_.string().min(1),_.array(_.object({remark:_.string().min(1,"Remark is required"),address:_.string().min(1,"Address is required"),port:_.string().or(_.number()).nullable().transform(t=>typeof t=="number"?t:t!==null&&!isNaN(parseInt(t))?Number(parseInt(t)):null),path:_.string().nullable(),sni:_.string().nullable(),host:_.string().nullable(),mux_enable:_.boolean().default(!1),allowinsecure:_.boolean().nullable().default(!1),is_disabled:_.boolean().default(!0),fragment_setting:_.string().nullable(),random_user_agent:_.boolean().default(!1),security:_.string(),alpn:_.string(),fingerprint:_.string()}))),Se=y(wt,{baseStyle:{color:"red.400",display:"block",textAlign:"left",w:"100%"}}),As=({hostKey:t,isOpen:o,toggleAccordion:n})=>{const{inbounds:s}=E(),a=[...s.values()].flat().filter(I=>I.tag===t)[0],i=Vt(),{fields:l,append:h,remove:p}=Vn({control:i.control,name:t}),{errors:C}=i.formState,{t:d}=W(),c=C[t],k=()=>{h({host:"",sni:"",port:null,path:null,address:"",remark:"",mux_enable:!1,allowinsecure:!1,is_disabled:!1,fragment_setting:"",random_user_agent:!1,security:"inbound_default",alpn:"",fingerprint:""})};return m.exports.useEffect(()=>{c&&!o&&n()},[c]),r(Be,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(He,{px:2,borderRadius:"3px",onClick:n,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:t}),e(Ft,{})]}),e($e,{px:2,pb:2,children:r(M,{gap:3,children:[l.map((I,g)=>{var S,A,f,x,O,B,q,w,V,X,L,$,K,z,P,ee,Fe,gt,ft,ue,We,Ce,Ye,bt,Ze,Qe,qe,Xe,Je,b,U,G,te,he,ye,Y,Ke;return r(M,{border:"1px solid",_dark:{borderColor:"gray.600",bg:"#273142"},_light:{borderColor:"gray.200",bg:"#fcfbfb"},p:2,w:"full",borderRadius:"4px",children:[e(v,{w:"100%",alignItems:"flex-start",children:r(T,{position:"relative",zIndex:10,isInvalid:!!(c&&((S=c[g])==null?void 0:S.remark)),children:[r(St,{children:[e(Ae,{...i.register(t+"."+g+".remark"),size:"sm",borderRadius:"4px",placeholder:"Remark"}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(rr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(R,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(R,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(R,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(R,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(R,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(R,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(R,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(R,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(R,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(R,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(R,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((A=c[g])==null?void 0:A.remark)&&e(Se,{children:(x=(f=c[g])==null?void 0:f.remark)==null?void 0:x.message})]})}),r(T,{isInvalid:!!(c&&((O=c[g])==null?void 0:O.address)),children:[r(St,{children:[e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Address (e.g. example.com)",...i.register(t+"."+g+".address")}),e(Ct,{children:r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(D,{mt:"-8px",children:e(Ee,{})})}),e(ke,{children:r(ve,{children:[e(Ie,{}),e(ze,{}),e(rr,{children:r(D,{fontSize:"xs",children:[e(u,{pr:"20px",children:d("hostsDialog.desc")}),r(u,{children:[r(R,{children:["{","SERVER_IP","}"]})," ",d("hostsDialog.currentServer")]}),r(u,{mt:1,children:[r(R,{children:["{","SERVER_IPV6","}"]})," ",d("hostsDialog.currentServerv6")]}),r(u,{mt:1,children:[r(R,{children:["{","USERNAME","}"]})," ",d("hostsDialog.username")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_USAGE","}"]})," ",d("hostsDialog.dataUsage")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_LEFT","}"]})," ",d("hostsDialog.remainingData")]}),r(u,{mt:1,children:[r(R,{children:["{","DATA_LIMIT","}"]})," ",d("hostsDialog.dataLimit")]}),r(u,{mt:1,children:[r(R,{children:["{","DAYS_LEFT","}"]})," ",d("hostsDialog.remainingDays")]}),r(u,{mt:1,children:[r(R,{children:["{","EXPIRE_DATE","}"]})," ",d("hostsDialog.expireDate")]}),r(u,{mt:1,children:[r(R,{children:["{","JALALI_EXPIRE_DATE","}"]})," ",d("hostsDialog.jalaliExpireDate")]}),r(u,{mt:1,children:[r(R,{children:["{","TIME_LEFT","}"]})," ",d("hostsDialog.remainingTime")]}),r(u,{mt:1,children:[r(R,{children:["{","STATUS_TEXT","}"]})," ",d("hostsDialog.statusText")]}),r(u,{mt:1,children:[r(R,{children:["{","STATUS_EMOJI","}"]})," ",d("hostsDialog.statusEmoji")]}),r(u,{mt:1,children:[r(R,{children:["{","PROTOCOL","}"]})," ",d("hostsDialog.proxyProtocol")]}),r(u,{mt:1,children:[r(R,{children:["{","TRANSPORT","}"]})," ",d("hostsDialog.proxyMethod")]})]})})]})})]})})]}),c&&((B=c[g])==null?void 0:B.address)&&e(Se,{children:(w=(q=c[g])==null?void 0:q.address)==null?void 0:w.message})]}),e(ut,{w:"full",allowToggle:!0,children:r(Be,{border:"0",children:[r(He,{display:"flex",px:0,py:1,borderRadius:3,_hover:{bg:"transparent"},children:[r(u,{flex:"3",align:"start",fontSize:"xs",color:"gray.600",_dark:{color:"gray.500"},pl:1,children:[d("hostsDialog.advancedOptions"),e(Ft,{fontSize:"sm",ml:1})]}),r(Gn,{flex:"1",px:"0",children:[e(me,{control:i.control,name:`${t}.${g}.is_disabled`,render:({field:Q})=>e(_t,{mx:"1.5",colorScheme:"primary",...Q,value:void 0,isChecked:!Q.value,onChange:et=>{console.log(et.target.checked),Q.onChange(!et.target.checked)}})}),e(ne,{label:"Delete",placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",colorScheme:"red",variant:"ghost",onClick:p.bind(null,g),children:e(ht,{})})})]})]}),e($e,{w:"full",p:1,children:r(M,{w:"full",borderRadius:"4px",children:[r(T,{isInvalid:!!(c&&((V=c[g])==null?void 0:V.port)),children:[r(j,{display:"flex",pb:1,alignItems:"center",justifyContent:"space-between",gap:1,m:"0",children:[e("span",{children:d("hostsDialog.port")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.port.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:String(a.port||"8080"),type:"number",...i.register(t+"."+g+".port")})]}),r(T,{isInvalid:!!(c&&((X=c[g])==null?void 0:X.sni)),children:[r(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.sni")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.sni.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(R,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(R,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"SNI (e.g. example.com)",...i.register(t+"."+g+".sni")}),c&&((L=c[g])==null?void 0:L.sni)&&e(Se,{children:(K=($=c[g])==null?void 0:$.sni)==null?void 0:K.message})]}),r(T,{isInvalid:!!(c&&((z=c[g])==null?void 0:z.host)),children:[r(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.host")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.host.info")}),e(u,{fontSize:"xs",mt:"2",children:e(Ue,{i18nKey:"hostsDialog.host.wildcard",components:{badge:e(R,{})}})}),e(u,{fontSize:"xs",children:e(Ue,{i18nKey:"hostsDialog.host.multiHost",components:{badge:e(R,{})}})})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Host (e.g. example.com)",...i.register(t+"."+g+".host")}),c&&((P=c[g])==null?void 0:P.host)&&e(Se,{children:(Fe=(ee=c[g])==null?void 0:ee.host)==null?void 0:Fe.message})]}),r(T,{isInvalid:!!(c&&((gt=c[g])==null?void 0:gt.path)),children:[r(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.path")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.path.info")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"path (e.g. /vless)",...i.register(t+"."+g+".path")}),c&&((ft=c[g])==null?void 0:ft.path)&&e(Se,{children:(We=(ue=c[g])==null?void 0:ue.path)==null?void 0:We.message})]}),r(T,{height:"66px",children:[r(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.security")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.security.info")})]})})]})]}),e(At,{size:"sm",...i.register(t+"."+g+".security"),children:vs.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(T,{height:"66px",children:[e(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.alpn")})}),e(At,{size:"sm",...i.register(t+"."+g+".alpn"),children:Is.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(T,{height:"66px",children:[e(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:e("span",{children:d("hostsDialog.fingerprint")})}),e(At,{size:"sm",...i.register(t+"."+g+".fingerprint"),children:zs.map(Q=>e("option",{value:Q.value,children:Q.title},Q.value))})]}),r(T,{isInvalid:!!(c&&((Ce=c[g])==null?void 0:Ce.fragment_setting)),children:[r(j,{display:"flex",pb:1,alignItems:"center",gap:1,justifyContent:"space-between",m:"0",children:[e("span",{children:d("hostsDialog.fragment")}),r(we,{isLazy:!0,placement:"right",children:[e(_e,{children:e(Ee,{})}),e(ke,{children:r(ve,{p:2,children:[e(Ie,{}),e(ze,{}),e(u,{fontSize:"xs",pr:5,children:d("hostsDialog.fragment.info")}),e(u,{fontSize:"xs",pr:5,pt:2,pb:1,children:d("hostsDialog.fragment.info.examples")}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,tlshello"}),e(u,{fontSize:"xs",pr:5,children:"100-200,10-20,1-3"}),e(u,{fontSize:"xs",pr:5,pt:"3",children:d("hostsDialog.fragment.info.attention")})]})})]})]}),e(Ae,{size:"sm",borderRadius:"4px",placeholder:"Fragment settings by pattern",...i.register(t+"."+g+".fragment_setting")}),c&&((Ye=c[g])==null?void 0:Ye.fragment_setting)&&e(Se,{children:(Ze=(bt=c[g])==null?void 0:bt.fragment_setting)==null?void 0:Ze.message})]}),e(T,{isInvalid:!!(c&&((Qe=c[g])==null?void 0:Qe.allowinsecure)),children:r(ot,{...i.register(t+"."+g+".allowinsecure"),name:t+"."+g+".allowinsecure",children:[e(j,{children:d("hostsDialog.allowinsecure")}),c&&((qe=c[g])==null?void 0:qe.allowinsecure)&&e(Se,{children:(Je=(Xe=c[g])==null?void 0:Xe.allowinsecure)==null?void 0:Je.message})]})}),r(T,{isInvalid:!!(c&&((b=c[g])==null?void 0:b.mux_enable)),children:[e(ot,{...i.register(t+"."+g+".mux_enable"),children:e(j,{children:d("hostsDialog.muxEnable")})}),c&&((U=c[g])==null?void 0:U.mux_enable)&&e(Se,{children:(te=(G=c[g])==null?void 0:G.mux_enable)==null?void 0:te.message})]}),r(T,{isInvalid:!!(c&&((he=c[g])==null?void 0:he.random_user_agent)),children:[e(ot,{...i.register(t+"."+g+".random_user_agent"),children:e(j,{children:d("hostsDialog.randomUserAgent")})}),c&&((ye=c[g])==null?void 0:ye.random_user_agent)&&e(Se,{children:(Ke=(Y=c[g])==null?void 0:Y.random_user_agent)==null?void 0:Ke.message})]})]},g)})]})})]},g)}),e(N,{variant:"outline",w:"full",size:"sm",color:"",fontWeight:"normal",onClick:k,children:d("hostsDialog.addHost")})]})})]})},Ms=()=>{const{isEditingHosts:t,onEditingHosts:o,refetchUsers:n,inbounds:s}=E(),{isLoading:a,hosts:i,fetchHosts:l,isPostLoading:h,setHosts:p}=Us(),C=be(),{t:d}=W(),[c,k]=m.exports.useState({});m.exports.useEffect(()=>{t&&l()},[t]);const I=Ve({resolver:dt(Ls)});m.exports.useEffect(()=>{i&&t&&I.reset(i)},[i]);const g=()=>{k({}),o(!1)},S=f=>{p(f).then(()=>{C({title:d("hostsDialog.savedSuccess"),status:"success",isClosable:!0,position:"top",duration:3e3}),n()}).catch(x=>{var O,B,q,w,V;(((O=x==null?void 0:x.response)==null?void 0:O.status)===409||((B=x==null?void 0:x.response)==null?void 0:B.status)===400)&&C({title:(w=(q=x.response)==null?void 0:q._data)==null?void 0:w.detail,status:"error",isClosable:!0,position:"top",duration:3e3}),((V=x==null?void 0:x.response)==null?void 0:V.status)===422&&Object.keys(x.response._data.detail).forEach(X=>{C({title:x.response._data.detail[X]+" ("+X+")",status:"error",isClosable:!0,position:"top",duration:3e3})})})},A=f=>{c[String(f)]?delete c[String(f)]:c[String(f)]={},k({...c})};return r(oe,{isOpen:t,onClose:g,children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ie,{pt:6,children:e(de,{color:"primary",children:e(Ts,{color:"white"})})}),e(le,{mt:3}),e(ce,{w:"440px",pb:3,pt:3,children:e(Fr,{...I,children:r("form",{onSubmit:I.handleSubmit(S),children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:d("hostsDialog.title")}),a&&d("hostsDialog.loading"),!a&&i&&(Object.keys(i).length>0?e(ut,{w:"full",allowToggle:!0,allowMultiple:!0,index:Object.keys(c).map(f=>parseInt(f)),children:e(M,{w:"full",children:Object.keys(i).map((f,x)=>e(As,{toggleAccordion:()=>A(x),isOpen:c[String(x)],hostKey:f},f))})}):"No inbound found. Please check your Xray config file."),e(v,{justifyContent:"flex-end",py:2,children:e(N,{variant:"solid",mt:"2",type:"submit",colorScheme:"primary",size:"sm",px:5,isLoading:h,disabled:h,children:d("hostsDialog.apply")})})]})})})]})]})},on=_.object({name:_.string().min(1),address:_.string().min(1),port:_.number().min(1).or(_.string().transform(t=>parseFloat(t))),api_port:_.number().min(1).or(_.string().transform(t=>parseFloat(t))),xray_version:_.string().nullable().optional(),id:_.number().nullable().optional(),status:_.enum(["connected","connecting","error","disabled"]).nullable().optional(),message:_.string().nullable().optional(),add_as_new_host:_.boolean().optional(),usage_coefficient:_.number().or(_.string().transform(t=>parseFloat(t)))}),Ns=()=>({name:"",address:"",port:62050,api_port:62051,xray_version:"",usage_coefficient:1}),lt="fetch-nodes-query-key",Ps=()=>{const{isEditingNodes:t}=E();return Ht({queryKey:lt,queryFn:pt.getState().fetchNodes,refetchInterval:t?3e3:void 0,refetchOnWindowFocus:!1})},pt=zt((t,o)=>({nodes:[],addNode(n){return F("/node",{method:"POST",body:n})},fetchNodes(){return F("/nodes")},fetchNodesUsage(n){return F("/nodes/usage",{query:n})},updateNode(n){return F(`/node/${n.id}`,{method:"PUT",body:n})},setDeletingNode(n){t({deletingNode:n})},reconnectNode(n){return F(`/node/${n.id}/reconnect`,{method:"POST"})},deleteNode:()=>{var n;return F(`/node/${(n=o().deletingNode)==null?void 0:n.id}`,{method:"DELETE"})}})),Qt=(t,o,n)=>{if(t.response&&t.response._data){if(typeof t.response._data.detail=="string")return o({title:t.response._data.detail,status:"error",isClosable:!0,position:"top",duration:3e3});if(typeof t.response._data.detail=="object"&&n){Object.keys(t.response._data.detail).forEach(s=>n.setError(s,{message:t.response._data.detail[s]}));return}}return o({title:"Something went wrong!",status:"error",isClosable:!0,position:"top",duration:3e3})},qt=(t,o)=>o({title:t,status:"success",isClosable:!0,position:"top",duration:3e3}),Fs=({deleteCallback:t})=>{const{deleteNode:o,deletingNode:n,setDeletingNode:s}=pt(),{t:a}=W(),i=be(),l=Gt(),h=()=>{s(null)},{isLoading:p,mutate:C}=at(o,{onSuccess:()=>{qt(a("deleteNode.deleteSuccess",{name:n&&n.name}),i),s(null),l.invalidateQueries(lt),t&&t()},onError:d=>{Qt(d,i)}});return r(oe,{isCentered:!0,isOpen:!!n,onClose:h,size:"sm",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",children:[e(ie,{pt:6,children:e(de,{color:"red",children:e(ht,{})})}),e(le,{mt:3}),r(ce,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("deleteNode.title")}),n&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("deleteNode.prompt",{name:n.name})})})]}),r(Te,{display:"flex",children:[e(N,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:()=>C(),leftIcon:p?e(Pe,{size:"xs"}):void 0,children:a("delete")})]})]})]})},mt={baseStyle:{strokeWidth:"2px",w:4,h:4}},gr=y(Yn,mt),Ws=y(Zn,mt),fr=y(Qn,mt),br=y(Wr,mt),Os=y(Wr,mt),jt=[{title:"No",value:"no_reset"},{title:"Daily",value:"day"},{title:"Weekly",value:"week"},{title:"Monthly",value:"month"},{title:"Annually",value:"year"}],st={active:{statusColor:"green",bandWidthColor:"primary",icon:gr},connected:{statusColor:"green",bandWidthColor:"primary",icon:gr},disabled:{statusColor:"gray",bandWidthColor:"gray",icon:Ws},expired:{statusColor:"orange",bandWidthColor:"orange",icon:br},on_hold:{statusColor:"purple",bandWidthColor:"purple",icon:Os},connecting:{statusColor:"orange",bandWidthColor:"orange",icon:br},limited:{statusColor:"red",bandWidthColor:"red",icon:fr},error:{statusColor:"red",bandWidthColor:"red",icon:fr}},Xt=t=>{let o={status:"",time:""};if(t){H(t*1e3).utc().isAfter(H().utc())?o.status="expires":o.status="expired";const n=[],s=H.duration(H(t*1e3).utc().diff(H()));s.years()!=0&&n.push(Math.abs(s.years())+" year"+(Math.abs(s.years())!=1?"s":"")),s.months()!=0&&n.push(Math.abs(s.months())+" month"+(Math.abs(s.months())!=1?"s":"")),s.days()!=0&&n.push(Math.abs(s.days())+" day"+(Math.abs(s.days())!=1?"s":"")),n.length===0&&(s.hours()!=0&&n.push(Math.abs(s.hours())+" hour"+(Math.abs(s.hours())!=1?"s":"")),s.minutes()!=0&&n.push(Math.abs(s.minutes())+" min"+(Math.abs(s.minutes())!=1?"s":""))),o.time=n.join(", ")}return o},yt=({expiryDate:t,status:o,compact:n=!1,showDetail:s=!0,extraText:a})=>{const{t:i}=W(),l=Xt(t),h=st[o].icon;return r(fe,{children:[r(R,{colorScheme:st[o].statusColor,rounded:"full",display:"inline-flex",px:3,py:1,columnGap:n?1:2,alignItems:"center",children:[e(h,{w:n?3:4}),s&&r(u,{textTransform:"capitalize",fontSize:n?".7rem":".875rem",lineHeight:n?"1rem":"1.25rem",fontWeight:"medium",letterSpacing:"tighter",children:[o,a&&`: ${a}`]})]}),s&&t&&e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:i(l.status,{time:l.time})})]})},rt=y(Re,{baseStyle:{bg:"white",_dark:{bg:"gray.700"}}}),js=y(Nr,{baseStyle:{w:5,h:5}}),Bs=y(qn,{baseStyle:{w:5,h:5,strokeWidth:2}}),Hs=({toggleAccordion:t,node:o})=>{const{updateNode:n,reconnectNode:s,setDeletingNode:a}=pt(),{t:i}=W(),l=Gt(),h=be(),p=Ve({defaultValues:o,resolver:dt(on)}),C=a.bind(null,o),{isLoading:d,mutate:c}=at(n,{onSuccess:()=>{qt("Node updated successfully",h),l.invalidateQueries(lt)},onError:S=>{Qt(S,h,p)}}),{isLoading:k,mutate:I}=at(s.bind(null,o),{onSuccess:()=>{l.invalidateQueries(lt)}}),g=k?"connecting":o.status?o.status:"error";return r(Be,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[r(He,{px:2,borderRadius:"3px",onClick:t,children:[r(v,{w:"full",justifyContent:"space-between",pr:2,children:[e(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},children:o.name}),r(v,{children:[o.xray_version&&e(R,{colorScheme:"blue",rounded:"full",display:"inline-flex",px:3,py:1,children:r(u,{textTransform:"capitalize",fontSize:"0.7rem",fontWeight:"medium",letterSpacing:"tighter",children:["Xray ",o.xray_version]})}),o.status&&e(yt,{status:g,compact:!0})]})]}),e(Ft,{})]}),r($e,{px:2,pb:2,children:[e(M,{pb:3,alignItems:"flex-start",children:g==="error"&&e(it,{status:"error",size:"xs",children:r(D,{children:[r(v,{w:"full",children:[e(kt,{w:4}),e(u,{marginInlineEnd:0,children:o.message})]}),e(v,{justifyContent:"flex-end",w:"full",children:e(N,{size:"sm","aria-label":"reconnect node",leftIcon:e(Kr,{}),onClick:()=>I(),disabled:k,children:i(k?"nodes.reconnecting":"nodes.reconnect")})})]})})}),e(sn,{form:p,mutate:c,isLoading:d,submitBtnText:i("nodes.editNode"),btnLeftAdornment:e(ne,{label:i("delete"),placement:"top",children:e(Z,{colorScheme:"red",variant:"ghost",size:"sm","aria-label":"delete node",onClick:C,children:e(ht,{})})})})]})]})},$s=({toggleAccordion:t,resetAccordions:o})=>{const n=be(),{t:s}=W(),a=Gt(),{addNode:i}=pt(),l=Ve({resolver:dt(on),defaultValues:{...Ns(),add_as_new_host:!0}}),{isLoading:h,mutate:p}=at(i,{onSuccess:()=>{qt(s("nodes.addNodeSuccess",{name:l.getValues("name")}),n),a.invalidateQueries(lt),l.reset(),o()},onError:C=>{Qt(C,n,l)}});return r(Be,{border:"1px solid",_dark:{borderColor:"gray.600"},_light:{borderColor:"gray.200"},borderRadius:"4px",p:1,w:"full",children:[e(He,{px:2,borderRadius:"3px",onClick:t,children:r(u,{as:"span",fontWeight:"medium",fontSize:"sm",flex:"1",textAlign:"left",color:"gray.700",_dark:{color:"gray.300"},display:"flex",gap:1,children:[e(Bs,{display:"inline-block"})," ",e("span",{children:s("nodes.addNewMarzbanNode")})]})}),e($e,{px:2,py:4,children:e(sn,{form:l,mutate:p,isLoading:h,submitBtnText:s("nodes.addNode"),btnProps:{variant:"solid"},addAsHost:!0})})]})},sn=({form:t,mutate:o,isLoading:n,submitBtnText:s,btnProps:a={},btnLeftAdornment:i,addAsHost:l=!1})=>{var I,g,S,A,f,x,O,B,q,w,V,X,L,$,K;const{t:h}=W(),[p,C]=m.exports.useState(!1),{data:d,isLoading:c}=Ht({queryKey:"node-settings",queryFn:()=>F("/node/settings")});function k(z){if(document.body.createTextRange){const P=document.body.createTextRange();P.moveToElementText(z),P.select()}else if(window.getSelection){const P=window.getSelection(),ee=document.createRange();ee.selectNodeContents(z),P.removeAllRanges(),P.addRange(ee)}else console.warn("Could not select text in node: Unsupported browser.")}return e("form",{onSubmit:t.handleSubmit(z=>o(z)),children:r(M,{children:[d&&d.certificate&&e(it,{status:"info",alignItems:"start",children:r(Or,{display:"flex",flexDirection:"column",overflow:"hidden",children:[e("span",{children:h("nodes.connection-hint")}),r(v,{justify:"end",py:2,children:[e(N,{as:"a",colorScheme:"primary",size:"xs",download:"ssl_client_cert.pem",href:URL.createObjectURL(new Blob([d.certificate],{type:"text/plain"})),children:h("nodes.download-certificate")}),e(ne,{placement:"top",label:h("nodes.show-certificate"),children:e(Z,{"aria-label":h("nodes.show-certificate"),onClick:C.bind(null,!p),colorScheme:"whiteAlpha",color:"primary",size:"xs",children:p?e(Jn,{width:"15px"}):e(Xn,{width:"15px"})})})]}),e(jr,{in:p,animateOpacity:!0,children:e(u,{bg:"rgba(255,255,255,.5)",_dark:{bg:"rgba(255,255,255,.2)"},rounded:"md",p:"2",lineHeight:"1.2",fontSize:"10px",fontFamily:"Courier",whiteSpace:"pre",overflow:"auto",onClick:z=>{k(z.target)},children:d.certificate})})]})}),r(v,{w:"full",children:[e(T,{children:e(rt,{label:h("nodes.nodeName"),size:"sm",placeholder:"Marzban-S2",...t.register("name"),error:(S=(g=(I=t.formState)==null?void 0:I.errors)==null?void 0:g.name)==null?void 0:S.message})}),e(v,{px:1,children:e(me,{name:"status",control:t.control,render:({field:z})=>e(ne,{placement:"top",label:`${h("usersTable.status")}: `+(z.value!=="disabled"?h("active"):h("disabled")),textTransform:"capitalize",children:e(D,{mt:"6",children:e(_t,{colorScheme:"primary",isChecked:z.value!=="disabled",onChange:P=>{P.target.checked?z.onChange("connecting"):z.onChange("disabled")}})})},z.value)})})]}),e(v,{alignItems:"flex-start",w:"100%",children:e(D,{w:"100%",children:e(rt,{label:h("nodes.nodeAddress"),size:"sm",placeholder:"51.20.12.13",...t.register("address"),error:(x=(f=(A=t.formState)==null?void 0:A.errors)==null?void 0:f.address)==null?void 0:x.message})})}),r(v,{alignItems:"flex-start",w:"100%",children:[e(D,{children:e(rt,{label:h("nodes.nodePort"),size:"sm",placeholder:"62050",...t.register("port"),error:(q=(B=(O=t.formState)==null?void 0:O.errors)==null?void 0:B.port)==null?void 0:q.message})}),e(D,{children:e(rt,{label:h("nodes.nodeAPIPort"),size:"sm",placeholder:"62051",...t.register("api_port"),error:(X=(V=(w=t.formState)==null?void 0:w.errors)==null?void 0:V.api_port)==null?void 0:X.message})}),e(D,{children:e(rt,{label:h("nodes.usageCoefficient"),size:"sm",placeholder:"1",...t.register("usage_coefficient"),error:(K=($=(L=t.formState)==null?void 0:L.errors)==null?void 0:$.usage_coefficient)==null?void 0:K.message})})]}),l&&e(T,{py:1,children:e(ot,{...t.register("add_as_new_host"),children:e(j,{m:0,children:h("nodes.addHostForEveryInbound")})})}),r(v,{w:"full",children:[i,e(N,{flexGrow:1,type:"submit",colorScheme:"primary",size:"sm",px:5,w:"full",isLoading:n,...a,children:s})]})]})})},Vs=()=>{const{isEditingNodes:t,onEditingNodes:o}=E(),{t:n}=W(),[s,a]=m.exports.useState({}),{data:i,isLoading:l}=Ps(),h=()=>{a({}),o(!1)},p=C=>{s[String(C)]?delete s[String(C)]:s[String(C)]={},a({...s})};return r(fe,{children:[r(oe,{isOpen:t,onClose:h,children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ie,{pt:6,children:e(de,{color:"primary",children:e(js,{color:"white"})})}),e(le,{mt:3}),r(ce,{w:"440px",pb:6,pt:3,children:[e(u,{mb:3,opacity:.8,fontSize:"sm",children:n("nodes.title")}),l&&"loading...",e(ut,{w:"full",allowToggle:!0,index:Object.keys(s).map(C=>parseInt(C)),children:r(M,{w:"full",children:[!l&&i&&i.map((C,d)=>e(Hs,{toggleAccordion:()=>p(d),node:C},C.name)),e($s,{toggleAccordion:()=>p((i||[]).length),resetAccordions:()=>a({})})]})})]})]})]}),e(Fs,{deleteCallback:()=>a({})})]})};function Gs(t){const o=360/t,n=90,s=47,a=[];for(let i=0;i(k<0&&(k+=1),k>1&&(k-=1),k<.16666666666666666?d+(c-d)*6*k:k<.5?c:k<.6666666666666666?d+(c-d)*(.6666666666666666-k)*6:d),p=n<.5?n*(1+o):n+o-n*o,C=2*n-p;s=Math.round(h(C,p,t+1/3)*255),a=Math.round(h(C,p,t)*255),i=Math.round(h(C,p,t-1/3)*255)}const l=h=>{const p=h.toString(16);return p.length===1?"0"+p:p};return`#${l(s)}${l(a)}${l(i)}`}const xr=({border:t,...o})=>{const{getInputProps:n,getRadioProps:s}=so(o),a=Me({base:"xs",md:"sm"});return r(D,{as:"label",children:[e("input",{...n()}),e(D,{...s(),minW:"48px",w:"full",h:"full",textAlign:"center",cursor:"pointer",fontSize:a,borderWidth:t?"1px":"0px",borderRadius:"md",_checked:{bg:"primary.500",color:"white",borderColor:"primary.500"},_focus:{boxShadow:"outline"},px:3,py:1,children:o.children})]})},an=({onChange:t,defaultValue:o,...n})=>{const{t:s,i18n:a}=W();ct();const i=Me({base:["7h","1d","3d","1w"],md:["7h","1d","3d","1w","1m","3m"]}),l={h:"hour",d:"day",w:"week",m:"month",y:"year"},h=Me({base:[{title:"hours",options:["1h","3h","6h","12h"]},{title:"days",options:["1d","2d","3d","4d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m"]}],md:[{title:"hours",options:["1h","2h","3h","6h","8h","12h"]},{title:"days",options:["1d","2d","3d","4d","5d","6d"]},{title:"weeks",options:["1w","2w","3w","4w"]},{title:"months",options:["1m","2m","3m","6m","8m"]}]}),{getRootProps:p,getRadioProps:C,setValue:d}=Kn({name:"filter",defaultValue:o,onChange:z=>{if(z==="custom")return;I(),i.indexOf(z)>=0?(A(s("userDialog.custom")),x(!1)):(A(s("userDialog.custom")+` (${z})`),x(!0));const P=Number(z.substring(0,z.length-1)),ee=l[z[z.length-1]];t(z,{start:H().utc().subtract(P,ee).format("YYYY-MM-DDTHH:00:00")})}}),{isOpen:c,onOpen:k,onClose:I}=eo(),g=m.exports.useRef(null);to({ref:g,handler:I});const[S,A]=m.exports.useState(s("userDialog.custom")),[f,x]=m.exports.useState(!1),[O,B]=m.exports.useState(0),q=Me({base:1,md:2}),w=Me({base:"xs",md:"sm"}),[V,X]=m.exports.useState(null),[L,$]=m.exports.useState(null),K=z=>{const[P,ee]=z;L&&!ee?(X(null),$(null)):(X(P),$(ee),P&&ee&&(I(),t("custom",{start:H(P).format("YYYY-MM-DDT00:00:00"),end:H(ee).format("YYYY-MM-DDT23:59:59")})))};return r(M,{...n,children:[O==0&&r(Yt,{...p(),gap:0,display:"flex",borderWidth:"1px",borderRadius:"md",minW:{base:"320px",md:"400px"},children:[i.map(z=>e(xr,{...C({value:z}),children:z},z)),e(D,{onClick:()=>{X(null),$(null),k()},cursor:"pointer",borderRadius:"md",w:"full",fontSize:w,px:3,py:1,bg:f?"primary.500":"unset",color:f?"white":"unset",borderColor:f?"primary.500":"unset",children:r(v,{children:[e(u,{children:S}),e(Tt,{as:nr,boxSize:"18px"})]})})]}),O==1&&r(v,{onClick:k,cursor:"pointer",fontSize:w,borderRadius:"md",px:3,py:1,minW:{base:"320px",md:"400px"},borderWidth:"1px",children:[e(u,{w:"full",color:V?"unset":"gray.500",children:V?H(V).format("YYYY-MM-DD (00:00)"):s("userDialog.startDate")}),e(Tt,{as:Br,boxSize:"18px"}),e(u,{w:"full",color:L?"unset":"gray.500",children:L?H(L).format("YYYY-MM-DD (23:59)"):s("userDialog.endDate")}),e(Tt,{as:nr,boxSize:"18px"})]}),e(M,{ref:g,marginTop:"40px !important",borderRadius:"md",borderWidth:"1px",position:"absolute",zIndex:"1",backgroundColor:"white",_dark:{backgroundColor:"gray.700"},display:c?"unset":"none",children:r(ro,{onChange:z=>B(z),children:[r(no,{children:[e(or,{fontSize:w,children:s("userDialog.relative")}),e(or,{fontSize:w,children:s("userDialog.absolute")})]}),r(oo,{children:[e(sr,{children:h.map(z=>e(M,{alignItems:"start",pl:2,pr:2,children:r(v,{justifyItems:"flex-start",mb:4,children:[e(u,{fontSize:w,minW:"60px",children:s("userDialog."+z.title)}),z.options.map(P=>e(xr,{border:!0,...C({value:P}),children:P},P+".custom"))]})},z.title))}),e(sr,{className:"datepicker-panel",children:e(M,{children:e(Hr,{locale:a.language.toLocaleLowerCase(),selected:V,onChange:K,startDate:V,endDate:L,selectsRange:!0,maxDate:new Date,monthsShown:q,peekNextMonth:!1,inline:!0})})})]})]})})]})};function It(t,o,n=[],s=[]){const a=re(n.reduce((i,l)=>i+=l,0));return{series:n,options:{labels:s,chart:{width:"100%",height:"100%",type:"donut",animations:{enabled:!1}},title:{text:`${o}${a}`,align:"center",style:{fontWeight:"var(--chakra-fontWeights-medium)",color:t==="dark"?"var(--chakra-colors-gray-300)":void 0}},legend:{position:"bottom",labels:{colors:t==="dark"?"#CBD5E0":void 0,useSeriesColors:!1}},stroke:{width:1,colors:void 0},dataLabels:{formatter:(i,{seriesIndex:l,w:h})=>re(h.config.series[l],1)},tooltip:{custom:({series:i,seriesIndex:l,dataPointIndex:h,w:p})=>{const C=re(i[l],1),d=Math.max(i.reduce((k,I)=>k+=I),1),c=Math.round(i[l]/d*1e3)/10+"%";return` +
+ ${p.config.labels[l]}: ${c}, ${C} +
+ `}},colors:Gs(n.length)}}}const Zs=y(Dt,{baseStyle:{w:5,h:5}}),Qs=()=>{const{isShowingNodesUsage:t,onShowingNodesUsage:o}=E(),{fetchNodesUsage:n}=pt(),{t:s}=W(),[a,i]=m.exports.useState(!1),{colorMode:l}=ct(),h=s("userDialog.total"),[p,C]=m.exports.useState(It(l,h)),[d,c]=m.exports.useState("1m"),k=S=>{n(S).then(A=>{const f=[],x=[];for(const O in A.usages){const B=A.usages[O];x.push(B.uplink+B.downlink),f.push(B.node_name)}C(It(l,h,x,f))})};m.exports.useEffect(()=>{t&&k({start:H().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")})},[t]);const I=()=>{o(!1),c("1m")},g=a;return r(oe,{isOpen:t,onClose:I,size:"2xl",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",w:"full",children:[e(ie,{pt:6,children:r(v,{gap:2,children:[e(de,{color:"primary",children:e(Zs,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:s("header.nodesUsage")})]})}),e(le,{mt:3,disabled:g}),e(ce,{children:r(M,{gap:4,children:[e(an,{defaultValue:d,onChange:(S,A)=>{c(S),k(A)}}),e(D,{justifySelf:"center",w:"full",maxW:"300px",mt:"4",children:e(m.exports.Suspense,{fallback:e(Ur,{isIndeterminate:!0}),children:e($r,{options:p.options,series:p.series,type:"donut",height:"500px"})})})]})}),e(Te,{mt:"3"})]})]})},yr=y(ao),qs=y(Br,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Xs=y(io,{baseStyle:{w:6,h:6,color:"gray.600",_dark:{color:"white"}}}),Js=y(Vr,{baseStyle:{w:5,h:5}}),Ks=()=>{const{QRcodeLinks:t,setQRCode:o,setSubLink:n,subscribeUrl:s}=E(),a=t!==null,[i,l]=m.exports.useState(0),{t:h}=W(),p=()=>{o(null),n(null)},C=String(s).startsWith("/")?window.location.origin+s:String(s);return r(oe,{isOpen:a,onClose:p,children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",w:"fit-content",maxW:"3xl",children:[e(ie,{pt:6,children:e(de,{color:"primary",children:e(Js,{color:"white"})})}),e(le,{mt:3}),t&&r(ce,{gap:{base:"20px",lg:"50px"},pr:{lg:"60px"},px:{base:"50px"},display:"flex",justifyContent:"center",flexDirection:{base:"column",lg:"row"},children:[s&&r(M,{children:[e(yr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:C,bg:"white"}),e(u,{display:"block",textAlign:"center",pb:3,mt:1,children:h("qrcodeDialog.sublink")})]}),r(D,{w:"300px",children:[e(lo,{centerPadding:"0px",centerMode:!0,slidesToShow:1,slidesToScroll:1,dots:!1,afterChange:l,onInit:()=>l(0),nextArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"next",mr:"-4",children:e(qs,{})}),prevArrow:e(Z,{size:"sm",position:"absolute",display:"flex !important",_before:{content:'""'},"aria-label":"prev",ml:"-4",children:e(Xs,{})}),children:t.map((d,c)=>e(v,{children:e(yr,{mx:"auto",size:300,p:"2",level:"L",includeMargin:!1,value:d,bg:"white"})},c))}),r(u,{display:"block",textAlign:"center",pb:3,mt:1,children:[i+1," / ",t.length]})]})]})]})]})},ea=y(Pr,{baseStyle:{w:5,h:5}}),ta=()=>{const[t,o]=m.exports.useState(!1),{isResetingAllUsage:n,onResetAllUsage:s,resetAllUsage:a}=E(),{t:i}=W(),l=be(),h=()=>{s(!1)},p=()=>{o(!0),a().then(()=>{l({title:i("resetAllUsage.success"),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{l({title:i("resetAllUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{o(!1)})};return r(oe,{isCentered:!0,isOpen:n,onClose:h,size:"sm",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",children:[e(ie,{pt:6,children:e(de,{color:"red",children:e(ea,{})})}),e(le,{mt:3}),r(ce,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:i("resetAllUsage.title")}),n&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:i("resetAllUsage.prompt")})]}),r(Te,{display:"flex",children:[e(N,{size:"sm",onClick:h,mr:3,w:"full",variant:"outline",children:i("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"red",onClick:p,leftIcon:t?e(Pe,{size:"xs"}):void 0,children:i("reset")})]})]})]})},ra=y(Et,{baseStyle:{w:5,h:5}}),na=()=>{const[t,o]=m.exports.useState(!1),{resetUsageUser:n,resetDataUsage:s}=E(),{t:a}=W(),i=be(),l=()=>{E.setState({resetUsageUser:null})},h=()=>{n&&(o(!0),s(n).then(()=>{i({title:a("resetUserUsage.success",{username:n.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("resetUserUsage.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{o(!1)}))};return r(oe,{isCentered:!0,isOpen:!!n,onClose:l,size:"sm",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",children:[e(ie,{pt:6,children:e(de,{color:"blue",children:e(ra,{})})}),e(le,{mt:3}),r(ce,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("resetUserUsage.title")}),n&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("resetUserUsage.prompt",{username:n.username})})})]}),r(Te,{display:"flex",children:[e(N,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Pe,{size:"xs"}):void 0,children:a("reset")})]})]})]})},oa=y(Et,{baseStyle:{w:5,h:5}}),sa=()=>{const[t,o]=m.exports.useState(!1),{revokeSubscriptionUser:n,revokeSubscription:s}=E(),{t:a}=W(),i=be(),l=()=>{E.setState({revokeSubscriptionUser:null})},h=()=>{n&&(o(!0),s(n).then(()=>{i({title:a("revokeUserSub.success",{username:n.username}),status:"success",isClosable:!0,position:"top",duration:3e3})}).catch(()=>{i({title:a("revokeUserSub.error"),status:"error",isClosable:!0,position:"top",duration:3e3})}).finally(()=>{o(!1)}))};return r(oe,{isCentered:!0,isOpen:!!n,onClose:l,size:"sm",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),r(ae,{mx:"3",children:[e(ie,{pt:6,children:e(de,{color:"blue",children:e(oa,{})})}),e(le,{mt:3}),r(ce,{children:[e(u,{fontWeight:"semibold",fontSize:"lg",children:a("revokeUserSub.title")}),n&&e(u,{mt:1,fontSize:"sm",_dark:{color:"gray.400"},color:"gray.600",children:e(Ue,{components:{b:e("b",{})},children:a("revokeUserSub.prompt",{username:n.username})})})]}),r(Te,{display:"flex",children:[e(N,{size:"sm",onClick:l,mr:3,w:"full",variant:"outline",children:a("cancel")}),e(N,{size:"sm",w:"full",colorScheme:"blue",onClick:h,leftIcon:t?e(Pe,{size:"xs"}):void 0,children:a("revoke")})]})]})]})},aa=y(co,{baseStyle:{strokeWidth:"2px",w:5,h:5}}),ia=({inbound:t,...o})=>{const{getCheckboxProps:n,getInputProps:s,getLabelProps:a,htmlProps:i}=Yr(o),l=s();return r(D,{as:"label",children:[e("input",{...l}),r(D,{w:"fll",position:"relative",...i,cursor:"pointer",borderRadius:"sm",border:"1px solid",borderColor:"gray.200",_dark:{borderColor:"gray.600"},display:"flex",alignItems:"center",justifyContent:"space-between",overflow:"hidden",_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent",fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& p":{opacity:1}},__css:{"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...n(),children:[e(ot,{size:"sm",w:"full",maxW:"full",color:"gray.700",_dark:{color:"gray.300"},textTransform:"uppercase",colorScheme:"primary",className:"inbound-item",isChecked:l.checked,pointerEvents:"none",flexGrow:1,children:e(v,{justify:"space-between",w:"full",maxW:"calc(100% - 20px)",spacing:0,gap:2,overflow:"hidden",children:r(u,{isTruncated:!0,...a(),fontSize:"xs",children:[t.tag," ",r(u,{as:"span",children:["(",t.network,")"]})]})})}),t.tls&&t.tls!="none"&&e(R,{fontSize:"xs",opacity:".8",size:"xs",children:t.tls})]})]})},la=({disabled:t,title:o,description:n,toggleAccordion:s,isSelected:a,...i})=>{const l=Vt(),{inbounds:h}=E(),{getCheckboxProps:p,getInputProps:C,getLabelProps:d,htmlProps:c}=Yr(i),k=C(),[I]=Zr({name:[`inbounds.${o}`],control:l.control}),{getCheckboxProps:g}=Gr({value:I,onChange:x=>{if(l.setValue(`inbounds.${o}`,x),x.length===0){const O=l.getValues("selected_proxies");l.setValue("selected_proxies",O.filter(B=>B!==o)),s()}}}),S=I&&a&&(E.getState().inbounds.get(o)||[]).length!==I.length,A=(E.getState().inbounds.get(o)||[]).length>0,f=!a&&!A;return r(Be,{isDisabled:!A,borderRadius:"md",borderStyle:"solid",border:"1px",borderColor:"gray.200",bg:f?"gray.100":"transparent",_dark:{borderColor:"gray.600",bg:f?"#364154":"transparent"},_checked:{bg:"gray.50",outline:"2px",boxShadow:"outline",outlineColor:"primary.500",borderColor:"transparent"},...p(),children:[r(D,{as:f?"span":"label",position:"relative",children:[S&&e(D,{position:"absolute",w:"2",h:"2",bg:"yellow.500",top:"-1",right:"-1",rounded:"full",zIndex:999}),e("input",{...k}),r(D,{w:"fll",position:"relative",...c,borderRadius:"md",cursor:f?"not-allowed":"pointer",_checked:{fontWeight:"medium",_dark:{bg:"gray.750",borderColor:"transparent"},"& > svg":{opacity:1,"&.checked":{display:"block"},"&.unchecked":{display:"none"}},"& p":{opacity:1}},__css:{"& > svg":{opacity:.3,"&.checked":{display:"none"},"&.unchecked":{display:"block"}},"& p":{opacity:.8}},textTransform:"capitalize",px:3,py:2,fontWeight:"medium",...p(),children:[e(He,{display:k.checked&&A?"block":"none",as:"span",className:"checked",color:"primary.200",position:"absolute",right:"3",top:"3",w:"auto",p:0,onClick:s,children:e(Z,{size:"sm","aria-label":"inbound settings",children:e(aa,{})})}),e(u,{fontSize:"sm",color:f?"gray.400":"gray.700",_dark:{color:f?"gray.500":"gray.300"},...d(),children:o}),e(u,{fontWeight:"medium",color:f?"gray.400":"gray.600",_dark:{color:f?"gray.500":"gray.400"},fontSize:"xs",children:n})]})]}),e($e,{px:2,pb:3,roundedBottom:"5px",pt:3,_dark:{bg:k.checked&&"gray.750"},children:r(M,{w:"full",rowGap:2,borderStyle:"solid",borderWidth:"1px",borderRadius:"md",pl:3,pr:3,pt:1.5,_dark:{bg:"gray.700"},children:[r(M,{alignItems:"flex-start",w:"full",children:[e(u,{fontSize:"sm",children:J("inbound")}),e(Yt,{gap:2,alignItems:"flex-start",w:"full",columns:1,spacing:1,children:(h.get(o)||[]).map(x=>e(ia,{...g({value:x.tag}),inbound:x},x.tag))})]}),o==="vmess"&&a&&e(M,{alignItems:"flex-start",w:"full",children:r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(je,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vmess.id")})]})}),o==="vless"&&a&&r(M,{alignItems:"flex-start",w:"full",children:[r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"ID"}),e(je,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.vless.id")})]}),r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:"Flow"}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.vless.flow"),children:Ds.map(x=>e("option",{value:x.value,children:x.title},x.title))})]})]}),o==="trojan"&&a&&e(M,{alignItems:"flex-start",w:"full",children:r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(je,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.trojan.password")})]})}),o==="shadowsocks"&&a&&r(M,{alignItems:"flex-start",w:"full",children:[r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("password")}),e(je,{fontSize:"xs",size:"sm",borderRadius:"6px",pl:2,pr:2,placeholder:J("userDialog.generatedByDefault"),...l.register("proxies.shadowsocks.password")})]}),r(T,{height:"66px",children:[e(u,{fontSize:"sm",pb:1,children:J("userDialog.method")}),e(Ne,{fontSize:"xs",size:"sm",borderRadius:"6px",...l.register("proxies.shadowsocks.method"),children:Es.map(x=>e("option",{value:x,children:x},x))})]})]})]})})]})},ca=m.exports.forwardRef(({name:t,list:o,onChange:n,disabled:s,...a},i)=>{const l=Vt(),[h,p]=m.exports.useState([]),C=c=>{h.includes(c)?h.splice(h.indexOf(c),1):h.push(c),p([...h])},{getCheckboxProps:d}=Gr({value:a.value,onChange:c=>{var I;const k=c.filter(g=>!a.value.includes(g));k[0]&&l.setValue(`inbounds.${k[0]}`,(I=E.getState().inbounds.get(k[0]))==null?void 0:I.map(g=>g.tag)),p(h.filter(g=>c.find(S=>S===o[g].title))),n({target:{value:c,name:t}})}});return e(ut,{allowToggle:!0,index:h,children:e(Yt,{ref:i,gap:2,alignItems:"flex-start",columns:1,spacing:1,children:o.map((c,k)=>e(la,{toggleAccordion:C.bind(null,k),disabled:s,title:c.title,description:c.description,isSelected:!!a.value.find(I=>I===c.title),...d({value:c.title})},c.title))})})}),da=y(uo,{baseStyle:{w:5,h:5}}),ua=y(Qr,{baseStyle:{w:5,h:5}}),ha=y(Dt,{baseStyle:{w:5,h:5}}),pa=t=>({...t,data_limit:t.data_limit?Number((t.data_limit/1073741824).toFixed(5)):t.data_limit,on_hold_expire_duration:t.on_hold_expire_duration?Number(t.on_hold_expire_duration/(24*60*60)):t.on_hold_expire_duration,selected_proxies:Object.keys(t.proxies)}),Mt=()=>{const t=Object.fromEntries(E.getState().inbounds),o={};for(const n in t)o[n]=t[n].map(s=>s.tag);return{selected_proxies:Object.keys(t),data_limit:null,expire:null,username:"",data_limit_reset_strategy:"no_reset",status:"active",on_hold_expire_duration:null,note:"",inbounds:o,proxies:{vless:{id:"",flow:""},vmess:{id:""},trojan:{password:""},shadowsocks:{password:"",method:"chacha20-ietf-poly1305"}}}},ma=(t,o)=>{const n=t.reduce((s,a)=>({...s,[a]:{}}),{});return o&&t.forEach(s=>{o[s]&&(n[s]=o[s])}),n},ga=()=>{var Ze,Qe,qe,Xe,Je;const{editingUser:t,isCreatingNewUser:o,onCreateUser:n,editUser:s,fetchUserUsage:a,onEditingUser:i,createUser:l,onDeletingUser:h}=E(),p=!!t,C=o||p,[d,c]=m.exports.useState(!1),[k,I]=m.exports.useState(""),g=be(),{t:S,i18n:A}=W(),f=_.object({username:_.string().min(1,{message:"Required"}),selected_proxies:_.array(_.string()).refine(b=>b.length>0,{message:"userDialog.selectOneProtocol"}),note:_.string().nullable(),proxies:_.record(_.string(),_.record(_.string(),_.any())).transform(b=>{const U=(G,te)=>{G&&G[te]===""&&delete G[te]};return U(b.vmess,"id"),U(b.vless,"id"),U(b.trojan,"password"),U(b.shadowsocks,"password"),U(b.shadowsocks,"method"),b}),data_limit:_.string().min(0,"The minimum number is 0").or(_.number()).nullable().transform(b=>b?Number((parseFloat(String(b))*1073741824).toFixed(5)):0),expire:_.number().nullable(),on_hold_expire_duration:_.string().min(.1,"The minimum number is 0.1").or(_.number()).nullable().refine(b=>We!=="on_hold",{message:"Required"}).transform(b=>b?Number(parseFloat(String(b))*(24*60*60)):0),data_limit_reset_strategy:_.string(),status:_.string(),inbounds:_.record(_.string(),_.array(_.string())).transform(b=>(Object.keys(b).forEach(U=>{var G;Array.isArray(b[U])&&!((G=b[U])!=null&&G.length)&&delete b[U]}),b))}),{colorMode:x}=ct(),[O,B]=m.exports.useState(!1),q=()=>{B(b=>!b)},w=Ve({defaultValues:Mt(),resolver:dt(f)});m.exports.useEffect(()=>E.subscribe(b=>b.inbounds,()=>{w.reset(Mt())}),[]);const[V]=Zr({control:w.control,name:["data_limit"]}),X=S("userDialog.total"),[L,$]=m.exports.useState(It(x,X)),[K,z]=m.exports.useState("1m"),P=b=>{a(t,b).then(U=>{const G=[],te=[];for(const he in U.usages)te.push(U.usages[he].used_traffic),G.push(U.usages[he].node_name);$(It(x,X,te,G))})};m.exports.useEffect(()=>{t&&(w.reset(pa(t)),Ce(w.getValues().status),P({start:H().utc().subtract(30,"day").format("YYYY-MM-DDTHH:00:00")}))},[t]);const ee=b=>{c(!0);const U={edited:s,created:l},G=p?"edited":"created";I(null);const{selected_proxies:te,...he}=b;let ye={...he,data_limit:b.data_limit,proxies:ma(te,b.proxies),data_limit_reset_strategy:b.data_limit&&b.data_limit>0?b.data_limit_reset_strategy:"no_reset",status:b.status==="active"||b.status==="disabled"||b.status==="on_hold"?b.status:"active"};U[G](ye).then(()=>{g({title:S(p?"userDialog.userEdited":"userDialog.userCreated",{username:b.username}),status:"success",isClosable:!0,position:"top",duration:3e3}),Fe()}).catch(Y=>{var Ke,Q,et,Jt,Kt;(((Ke=Y==null?void 0:Y.response)==null?void 0:Ke.status)===409||((Q=Y==null?void 0:Y.response)==null?void 0:Q.status)===400)&&I((Jt=(et=Y==null?void 0:Y.response)==null?void 0:et._data)==null?void 0:Jt.detail),((Kt=Y==null?void 0:Y.response)==null?void 0:Kt.status)===422&&Object.keys(Y.response._data.detail).forEach(Rt=>{I(Y==null?void 0:Y.response._data.detail[Rt]),w.setError(Rt,{type:"custom",message:Y.response._data.detail[Rt]})})}).finally(()=>{c(!1)})},Fe=()=>{w.reset(Mt()),n(!1),i(null),I(null),B(!1),z("1m"),Ce(null)},gt=()=>{E.setState({resetUsageUser:t})},ft=()=>{E.setState({revokeSubscriptionUser:t})},ue=d,[We,Ce]=m.exports.useState(),[Ye,bt]=m.exports.useState();return m.exports.useEffect(()=>{Ce(w.getValues().status)},[w]),m.exports.useEffect(()=>{bt(w.getValues().status)},[]),r(oe,{isOpen:C,onClose:Fe,size:"2xl",children:[e(se,{bg:"blackAlpha.300",backdropFilter:"blur(10px)"}),e(Fr,{...w,children:e(ae,{mx:"3",children:r("form",{onSubmit:w.handleSubmit(ee),children:[e(ie,{pt:6,children:r(v,{gap:2,children:[e(de,{color:"primary",children:p?e(ua,{color:"white"}):e(da,{color:"white"})}),e(u,{fontWeight:"semibold",fontSize:"lg",children:S(p?"userDialog.editUserTitle":"createNewUser")})]})}),e(le,{mt:3,disabled:ue}),r(ce,{children:[r(Tr,{templateColumns:{base:"repeat(1, 1fr)",md:"repeat(2, 1fr)"},gap:3,children:[e(nt,{children:r(M,{justifyContent:"space-between",children:[r(ar,{flexDirection:"column",gridAutoRows:"min-content",w:"full",children:[r(T,{mb:"10px",children:[e(j,{children:S("username")}),r(v,{children:[e(Re,{size:"sm",type:"text",borderRadius:"6px",error:(Ze=w.formState.errors.username)==null?void 0:Ze.message,disabled:ue||p,...w.register("username")}),p&&e(v,{px:1,children:e(me,{name:"status",control:w.control,render:({field:b})=>e(ne,{placement:"top",label:"status: "+b.value,textTransform:"capitalize",children:e(D,{children:e(_t,{colorScheme:"primary",disabled:b.value!=="disabled"&&b.value!=="on_hold",isChecked:b.value==="active",onChange:U=>{U.target.checked?b.onChange("active"):b.onChange("disabled")}})})})})})]})]}),r(T,{mb:"10px",children:[e(j,{children:S("userDialog.dataLimit")}),e(me,{control:w.control,name:"data_limit",render:({field:b})=>{var U;return e(Re,{endAdornment:"GB",type:"number",size:"sm",borderRadius:"6px",onChange:b.onChange,disabled:ue,error:(U=w.formState.errors.data_limit)==null?void 0:U.message,value:b.value?String(b.value):""})}})]}),e(jr,{in:!!(V&&V>0),animateOpacity:!0,style:{width:"100%"},children:r(T,{height:"66px",children:[e(j,{children:S("userDialog.periodicUsageReset")}),e(me,{control:w.control,name:"data_limit_reset_strategy",render:({field:b})=>e(Ne,{size:"sm",...b,children:jt.map(U=>e("option",{value:U.value,children:S("userDialog.resetStrategy"+U.title)},U.value))})})]})}),r(ar,{flexDirection:"row",w:"full",gap:"1rem",mb:"10px",children:[r(T,{display:We==="on_hold"&&w.getValues().status==="on_hold"?"none":"block",children:[e(j,{children:S("userDialog.expiryDate")}),e(me,{name:"expire",control:w.control,render:({field:b})=>{var he;function U(ye){return H(H(ye*1e3).utc()).toDate()}const{status:G,time:te}=Xt(b.value);return r(fe,{children:[e(Hr,{locale:A.language.toLocaleLowerCase(),dateFormat:S("dateFormat"),minDate:new Date,selected:b.value?U(b.value):void 0,onChange:ye=>{w.setValue("on_hold_expire_duration",null),b.onChange({target:{value:ye?H(H(ye).set("hour",23).set("minute",59).set("second",59)).utc().valueOf()/1e3:0,name:"expire"}})},customInput:e(Re,{size:"sm",type:"text",borderRadius:"6px",clearable:!0,disabled:ue,error:(he=w.formState.errors.expire)==null?void 0:he.message})}),b.value?e(ho,{children:S(G,{time:te})}):""]})}})]}),r(T,{display:We!=="on_hold"&&w.getValues().status!=="on_hold"?"none":"block",children:[e(j,{children:S("userDialog.onHoldExpireDuration")}),e(me,{control:w.control,name:"on_hold_expire_duration",render:({field:b})=>{var U;return e(Re,{endAdornment:"Days",type:"number",size:"sm",borderRadius:"6px",onChange:G=>{w.setValue("expire",null),b.onChange({target:{value:G}})},disabled:ue,error:(U=w.formState.errors.on_hold_expire_duration)==null?void 0:U.message,value:b.value?String(b.value):""})}})]}),r(T,{flex:"1",children:[e(j,{whiteSpace:"nowrap",children:S("userDialog.onHold")}),e(me,{name:"status",control:w.control,render:({field:b})=>{const U=b.value;return e(fe,{children:U?e(_t,{colorScheme:"primary",isChecked:U==="on_hold",onChange:G=>{G.target.checked?(b.onChange("on_hold"),Ce("on_hold")):(b.onChange(Ye),Ce(Ye))}}):""})}})]})]}),r(T,{mb:"10px",isInvalid:!!w.formState.errors.note,children:[e(j,{children:S("userDialog.note")}),e(po,{...w.register("note")}),e(wt,{children:(qe=(Qe=w.formState.errors)==null?void 0:Qe.note)==null?void 0:qe.message})]})]}),k&&r(it,{status:"error",display:{base:"none",md:"flex"},children:[e(kt,{}),k]})]})}),e(nt,{children:r(T,{isInvalid:!!((Xe=w.formState.errors.selected_proxies)!=null&&Xe.message),children:[e(j,{children:S("userDialog.protocols")}),e(me,{control:w.control,name:"selected_proxies",render:({field:b})=>e(ca,{list:[{title:"vmess",description:S("userDialog.vmessDesc")},{title:"vless",description:S("userDialog.vlessDesc")},{title:"trojan",description:S("userDialog.trojanDesc")},{title:"shadowsocks",description:S("userDialog.shadowsocksDesc")}],disabled:ue,...b})}),e(wt,{children:S((Je=w.formState.errors.selected_proxies)==null?void 0:Je.message)})]})}),p&&O&&e(nt,{pt:6,colSpan:{base:1,md:2},children:r(M,{gap:4,children:[e(an,{defaultValue:K,onChange:(b,U)=>{z(b),P(U)}}),e(D,{width:{base:"100%",md:"70%"},justifySelf:"center",children:e($r,{options:L.options,series:L.series,type:"donut"})})]})})]}),k&&r(it,{mt:"3",status:"error",display:{base:"flex",md:"none"},children:[e(kt,{}),k]})]}),e(Te,{mt:"3",children:r(v,{justifyContent:"space-between",w:"full",gap:3,flexDirection:{base:"column",sm:"row"},children:[e(v,{justifyContent:"flex-start",w:{base:"full",sm:"unset"},children:p&&r(fe,{children:[e(ne,{label:S("delete"),placement:"top",children:e(Z,{"aria-label":"Delete",size:"sm",onClick:()=>{h(t),Fe()},children:e(ht,{})})}),e(ne,{label:S("userDialog.usage"),placement:"top",children:e(Z,{"aria-label":"usage",size:"sm",onClick:q,children:e(ha,{})})}),e(N,{onClick:gt,size:"sm",children:S("userDialog.resetUsage")}),e(N,{onClick:ft,size:"sm",children:S("userDialog.revokeSubscription")})]})}),e(v,{w:"full",maxW:{md:"50%",base:"full"},justify:"end",children:e(N,{type:"submit",size:"sm",px:"8",colorScheme:"primary",leftIcon:d?e(Pe,{size:"xs"}):void 0,disabled:ue,children:S(p?"userDialog.editUser":"createUser")})})]})})]})})})]})},fa=t=>m.exports.createElement("svg",{xmlns:"http://www.w3.org/2000/svg","data-name":"Layer 1",width:782.04441,height:701.88002,viewBox:"0 0 782.04441 701.88002",xmlnsXlink:"http://www.w3.org/1999/xlink",...t},m.exports.createElement("path",{d:"M609.48783,100.59015l-25.44631,6.56209L270.53735,187.9987,245.091,194.56079A48.17927,48.17927,0,0,0,210.508,253.17865L320.849,681.05606a48.17924,48.17924,0,0,0,58.61776,34.58317l.06572-.01695,364.26536-93.93675.06572-.01695a48.17923,48.17923,0,0,0,34.58309-58.6178l-110.341-427.87741A48.17928,48.17928,0,0,0,609.48783,100.59015Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M612.94784,114.00532l-30.13945,7.77236L278.68955,200.20385l-30.139,7.77223a34.30949,34.30949,0,0,0-24.6275,41.74308l110.341,427.87741a34.30946,34.30946,0,0,0,41.7431,24.62736l.06572-.01695,364.26536-93.93674.06619-.01707a34.30935,34.30935,0,0,0,24.627-41.7429l-110.341-427.87741A34.30938,34.30938,0,0,0,612.94784,114.00532Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M590.19,252.56327,405.917,300.08359a8.01411,8.01411,0,0,1-4.00241-15.52046l184.273-47.52033A8.01412,8.01412,0,0,1,590.19,252.56327Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M628.955,270.49906,412.671,326.27437a8.01411,8.01411,0,1,1-4.00241-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M620.45825,369.93676l-184.273,47.52032a8.01411,8.01411,0,1,1-4.00242-15.52046l184.273-47.52032a8.01411,8.01411,0,1,1,4.00241,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M659.22329,387.87255l-216.284,55.77531a8.01411,8.01411,0,1,1-4.00242-15.52046l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M650.72653,487.31025l-184.273,47.52033a8.01412,8.01412,0,0,1-4.00242-15.52047l184.273-47.52032a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M689.49156,505.246l-216.284,55.77532a8.01412,8.01412,0,1,1-4.00241-15.52047l216.284-55.77531a8.01411,8.01411,0,0,1,4.00242,15.52046Z",transform:"translate(-208.9778 -99.05999)",fill:"#f2f2f2"}),m.exports.createElement("path",{d:"M374.45884,348.80871l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76146L289.5963,304.81607a3.847,3.847,0,0,1,2.76145-4.68061l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76145l14.96947,58.04817A3.847,3.847,0,0,1,374.45884,348.80871Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M404.72712,466.1822l-65.21247,16.817a3.847,3.847,0,0,1-4.68062-2.76146l-14.96946-58.04816A3.847,3.847,0,0,1,322.626,417.509l65.21246-16.817a3.847,3.847,0,0,1,4.68062,2.76145l14.96946,58.04817A3.847,3.847,0,0,1,404.72712,466.1822Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M434.99539,583.55569l-65.21246,16.817a3.847,3.847,0,0,1-4.68062-2.76145l-14.96946-58.04817a3.847,3.847,0,0,1,2.76145-4.68062l65.21247-16.817a3.847,3.847,0,0,1,4.68061,2.76146l14.96947,58.04816A3.847,3.847,0,0,1,434.99539,583.55569Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.63647,209.0517H487.31811a48.17928,48.17928,0,0,0-48.125,48.12512V699.05261a48.17924,48.17924,0,0,0,48.125,48.12507H863.63647a48.17924,48.17924,0,0,0,48.125-48.12507V257.17682A48.17928,48.17928,0,0,0,863.63647,209.0517Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M863.637,222.90589H487.31811a34.30948,34.30948,0,0,0-34.271,34.27093V699.05261a34.30947,34.30947,0,0,0,34.271,34.27088H863.637a34.30936,34.30936,0,0,0,34.27051-34.27088V257.17682A34.30937,34.30937,0,0,0,863.637,222.90589Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("circle",{cx:694.19401,cy:614.02963,r:87.85039,fill:"#3182CE"}),m.exports.createElement("path",{d:"M945.18722,701.63087H914.63056V671.07421a11.45875,11.45875,0,0,0-22.9175,0v30.55666H861.1564a11.45875,11.45875,0,0,0,0,22.9175h30.55666V755.105a11.45875,11.45875,0,1,0,22.9175,0V724.54837h30.55666a11.45875,11.45875,0,0,0,0-22.9175Z",transform:"translate(-208.9778 -99.05999)",fill:"#fff"}),m.exports.createElement("path",{d:"M807.00068,465.71551H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01412,8.01412,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,492.76314H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01411,8.01411,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.00068,586.929H616.699a8.01412,8.01412,0,1,1,0-16.02823H807.00068a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M840.05889,613.97661H616.699a8.01412,8.01412,0,1,1,0-16.02823H840.05889a8.01412,8.01412,0,1,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,505.04162H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V441.25158a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,505.04162Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M574.07028,626.25509H506.72434a3.847,3.847,0,0,1-3.84278-3.84278V562.46505a3.847,3.847,0,0,1,3.84278-3.84278h67.34594a3.847,3.847,0,0,1,3.84278,3.84278v59.94726A3.847,3.847,0,0,1,574.07028,626.25509Z",transform:"translate(-208.9778 -99.05999)",fill:"#e6e6e6"}),m.exports.createElement("path",{d:"M807.21185,330.781H666.91017a8.01411,8.01411,0,0,1,0-16.02823H807.21185a8.01411,8.01411,0,0,1,0,16.02823Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M840.27007,357.82862H666.91017a8.01411,8.01411,0,1,1,0-16.02822h173.3599a8.01411,8.01411,0,0,1,0,16.02822Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"}),m.exports.createElement("path",{d:"M635.85911,390.6071H506.51316a3.847,3.847,0,0,1-3.84277-3.84277V285.81706a3.847,3.847,0,0,1,3.84277-3.84277H635.85911a3.847,3.847,0,0,1,3.84277,3.84277V386.76433A3.847,3.847,0,0,1,635.85911,390.6071Z",transform:"translate(-208.9778 -99.05999)",fill:"#ccc"})),ba=t=>{if(!t)return null;const o=new Date(t+"Z");return Math.floor(o.getTime()/1e3)},Sr=({lastOnline:t})=>{const o=Math.floor(Date.now()/1e3),n=ba(t);if(typeof t>"u"||t===null)return e("div",{className:"circle pulse orange"});const s=n?o-n:1/0;return s>0&&s<=60?e("div",{className:"circle pulse green"}):e("div",{className:"circle pulse red"})},xa=t=>{if(!t)return null;const o=new Date(t+"Z");return Math.floor(o.getTime()/1e3)},Cr=({lastOnline:t})=>{const o=Math.floor(Date.now()/1e3),n=xa(t),s=n?o-n:null,a=n?Xt(n):{status:"",time:"Not Connected Yet"};return e(u,{display:"inline-block",fontSize:"xs",fontWeight:"medium",ml:"2",color:"gray.600",_dark:{color:"gray.400"},children:s&&s<=60?"Online":s?`${a.time} ago`:a.time})},ya=y(mo,{baseStyle:{w:4,h:4}}),Sa=y(go,{baseStyle:{w:4,h:4}}),wr=5;function Ca(t,o,n){if(n0&&(a[0]=0,a[1]="prev-more"),a[a.length-1]{const{filters:t,onFilterChange:o,users:{total:n}}=E(),{limit:s,offset:a}=t,i=(a||0)/(s||1),l=Math.ceil(n/(s||1)),h=Ca(l,i,7),p=c=>{o({...t,offset:c*s})},C=c=>{o({...t,limit:parseInt(c.target.value)}),Yo(c.target.value)},{t:d}=W();return r(v,{justifyContent:"space-between",mt:4,w:"full",display:"flex",columnGap:{lg:4,md:0},rowGap:{md:0,base:4},flexDirection:{md:"row",base:"column"},children:[e(D,{order:{base:2,md:1},children:r(v,{children:[r(Ne,{minW:"60px",value:s,onChange:C,size:"sm",rounded:"md",children:[e("option",{children:"10"}),e("option",{children:"20"}),e("option",{children:"30"})]}),e(u,{whiteSpace:"nowrap",fontSize:"sm",children:d("itemsPerPage")})]})}),r(fo,{size:"sm",isAttached:!0,variant:"outline",order:{base:1,md:2},children:[e(N,{leftIcon:e(ya,{}),onClick:p.bind(null,i-1),isDisabled:i===0||l===0,children:d("previous")}),h.map(c=>typeof c=="string"?e(N,{children:"..."},c):e(N,{variant:c===i?"solid":"outline",onClick:p.bind(null,c),children:c+1},c)),e(N,{rightIcon:e(Sa,{}),onClick:p.bind(null,i+1),isDisabled:i+1===l||l===0,children:d("next")})]})]})},_a=y(fa),Ge={baseStyle:{w:{base:4,md:5},h:{base:4,md:5}}},ka=y(bo,Ge),va=y(qr,Ge),_r=y(xo,Ge),Ia=y($t,Ge),za=y(Vr,Ge),Da=y(Qr,Ge),Ea=y(qr,{baseStyle:{width:"15px",height:"15px"}}),Ua=t=>{for(var o=0;o{const{used:o,total:n,dataLimitResetStrategy:s,totalUsedTraffic:a}=t,i=n===0||n===null;return e(v,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:r(u,{children:[re(o)," /"," ",i?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):re(n)]})})},kr=t=>{const{used:o,total:n,dataLimitResetStrategy:s,totalUsedTraffic:a,...i}=t,l=n===0||n===null,h=!l&&o/n*100>=100;return r(fe,{children:[e(yo,{orientation:"horizontal",value:l?100:Math.min(o/n*100,100),colorScheme:h?"red":"primary",...i,children:e(So,{h:"6px",borderRadius:"full",children:e(Co,{borderRadius:"full"})})}),r(v,{justifyContent:"space-between",fontSize:"xs",fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:[r(u,{children:[re(o)," /"," ",l?e(u,{as:"span",fontFamily:"system-ui",children:"\u221E"}):re(n)+(s&&s!=="no_reset"?" "+J("userDialog.resetStrategy"+Ua(s)):"")]}),r(u,{children:[J("usersTable.total"),": ",re(a)]})]})]})},xt=({sort:t,column:o})=>t.includes(o)?e(Ea,{transform:t.startsWith("-")?void 0:"rotate(180deg)"}):null,Ta=t=>{const{filters:o,users:{users:n},users:s,onEditingUser:a,onFilterChange:i}=E(),{t:l}=W(),[h,p]=m.exports.useState(void 0),C=Me({base:120,lg:72})||72,[d,c]=m.exports.useState(`${C}px`),k=Me({base:!1,md:!0});m.exports.useEffect(()=>{const f=()=>{const x=document.querySelectorAll("#filters")[0];c(`${x.offsetHeight}px`)};window.addEventListener("scroll",f)},[]);const I=n.length!==s.total,g=f=>{let x=o.sort;x.includes(f)?x.startsWith("-")?x="-created_at":x="-"+f:x=f,i({sort:x})},S=f=>{i({status:f.target.value.length>0?f.target.value:void 0})},A=f=>{p(f===h?void 0:f)};return r(D,{id:"users-table",overflowX:{base:"unset",md:"unset"},children:[e(ut,{allowMultiple:!0,display:{base:"block",md:"none"},index:h,children:r(ir,{orientation:"vertical",zIndex:"docked",...t,children:[e(lr,{zIndex:"docked",position:"relative",children:r(Oe,{children:[e(De,{position:"sticky",top:d,minW:"120px",pl:4,pr:4,cursor:"pointer",onClick:g.bind(null,"username"),children:r(v,{children:[e("span",{children:l("users")}),e(xt,{sort:o.sort,column:"username"})]})}),e(De,{position:"sticky",top:d,minW:"50px",pl:0,pr:0,w:"140px",cursor:"pointer",children:r(v,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),o.status?": "+o.status:""]}),r(Ne,{value:o.sort,fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(fe,{}),_focusVisible:{border:"0 !important"},onChange:S,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:d,minW:"100px",cursor:"pointer",pr:0,onClick:g.bind(null,"used_traffic"),children:r(v,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:o.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:d,minW:"32px",w:"32px",p:0,cursor:"pointer"})]})}),e(cr,{children:!k&&(n==null?void 0:n.map((f,x)=>r(m.exports.Fragment,{children:[r(Oe,{onClick:A.bind(null,x),cursor:"pointer",children:[e(pe,{borderBottom:0,minW:"100px",pl:4,pr:4,maxW:"calc(100vw - 50px - 32px - 100px - 48px)",children:r("div",{className:"flex-status",children:[e(Sr,{lastOnline:f.online_at}),e(u,{isTruncated:!0,children:f.username})]})}),e(pe,{borderBottom:0,minW:"50px",pl:0,pr:0,children:e(yt,{compact:!0,showDetail:!1,expiryDate:f.expire,status:f.status})}),e(pe,{borderBottom:0,minW:"100px",pr:0,children:e(Ra,{totalUsedTraffic:f.lifetime_used_traffic,dataLimitResetStrategy:f.data_limit_reset_strategy,used:f.used_traffic,total:f.data_limit,colorScheme:st[f.status].bandWidthColor})}),e(pe,{p:0,borderBottom:0,w:"32px",minW:"32px",children:e(va,{color:"gray.600",_dark:{color:"gray.400"},transition:"transform .2s ease-out",transform:h===x?"rotate(180deg)":"0deg"})})]}),e(Oe,{className:"collapsible",onClick:A.bind(null,x),children:e(pe,{p:0,colSpan:4,children:r(Be,{border:0,children:[e(He,{display:"none"}),e($e,{border:0,cursor:"pointer",px:6,py:3,children:r(M,{justifyContent:"space-between",spacing:"4",children:[r(M,{alignItems:"flex-start",w:"full",spacing:-1,children:[e(u,{textTransform:"capitalize",fontSize:"xs",fontWeight:"bold",color:"gray.600",_dark:{color:"gray.400"},children:l("usersTable.dataUsage")}),e(D,{width:"full",minW:"230px",children:e(kr,{totalUsedTraffic:f.lifetime_used_traffic,dataLimitResetStrategy:f.data_limit_reset_strategy,used:f.used_traffic,total:f.data_limit,colorScheme:st[f.status].bandWidthColor})})]}),r(v,{w:"full",justifyContent:"space-between",children:[r(D,{width:"full",children:[e(yt,{compact:!0,expiryDate:f.expire,status:f.status}),e(Cr,{lastOnline:f.online_at})]}),r(v,{children:[e(vr,{user:f}),e(ne,{label:l("userDialog.editUser"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"Edit user",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:O=>{O.stopPropagation(),a(f)},children:e(Da,{})})})]})]})]})})]})})})]},f.username)))})]})}),r(ir,{orientation:"vertical",display:{base:"none",md:"table"},...t,children:[e(lr,{zIndex:"docked",position:"relative",children:r(Oe,{children:[e(De,{position:"sticky",top:{base:"unset",md:d},minW:"140px",cursor:"pointer",onClick:g.bind(null,"username"),children:r(v,{children:[e("span",{children:l("username")}),e(xt,{sort:o.sort,column:"username"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"400px",minW:"150px",cursor:"pointer",children:r(v,{spacing:0,position:"relative",children:[r(u,{position:"absolute",_dark:{bg:"gray.750"},_light:{bg:"#F9FAFB"},userSelect:"none",pointerEvents:"none",zIndex:1,w:"100%",children:[l("usersTable.status"),o.status?": "+o.status:""]}),r(Ne,{fontSize:"xs",fontWeight:"extrabold",textTransform:"uppercase",cursor:"pointer",p:0,border:0,h:"auto",w:"auto",icon:e(fe,{}),_focusVisible:{border:"0 !important"},value:o.sort,onChange:S,children:[e("option",{}),e("option",{children:"active"}),e("option",{children:"on_hold"}),e("option",{children:"disabled"}),e("option",{children:"limited"}),e("option",{children:"expired"})]})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"350px",minW:"230px",cursor:"pointer",onClick:g.bind(null,"used_traffic"),children:r(v,{children:[e("span",{children:l("usersTable.dataUsage")}),e(xt,{sort:o.sort,column:"used_traffic"})]})}),e(De,{position:"sticky",top:{base:"unset",md:d},width:"200px",minW:"180px"})]})}),r(cr,{children:[k&&(n==null?void 0:n.map((f,x)=>r(Oe,{className:Ut("interactive",{"last-row":x===n.length-1}),onClick:()=>a(f),children:[e(pe,{minW:"140px",children:r("div",{className:"flex-status",children:[e(Sr,{lastOnline:f.online_at}),f.username,e(Cr,{lastOnline:f.online_at})]})}),e(pe,{width:"400px",minW:"150px",children:e(yt,{expiryDate:f.expire,status:f.status})}),e(pe,{width:"350px",minW:"230px",children:e(kr,{totalUsedTraffic:f.lifetime_used_traffic,dataLimitResetStrategy:f.data_limit_reset_strategy,used:f.used_traffic,total:f.data_limit,colorScheme:st[f.status].bandWidthColor})}),e(pe,{width:"200px",minW:"180px",children:e(vr,{user:f})})]},f.username))),n.length==0&&e(Oe,{children:e(pe,{colSpan:4,children:e(La,{isFiltered:I})})})]})]}),e(wa,{})]})},vr=({user:t})=>{const{setQRCode:o,setSubLink:n}=E(),s=t.links.join(`\r +`),[a,i]=m.exports.useState([-1,!1]);return m.exports.useEffect(()=>{a[1]&&setTimeout(()=>{i([-1,!1])},1e3)},[a]),r(v,{justifyContent:"flex-end",onClick:l=>{l.preventDefault(),l.stopPropagation()},children:[e(dr,{text:t.subscription_url.startsWith("/")?window.location.origin+t.subscription_url:t.subscription_url,onCopy:()=>{i([0,!0])},children:e("div",{children:e(ne,{label:a[0]==0&&a[1]?J("usersTable.copied"):J("usersTable.copyLink"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy subscription link",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==0&&a[1]?e(_r,{}):e(Ia,{})})})})}),e(dr,{text:s,onCopy:()=>{i([1,!0])},children:e("div",{children:e(ne,{label:a[0]==1&&a[1]?J("usersTable.copied"):J("usersTable.copyConfigs"),placement:"top",children:e(Z,{p:"0 !important","aria-label":"copy configs",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},children:a[0]==1&&a[1]?e(_r,{}):e(ka,{})})})})}),e(ne,{label:"QR Code",placement:"top",children:e(Z,{p:"0 !important","aria-label":"qr code",bg:"transparent",_dark:{_hover:{bg:"gray.700"}},size:{base:"sm",md:"md"},onClick:()=>{o(t.links),n(t.subscription_url)},children:e(za,{})})})]})},La=({isFiltered:t})=>{const{onCreateUser:o}=E();return r(D,{padding:"5",py:"8",display:"flex",alignItems:"center",flexDirection:"column",gap:4,w:"full",children:[e(_a,{maxHeight:"200px",maxWidth:"200px",_dark:{'path[fill="#fff"]':{fill:"gray.800"},'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.700"},'circle[fill="#3182CE"]':{fill:"primary.300"}},_light:{'path[fill="#f2f2f2"], path[fill="#e6e6e6"], path[fill="#ccc"]':{fill:"gray.300"},'circle[fill="#3182CE"]':{fill:"primary.500"}}}),e(u,{fontWeight:"medium",color:"gray.600",_dark:{color:"gray.400"},children:t?J("usersTable.noUserMatched"):J("usersTable.noUser")}),!t&&e(N,{size:"sm",colorScheme:"primary",onClick:()=>o(!0),children:J("createUser")})]})},Aa=()=>(m.exports.useEffect(()=>{E.getState().refetchUsers(),Qo()},[]),r(M,{justifyContent:"space-between",minH:"100vh",p:"6",rowGap:4,children:[r(D,{w:"full",children:[e(ks,{}),e(Vo,{mt:"4"}),e(cs,{}),e(Ta,{}),e(ga,{}),e(ss,{}),e(Ks,{}),e(Ms,{}),e(na,{}),e(sa,{}),e(Vs,{}),e(Qs,{}),e(ta,{}),e(os,{})]}),e(tn,{})]})),Ma=t=>m.exports.createElement("svg",{viewBox:"0 0 747 747",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},m.exports.createElement("path",{d:"M746.671 209.652V77.6572C746.671 72.9384 743.827 68.6832 739.468 66.8811C735.108 65.0738 730.093 66.0739 726.754 69.4072L579.354 216.807C577.453 202.386 570.203 189.203 559.037 179.87C547.875 170.542 533.615 165.744 519.083 166.432C504.551 167.12 490.807 173.24 480.573 183.583L414.375 249.776C412.417 235.391 405.141 222.25 393.985 212.959C382.823 203.662 368.594 198.88 354.083 199.552C339.578 200.224 325.849 206.302 315.594 216.588L274.343 257.828L19.9167 3.41515C16.5781 0.0818157 11.5625 -0.918184 7.20306 0.889149C2.84373 2.69648 0 6.94648 0 11.6651V143.649C0 146.743 1.22917 149.712 3.41667 151.899L191.843 340.339L3.41667 528.753C1.2292 530.94 0 533.909 0 537.003V668.997C0 673.716 2.84373 677.971 7.20306 679.773C11.5624 681.581 16.578 680.58 19.9167 677.247L167.317 529.847C169.285 544.233 176.561 557.358 187.718 566.65C198.869 575.947 213.098 580.728 227.603 580.066C242.103 579.404 255.838 573.342 266.098 563.071L332.295 496.874V496.879C334.259 511.264 341.535 524.395 352.691 533.686C363.853 542.977 378.082 547.759 392.587 547.092C407.093 546.421 420.822 540.348 431.077 530.066L472.327 488.826L726.754 743.239C728.941 745.427 731.91 746.656 735.004 746.656C736.535 746.661 738.056 746.359 739.473 745.77C743.832 743.963 746.671 739.708 746.671 734.989V602.994C746.671 599.901 745.442 596.932 743.254 594.744L554.827 406.318L743.254 217.904H743.259C745.447 215.717 746.676 212.748 746.676 209.654L746.671 209.652ZM23.3373 39.8118L257.844 274.318L208.328 323.818L23.3413 138.818L23.3373 39.8118ZM723.337 706.825L488.831 472.318L538.347 422.818L723.333 607.818L723.337 706.825ZM23.3373 541.825L332.097 233.078C338.764 226.719 347.624 223.172 356.843 223.172C366.056 223.172 374.916 226.719 381.588 233.078C388.151 239.641 391.838 248.548 391.838 257.828C391.838 267.114 388.151 276.016 381.588 282.577L23.3347 640.831L23.3373 541.825ZM249.604 546.575C240.755 555.419 227.864 558.872 215.781 555.638C203.703 552.398 194.265 542.961 191.027 530.883C187.792 518.8 191.245 505.91 200.089 497.06L497.076 200.074C505.92 191.23 518.811 187.772 530.893 191.011C542.971 194.246 552.409 203.678 555.648 215.76C558.888 227.839 555.434 240.73 546.591 249.572L249.604 546.575ZM723.337 204.815L414.577 513.562C407.911 519.926 399.051 523.473 389.832 523.473C380.618 523.473 371.753 519.926 365.087 513.562C358.529 506.999 354.842 498.098 354.842 488.816C354.842 479.535 358.529 470.634 365.087 464.071L723.34 105.818L723.337 204.815Z",fill:"currentColor"})),Na=_.object({username:_.string().min(1,"login.fieldRequired"),password:_.string().min(1,"login.fieldRequired")}),Pa=y(Ma,{baseStyle:{strokeWidth:"10px",w:12,h:12}}),Fa=y(wo,{baseStyle:{w:5,h:5,strokeWidth:"2px"}}),Ir=()=>{var c,k;const[t,o]=m.exports.useState(""),[n,s]=m.exports.useState(!1),a=_o(),{t:i}=W();let l=ko();const{register:h,formState:{errors:p},handleSubmit:C}=Ve({resolver:dt(Na)});m.exports.useEffect(()=>{Fo(),l.pathname!=="/login"&&a("/login",{replace:!0})},[]);const d=I=>{o("");const g=new FormData;g.append("username",I.username),g.append("password",I.password),g.append("grant_type","password"),s(!0),F("/admin/token",{method:"post",body:g}).then(({access_token:S})=>{Po(S),a("/")}).catch(S=>{o(S.response._data.detail)}).finally(s.bind(null,!1))};return r(M,{justifyContent:"space-between",minH:"100vh",p:"6",w:"full",children:[r(D,{w:"full",children:[e(v,{justifyContent:"end",w:"full",children:e(rn,{})}),e(v,{w:"full",justifyContent:"center",alignItems:"center",children:r(D,{w:"full",maxW:"340px",mt:"6",children:[r(M,{alignItems:"center",w:"full",children:[e(Pa,{}),e(u,{fontSize:"2xl",fontWeight:"semibold",children:i("login.loginYourAccount")}),e(u,{color:"gray.600",_dark:{color:"gray.400"},children:i("login.welcomeBack")})]}),e(D,{w:"full",maxW:"300px",m:"auto",pt:"4",children:e("form",{onSubmit:C(d),children:r(M,{mt:4,rowGap:2,children:[e(T,{children:e(Re,{w:"full",placeholder:i("username"),...h("username"),error:i((c=p==null?void 0:p.username)==null?void 0:c.message)})}),e(T,{children:e(Re,{w:"full",type:"password",placeholder:i("password"),...h("password"),error:i((k=p==null?void 0:p.password)==null?void 0:k.message)})}),t&&r(it,{status:"error",rounded:"md",children:[e(kt,{}),e(Or,{children:t})]}),r(N,{isLoading:n,type:"submit",w:"full",colorScheme:"primary",children:[e(Fa,{marginRight:1}),i("login")]})]})})})]})})]}),e(tn,{})]})},Wa=()=>F("/admin",{headers:{Authorization:`Bearer ${vt()}`}}),Oa=vo([{path:"/",element:e(Aa,{}),errorElement:e(Ir,{}),loader:Wa},{path:"/login/",element:e(Ir,{})}],{basename:"/"});function ja(){return e("main",{className:"p-8",children:e(Io,{router:Oa})})}H.extend(zo);H.extend(Do);H.extend(Eo);H.extend(Uo);H.extend(Ro);Xr(To.get()||"light");Lo.createRoot(document.getElementById("root")).render(e(Pt.StrictMode,{children:e(Ao,{theme:No,children:e(Mo,{client:Wt,children:e(ja,{})})})})); diff --git a/app/dashboard/build/assets/vendor.7a7a2a97.js b/app/dashboard/build/assets/vendor.667f5e84.js similarity index 100% rename from app/dashboard/build/assets/vendor.7a7a2a97.js rename to app/dashboard/build/assets/vendor.667f5e84.js diff --git a/app/dashboard/build/index.html b/app/dashboard/build/index.html index 7fb06110..35a0da7f 100644 --- a/app/dashboard/build/index.html +++ b/app/dashboard/build/index.html @@ -33,8 +33,8 @@ - - + + diff --git a/app/dashboard/src/components/UserDialog.tsx b/app/dashboard/src/components/UserDialog.tsx index 86aa660a..83c74c3c 100644 --- a/app/dashboard/src/components/UserDialog.tsx +++ b/app/dashboard/src/components/UserDialog.tsx @@ -81,57 +81,6 @@ const UserUsageIcon = chakra(ChartPieIcon, { }, }); -const schema = z.object({ - username: z.string().min(1, { message: "Required" }), - selected_proxies: z.array(z.string()).refine((value) => value.length > 0, { - message: "userDialog.selectOneProtocol", - }), - note: z.string().nullable(), - proxies: z - .record(z.string(), z.record(z.string(), z.any())) - .transform((ins) => { - const deleteIfEmpty = (obj: any, key: string) => { - if (obj && obj[key] === "") { - delete obj[key]; - } - }; - deleteIfEmpty(ins.vmess, "id"); - deleteIfEmpty(ins.vless, "id"); - deleteIfEmpty(ins.trojan, "password"); - deleteIfEmpty(ins.shadowsocks, "password"); - deleteIfEmpty(ins.shadowsocks, "method"); - return ins; - }), - data_limit: z - .string() - .min(0, "The minimum number is 0") - .or(z.number()) - .nullable() - .transform((str) => { - if (str) return Number((parseFloat(String(str)) * 1073741824).toFixed(5)); - return 0; - }), - expire: z.number().nullable(), - on_hold_expire_duration: z - .string() - .min(0.1, "The minimum number is 0.1") - .or(z.number()) - .nullable() - .transform((str) => { - if (str) return Number(parseFloat(String(str)) * (24 * 60 * 60)); - return 0; - }), - data_limit_reset_strategy: z.string(), - status: z.string(), - inbounds: z.record(z.string(), z.array(z.string())).transform((ins) => { - Object.keys(ins).forEach((protocol) => { - if (Array.isArray(ins[protocol]) && !ins[protocol]?.length) - delete ins[protocol]; - }); - return ins; - }), -}); - export type UserDialogProps = {}; export type FormType = Pick & { @@ -208,6 +157,60 @@ export const UserDialog: FC = () => { const [error, setError] = useState(""); const toast = useToast(); const { t, i18n } = useTranslation(); + const schema = z.object({ + username: z.string().min(1, { message: "Required" }), + selected_proxies: z.array(z.string()).refine((value) => value.length > 0, { + message: "userDialog.selectOneProtocol", + }), + note: z.string().nullable(), + proxies: z + .record(z.string(), z.record(z.string(), z.any())) + .transform((ins) => { + const deleteIfEmpty = (obj: any, key: string) => { + if (obj && obj[key] === "") { + delete obj[key]; + } + }; + deleteIfEmpty(ins.vmess, "id"); + deleteIfEmpty(ins.vless, "id"); + deleteIfEmpty(ins.trojan, "password"); + deleteIfEmpty(ins.shadowsocks, "password"); + deleteIfEmpty(ins.shadowsocks, "method"); + return ins; + }), + data_limit: z + .string() + .min(0, "The minimum number is 0") + .or(z.number()) + .nullable() + .transform((str) => { + if (str) + return Number((parseFloat(String(str)) * 1073741824).toFixed(5)); + return 0; + }), + expire: z.number().nullable(), + on_hold_expire_duration: z + .string() + .min(0.1, "The minimum number is 0.1") + .or(z.number()) + .nullable() + .refine((value) => userStatus !== "on_hold", { + message: "Required", + }) + .transform((str) => { + if (str) return Number(parseFloat(String(str)) * (24 * 60 * 60)); + return 0; + }), + data_limit_reset_strategy: z.string(), + status: z.string(), + inbounds: z.record(z.string(), z.array(z.string())).transform((ins) => { + Object.keys(ins).forEach((protocol) => { + if (Array.isArray(ins[protocol]) && !ins[protocol]?.length) + delete ins[protocol]; + }); + return ins; + }), + }); const { colorMode } = useColorMode(); From 0c8521f8abe6d86ca005b4f98a90a95833915d7f Mon Sep 17 00:00:00 2001 From: Gozarman <120019621+gozarman@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:29:28 +0000 Subject: [PATCH 5/7] feat: `on_hold` toggle moved to the top of the form + some code refactor and optimizations --- app/dashboard/src/components/Input.tsx | 30 +- app/dashboard/src/components/UserDialog.tsx | 405 +++++++++----------- 2 files changed, 204 insertions(+), 231 deletions(-) diff --git a/app/dashboard/src/components/Input.tsx b/app/dashboard/src/components/Input.tsx index 09c59766..09e82f76 100644 --- a/app/dashboard/src/components/Input.tsx +++ b/app/dashboard/src/components/Input.tsx @@ -1,19 +1,19 @@ import { - chakra, - FormControl, - FormErrorMessage, - FormLabel, - Input as ChakraInput, - InputGroup, - InputLeftAddon, - InputProps as ChakraInputProps, - InputRightAddon, - InputRightElement, - NumberDecrementStepper, - NumberIncrementStepper, - NumberInput, - NumberInputField, - NumberInputStepper + chakra, + Input as ChakraInput, + InputProps as ChakraInputProps, + FormControl, + FormErrorMessage, + FormLabel, + InputGroup, + InputLeftAddon, + InputRightAddon, + InputRightElement, + NumberDecrementStepper, + NumberIncrementStepper, + NumberInput, + NumberInputField, + NumberInputStepper, } from "@chakra-ui/react"; import { XMarkIcon } from "@heroicons/react/24/outline"; import classNames from "classnames"; diff --git a/app/dashboard/src/components/UserDialog.tsx b/app/dashboard/src/components/UserDialog.tsx index 83c74c3c..6c27b9f5 100644 --- a/app/dashboard/src/components/UserDialog.tsx +++ b/app/dashboard/src/components/UserDialog.tsx @@ -140,6 +140,65 @@ const mergeProxies = ( }); return proxies; }; + +const baseSchema = { + username: z.string().min(1, { message: "Required" }), + selected_proxies: z.array(z.string()).refine((value) => value.length > 0, { + message: "userDialog.selectOneProtocol", + }), + note: z.string().nullable(), + proxies: z + .record(z.string(), z.record(z.string(), z.any())) + .transform((ins) => { + const deleteIfEmpty = (obj: any, key: string) => { + if (obj && obj[key] === "") { + delete obj[key]; + } + }; + deleteIfEmpty(ins.vmess, "id"); + deleteIfEmpty(ins.vless, "id"); + deleteIfEmpty(ins.trojan, "password"); + deleteIfEmpty(ins.shadowsocks, "password"); + deleteIfEmpty(ins.shadowsocks, "method"); + return ins; + }), + data_limit: z + .string() + .min(0) + .or(z.number()) + .nullable() + .transform((str) => { + if (str) return Number((parseFloat(String(str)) * 1073741824).toFixed(5)); + return 0; + }), + expire: z.number().nullable(), + data_limit_reset_strategy: z.string(), + inbounds: z.record(z.string(), z.array(z.string())).transform((ins) => { + Object.keys(ins).forEach((protocol) => { + if (Array.isArray(ins[protocol]) && !ins[protocol]?.length) + delete ins[protocol]; + }); + return ins; + }), +}; + +const schema = z.discriminatedUnion("status", [ + z.object({ + status: z.literal("active"), + ...baseSchema, + }), + z.object({ + status: z.literal("on_hold"), + on_hold_expire_duration: z.coerce + .number() + .min(0.1, "Required") + .transform((d) => { + return d * (24 * 60 * 60); + }), + ...baseSchema, + }), +]); + export const UserDialog: FC = () => { const { editingUser, @@ -157,60 +216,6 @@ export const UserDialog: FC = () => { const [error, setError] = useState(""); const toast = useToast(); const { t, i18n } = useTranslation(); - const schema = z.object({ - username: z.string().min(1, { message: "Required" }), - selected_proxies: z.array(z.string()).refine((value) => value.length > 0, { - message: "userDialog.selectOneProtocol", - }), - note: z.string().nullable(), - proxies: z - .record(z.string(), z.record(z.string(), z.any())) - .transform((ins) => { - const deleteIfEmpty = (obj: any, key: string) => { - if (obj && obj[key] === "") { - delete obj[key]; - } - }; - deleteIfEmpty(ins.vmess, "id"); - deleteIfEmpty(ins.vless, "id"); - deleteIfEmpty(ins.trojan, "password"); - deleteIfEmpty(ins.shadowsocks, "password"); - deleteIfEmpty(ins.shadowsocks, "method"); - return ins; - }), - data_limit: z - .string() - .min(0, "The minimum number is 0") - .or(z.number()) - .nullable() - .transform((str) => { - if (str) - return Number((parseFloat(String(str)) * 1073741824).toFixed(5)); - return 0; - }), - expire: z.number().nullable(), - on_hold_expire_duration: z - .string() - .min(0.1, "The minimum number is 0.1") - .or(z.number()) - .nullable() - .refine((value) => userStatus !== "on_hold", { - message: "Required", - }) - .transform((str) => { - if (str) return Number(parseFloat(String(str)) * (24 * 60 * 60)); - return 0; - }), - data_limit_reset_strategy: z.string(), - status: z.string(), - inbounds: z.record(z.string(), z.array(z.string())).transform((ins) => { - Object.keys(ins).forEach((protocol) => { - if (Array.isArray(ins[protocol]) && !ins[protocol]?.length) - delete ins[protocol]; - }); - return ins; - }), - }); const { colorMode } = useColorMode(); @@ -235,9 +240,9 @@ export const UserDialog: FC = () => { [] ); - const [dataLimit] = useWatch({ + const [dataLimit, userStatus] = useWatch({ control: form.control, - name: ["data_limit"], + name: ["data_limit", "status"], }); const usageTitle = t("userDialog.total"); @@ -258,7 +263,6 @@ export const UserDialog: FC = () => { useEffect(() => { if (editingUser) { form.reset(formatUser(editingUser)); - setUserStatus(form.getValues().status); fetchUsageWithFilter({ start: dayjs().utc().subtract(30, "day").format("YYYY-MM-DDTHH:00:00"), @@ -332,7 +336,6 @@ export const UserDialog: FC = () => { setError(null); setUsageVisible(false); setUsageFilter("1m"); - setUserStatus(null); }; const handleResetUsage = () => { @@ -344,18 +347,7 @@ export const UserDialog: FC = () => { }; const disabled = loading; - - const [userStatus, setUserStatus] = useState(); - const [statusOnEditing, setStatusOnEditing] = useState< - User["status"] | null - >(); - - useEffect(() => { - setUserStatus(form.getValues().status); - }, [form]); - useEffect(() => { - setStatusOnEditing(form.getValues().status); - }, []); + const isOnHold = userStatus === "on_hold"; return ( @@ -395,54 +387,85 @@ export const UserDialog: FC = () => { gridAutoRows="min-content" w="full" > - - {t("username")} - - - {isEditing && ( - - { - return ( - - - + + {t("username")} + + + {isEditing && ( + + { + return ( + + + { + if (e.target.checked) { + field.onChange("active"); + } else { + field.onChange("disabled"); + } + }} + /> + + + ); + }} + /> + + )} + + + {!isEditing && ( + + + {t("userDialog.onHold")} + + { + const status = field.value; + return ( + <> + {status ? ( + { + if (e.target.checked) { + field.onChange("on_hold"); + } else { + field.onChange("active"); } - isChecked={field.value === "active"} - onChange={(e) => { - if (e.target.checked) { - field.onChange("active"); - } else { - field.onChange("disabled"); - } - }} - /> - - - ); - }} - /> - - )} - - + }} + /> + ) : ( + "" + )} + + ); + }} + /> +
+ )} + {t("userDialog.dataLimit")} = () => { name="data_limit_reset_strategy" render={({ field }) => { return ( - {resetStrategy.map((s) => { return ( - - - {t("userDialog.expiryDate")} + + + {isOnHold + ? t("userDialog.onHoldExpireDuration") + : t("userDialog.expiryDate")} + + + {isOnHold && ( + { + return ( + { + form.setValue("expire", null); + field.onChange({ + target: { + value: on_hold, + }, + }); + }} + disabled={disabled} + error={ + form.formState.errors + .on_hold_expire_duration?.message + } + value={field.value ? String(field.value) : ""} + /> + ); + }} + /> + )} + {!isOnHold && ( = () => { ); }} /> - - - - - {t("userDialog.onHoldExpireDuration")} - - { - return ( - { - form.setValue("expire", null); - field.onChange({ - target: { - value: on_hold, - }, - }); - }} - disabled={disabled} - error={ - form.formState.errors - .on_hold_expire_duration?.message - } - value={field.value ? String(field.value) : ""} - /> - ); - }} - /> - - - - - {t("userDialog.onHold")} - - { - function createDateAsUTC(num: number) { - return dayjs( - dayjs(num * 1000).utc() - // .format("MMMM D, YYYY") // exception with: dayjs.locale(lng); - ).toDate(); - } - const status = field.value; - return ( - <> - {status ? ( - { - if (e.target.checked) { - field.onChange("on_hold"); - setUserStatus("on_hold"); - } else { - field.onChange(statusOnEditing); - setUserStatus(statusOnEditing); - } - }} - /> - ) : ( - "" - )} - - ); - }} - /> - - + )} + Date: Sat, 20 Jul 2024 17:29:43 +0000 Subject: [PATCH 6/7] feat: on_hold transaltion --- app/dashboard/public/locales/en.json | 3 ++- app/dashboard/public/locales/fa.json | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/dashboard/public/locales/en.json b/app/dashboard/public/locales/en.json index 62442243..72a02412 100644 --- a/app/dashboard/public/locales/en.json +++ b/app/dashboard/public/locales/en.json @@ -173,5 +173,6 @@ "core.logs": "Logs", "core.configuration": "Configuration", "core.generalErrorMessage": "Something went wrong, please check the configuration", - "core.successMessage": "Core settings updated successfully" + "core.successMessage": "Core settings updated successfully", + "on_hold": "On Hold" } diff --git a/app/dashboard/public/locales/fa.json b/app/dashboard/public/locales/fa.json index dce878a5..ae02d93e 100644 --- a/app/dashboard/public/locales/fa.json +++ b/app/dashboard/public/locales/fa.json @@ -71,8 +71,8 @@ "userDialog.startDate": "تاریخ شروع", "userDialog.endDate": "تاریخ پایان", "userDialog.total": "مجموع: ", - "userDialog.onHold" : "در انتظار", - "userDialog.onHoldExpireDuration":"مدت انقضا", + "userDialog.onHold": "در انتظار", + "userDialog.onHoldExpireDuration": "مدت انقضا", "hostsDialog.title": "با انتخاب این تنظیمات، می‌توانید برای هر ورودی یک آدرس منحصر به فرد انتخاب کنید.", "hostsDialog.desc": "برای ساخت نوشته پویا، از این متغیرها استفاده کنید", "hostsDialog.username": "نام کاربری کاربر", @@ -108,7 +108,7 @@ "hostsDialog.host.wildcard": "از * برای ساخت عبارت تصادفی استفاده کنید (برای نام‌های wildcard کار می‌کند)", "hostsDialog.sockopt": "Sockopt", "hostsDialog.muxEnable": "فعالسازی MUX", - "hostsDialog.randomUserAgent":"استفاده از User Agent تصادفی", + "hostsDialog.randomUserAgent": "استفاده از User Agent تصادفی", "hostsDialog.allowinsecure": "Allow Insecure", "hostsDialog.fragment": "الگو فرگمنت", "hostsDialog.fragment.info": "length,interval,packet (e.g. 10-100,100-200,tlshello)", @@ -168,5 +168,6 @@ "core.logs": "گزارش", "core.configuration": "پیکربندی", "core.generalErrorMessage": "مشکلی پیش آمده، لطفا پیکربندی را بررسی کنید", - "core.successMessage": "تنظیمات هسته با موفقیت ثبت شد" + "core.successMessage": "تنظیمات هسته با موفقیت ثبت شد", + "on_hold": "در انتظار اتصال" } From 8bb2510db730ed09d4f277b0d8354b9ccc115628 Mon Sep 17 00:00:00 2001 From: Gozarman <120019621+gozarman@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:31:16 +0000 Subject: [PATCH 7/7] feat: translation on users table status badge --- app/dashboard/src/components/StatusBadge.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/dashboard/src/components/StatusBadge.tsx b/app/dashboard/src/components/StatusBadge.tsx index 87c4da3e..ebf39e26 100644 --- a/app/dashboard/src/components/StatusBadge.tsx +++ b/app/dashboard/src/components/StatusBadge.tsx @@ -43,7 +43,7 @@ export const StatusBadge: FC = ({ fontWeight="medium" letterSpacing="tighter" > - {userStatus} + {t(userStatus)} {extraText && `: ${extraText}`} )}