react-toolkits 2.26.0 → 2.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/chunk-P5T74EXP.js +2 -0
- package/lib/{chunk-IKGXKB6T.js.map → chunk-P5T74EXP.js.map} +1 -1
- package/lib/index.d.ts +7 -3
- package/lib/index.js +1 -1
- package/lib/{menuItemList-2QZXJVWZ.js → menuItemList-5QGQYB3N.js} +2 -2
- package/lib/{menuItemList-2QZXJVWZ.js.map → menuItemList-5QGQYB3N.js.map} +1 -1
- package/lib/{roleList-MQOFJ3LH.js → roleList-ATJYWJ6Q.js} +2 -2
- package/lib/{roleList-MQOFJ3LH.js.map → roleList-ATJYWJ6Q.js.map} +1 -1
- package/lib/{userList-QHQHRPSV.js → userList-7CQLR3HK.js} +2 -2
- package/lib/{userList-QHQHRPSV.js.map → userList-7CQLR3HK.js.map} +1 -1
- package/package.json +2 -2
- package/lib/chunk-IKGXKB6T.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-D5YXBSTI.js';import {a as a$1}from'./chunk-JDCSIJL7.js';import {k}from'./chunk-F2GDEOP4.js';import {Form,Spin,Table,Result,theme,Space,Button}from'antd';import {forwardRef,useMemo,useRef,useState,useEffect,useCallback,cloneElement,useImperativeHandle,Fragment}from'react';import {jsx,jsxs,Fragment as Fragment$1}from'react/jsx-runtime';import {flushSync}from'react-dom';import {createRoot}from'react-dom/client';import {isEqual}from'lodash-es';import {create}from'zustand';import {devtools,subscribeWithSelector}from'zustand/middleware';import {useQuery}from'@tanstack/react-query';var Oe=d=>{let{extras:i,isConfirming:e,onConfirm:o,onReset:t,children:a$1,buttonsAlign:r="left",showReset:l}=d,{t:u}=a(),{token:{colorFillAlter:L,lineWidth:R,lineType:y,colorBorder:T,borderRadiusLG:V}}=theme.useToken();return jsx("div",{className:"max-w-none p-6 mb-6 border",style:{background:L,borderWidth:R,borderStyle:y,borderColor:T,borderRadius:V},children:jsxs("div",{className:`flex ${r==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${r==="left"?"grow-0":"flex-1"}`,children:a$1}),jsx("div",{className:`${r==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",disabled:e,onClick:o,children:u("FilterFormWrapper.confirmText")}),i?.map(A=>jsx(Fragment,{children:A.children},A.key)),l&&jsx(Button,{onClick:t,children:u("FilterFormWrapper.resetText")})]})})]})})},N=Oe;var qe=d=>{let i=/(<[^>]*>)/;return d.split(i).filter(e=>e!=="")};function Me(d){let i=document.createElement("div"),e=createRoot(i);return new Promise(o=>{setTimeout(()=>{flushSync(()=>{e.render(d);}),o(i.innerHTML);});})}var We=d=>{let{texts:i,children:e}=d,[o,t]=useState("");return useEffect(()=>{Me(e).then(a=>{let r=qe(a);for(let l of i)for(let u=0;u<r.length;u++)r[u]=r[u].replace(String(l),`<span style='color: #DC143C;'>${l}</span>`);t(r.join(""));});},[e,i]),jsx("div",{dangerouslySetInnerHTML:{__html:o}})},je=We;var ue=Object.freeze({page:1,size:10,filters:Object.freeze({})}),Ke=()=>create()(devtools(subscribeWithSelector((d,i)=>({instances:new Map,registerInstance(e,o,t,a){d(r=>{let l=r.instances.get(e);if(l){if(l.refetch!==a){let R={...l,refetch:a},y=new Map(r.instances);return y.set(e,R),{instances:y}}return r}let u={id:e,url:o,queryKey:t,payload:ue,refetch:a},L=new Map(r.instances);return L.set(e,u),{instances:L}});},unregisterInstance(e){d(o=>{let t=new Map(o.instances);return t.delete(e)?{instances:t}:o});},updatePayload(e,o){d(t=>{let a=t.instances.get(e);if(!a)return t;let r={...a.payload,...o};if(!isEqual(a.payload,r)){let l={...a,payload:r},u=new Map(t.instances);return u.set(e,l),{instances:u}}return t});},getPayload(e){return i().instances.get(e)?.payload??ue},async refetch(e,o){let t=i().instances.get(e);if(!t){console.warn(`QueryList instance with id "${e}" not found`);return}let a=false;if(o){let r=t.payload,l={...r,...o};isEqual(r,l)||(i().updatePayload(e,o),a=true);}if(!a)try{await t.refetch();}catch(r){throw console.error(`Failed to refetch QueryList instance "${e}":`,r),r}},getInstance(e){return i().instances.get(e)},getAllInstances(){return Array.from(i().instances.values())}})),{name:"query-list-store"})),Ue=Ke(),m=Ue;var me=(t=>(t[t.Confirm=0]="Confirm",t[t.Reset=1]="Reset",t[t.Jump=2]="Jump",t[t.Init=3]="Init",t))(me||{}),rt=300*1e3,nt=30*1e3,pe=["GET","HEAD","OPTIONS"],st=["POST","PUT","PATCH","DELETE"],ot=0,at=()=>`queryList_${Date.now()}_${++ot}`,it=(d,i)=>{let{t:e}=a(),{form:o,identifier:t,code:a$2,onePage:r,buttonsAlign:l,showReset:u,defaultSize:L=10,refreshInterval:R=0,tableExtra:y,renderForm:T,afterSuccess:V,afterError:A,footer:K,pageSizeOptions:U,request:H,dataAdapter:B,...ye}=d,[s]=Form.useForm(o),f=useMemo(()=>t||at(),[t]),x=useRef(3),{data:E,isLoading:ge}=a$1(a$2),[he,I]=useState(false),q=useRef(false),M=useRef(false),be=m(n=>n.getPayload(f)),Le=k(),{page:Q,size:S=L,filters:h}=be,Ie=typeof H=="function"?H({page:Q,size:S,filters:h}):H,{url:v,method:$="GET",body:G,searchParams:W,headers:Pe,cacheTime:Fe=rt,staleTime:Re=nt}=Ie,D=$.toUpperCase();[...pe,...st].includes(D)||console.warn(`QueryList: \u4E0D\u652F\u6301\u7684 HTTP \u8BF7\u6C42\u65B9\u6CD5 "${$}"\uFF0C\u5C06\u4F7F\u7528 GET \u65B9\u6CD5`);let J=pe.includes(D),Y={...h,...!r&&{page:Q,size:S}},p,P;G!==void 0?(p=G,P=W):W!==void 0?(P=W,p=void 0):J?(P=Y,p=void 0):(p=Y,P=void 0);let X=Pe,Z=useRef(false),ee=["queryList",v,f,D,Q,S,h,p,P,X],{data:g,isLoading:te,refetch:j}=useQuery({queryKey:ee,queryFn:async()=>{try{let n={method:D,searchParams:P,headers:X};p&&!J&&(p instanceof FormData||typeof p=="string"?n.body=p:n.json=p);let c=await Le.request({url:v,...n});return Z.current=!0,V?.(x.current,s,c),c}catch(n){let c=n instanceof Error?n:new Error(String(n));throw A?.(c,x.current,s),c}},retry:(n,c)=>!(n>=3||c?.message?.includes("401")),retryDelay:n=>Math.min(1e3*2**n,3e4),refetchOnWindowFocus:false,refetchInterval:Z.current?R:0,gcTime:Fe,staleTime:Re,enabled:E&&he}),re=useMemo(()=>{let n=B,c={total:g?.total,items:g?.list};return typeof n=="function"?{...c,...n(g)}:{...c,...n}},[B,g]);useEffect(()=>(m.getState().registerInstance(f,v,ee,j),()=>{m.getState().unregisterInstance(f);}),[f,v]);let k$1=re.items,ne=re.total,xe=useMemo(()=>r?false:{pageSizeOptions:U,showSizeChanger:true,showQuickJumper:true,current:Q,pageSize:S,total:ne,onChange:async(n,c)=>{x.current=2,m.getState().refetch(f,{page:n,size:c});}},[r,U,Q,S,ne,f]),se=useCallback(async()=>{x.current=0;try{await s.validateFields(),I(!0),m.getState().refetch(f,{page:1,filters:s.getFieldsValue()});}catch{I(false);}},[s,f]),Qe=useCallback(async()=>{x.current=1,s.resetFields();try{await s.validateFields({validateOnly:!0}),I(!0),m.getState().refetch(f,{page:1,filters:s.getFieldsValue()});}catch{I(false);}},[s,f]),Se=typeof T=="function"?jsx(N,{showReset:u,buttonsAlign:l,isConfirming:te,onReset:Qe,onConfirm:se,children:cloneElement(T(s),{onKeyUp:n=>{n.key==="Enter"&&se();}})}):jsx(Form,{form:s}),Te=typeof y=="function"?y(s,g):y,Ae=K?()=>jsx(Fragment$1,{children:K(g)}):void 0;return useEffect(()=>{if(!q.current||M.current)return;let n=s.getFieldsValue();h&&!isEqual(n,h)&&(M.current=true,s.setFieldsValue(h),setTimeout(()=>{M.current=false;},0));},[h,s]),useEffect(()=>{if(!E||q.current)return;let n=async()=>{console.log("QueryList init starting");try{s.resetFields();let O=await s.validateFields({validateOnly:!0});console.log("QueryList init validation success:",O),m.getState().updatePayload(f,{page:1,filters:O}),I(!0),console.log("QueryList init completed, isValid set to true");}catch(O){console.log("QueryList init validation failed:",O),I(false);}finally{q.current=true;}},c=requestAnimationFrame(()=>{Promise.resolve().then(n);});return ()=>{c&&cancelAnimationFrame(c);}},[E,f,s]),useImperativeHandle(i,()=>({data:g,dataSource:k$1,form:s,refetch:j}),[g,k$1,s,j]),ge?jsx("div",{className:"flex justify-center items-center h-[300px]",children:jsx(Spin,{})}):E?jsxs("div",{children:[Se,Te,jsx(Table,{...ye,dataSource:k$1,loading:te,pagination:xe,footer:Ae})]}):jsx(Result,{status:403,subTitle:e("global.noEntitlement")})},ct=forwardRef(it),lt=ct;export{N as a,je as b,m as c,me as d,lt as e};//# sourceMappingURL=chunk-P5T74EXP.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-P5T74EXP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/filterFormWrapper/FilterFormWrapper.tsx","../src/components/highlight/Highlight.tsx","../src/components/queryList/stores.ts","../src/components/queryList/QueryList.tsx"],"names":["FilterFormWrapper","props","extras","isConfirming","onConfirm","onReset","children","buttonsAlign","showReset","t","useTranslation","colorFillAlter","lineWidth","lineType","colorBorder","borderRadiusLG","theme","jsx","jsxs","Space","Button","item","Fragment","FilterFormWrapper_default","splitByTags","str","regex","part","renderToString","node","container","root","createRoot","resolve","flushSync","Highlight","texts","htmlString","setHtmlString","useState","useEffect","result","text","index","Highlight_default","DEFAULT_PAYLOAD","createStore","create","devtools","subscribeWithSelector","set","get","id","url","queryKey","refetch","state","existingInstance","updatedInstance","newInstances","instance","payload","newPayload","isEqual","payloadChanged","currentPayload","error","store","useQueryListStore","QueryListAction","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","BODYLESS_METHODS","BODY_SUPPORTED_METHODS","identifierCounter","generateUniqueIdentifier","InternalQueryList","ref","form","identifier","code","onePage","defaultSize","refreshInterval","tableExtra","renderForm","afterSuccess","afterError","footer","pageSizeOptions","request","dataAdapter","tableProps","formInstance","Form","finalIdentifier","useMemo","action","useRef","accessible","isChecking","useAuth","isValid","setIsValid","isInitialized","isUpdatingFromPayload","subscribedPayload","s","ky","useKy","page","size","filters","resolvedRequest","method","body","searchParams","headers","cacheTime","staleTime","normalizedMethod","isBodylessMethod","defaultRequestData","requestBody","requestSearchParams","requestHeaders","shouldPoll","data","isLoading","useQuery","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","resolvedDataAdapter","adapter","defaultAdapter","dataSource","total","pagination","currentPage","currentSize","useCallback","formRenderer","cloneElement","e","tableExtraRenderer","renderFooter","currentFormValues","init","value","rafId","useImperativeHandle","Spin","Table","Result","QueryList","forwardRef","QueryList_default"],"mappings":"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","file":"chunk-IKGXKB6T.js","sourcesContent":["import { Button, Space, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Fragment } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface FilterFormWrapperProps extends PropsWithChildren {\n onConfirm?: () => void | Promise<void>\n onReset?: () => void\n extras?: { key: Key; children: ReactNode }[]\n isConfirming?: boolean\n buttonsAlign?: 'left' | 'right' | 'bottom'\n showReset?: boolean\n}\n\nconst FilterFormWrapper = (props: FilterFormWrapperProps) => {\n const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = 'left', showReset } = props\n const { t } = useTranslation()\n const {\n token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG },\n } = theme.useToken()\n\n return (\n <div\n className=\"max-w-none p-6 mb-6 border\"\n style={{\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n }}\n >\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'grow-0' : 'flex-1'}`}>{children}</div>\n <div className={`${buttonsAlign === 'bottom' ? 'text-end' : 'text-start'} ml-4`}>\n <Space>\n <Button type=\"primary\" disabled={isConfirming} onClick={onConfirm}>\n {t('FilterFormWrapper.confirmText')}\n </Button>\n {extras?.map(item => (\n <Fragment key={item.key}>{item.children}</Fragment>\n ))}\n {showReset && <Button onClick={onReset}>{t('FilterFormWrapper.resetText')}</Button>}\n </Space>\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterFormWrapper\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport { createRoot } from 'react-dom/client'\n\nconst splitByTags = (str: string) => {\n const regex = /(<[^>]*>)/\n return str.split(regex).filter(part => part !== '')\n}\n\nfunction renderToString(node: ReactNode): Promise<string> {\n const container = document.createElement('div')\n const root = createRoot(container)\n\n return new Promise(resolve => {\n setTimeout(() => {\n flushSync(() => {\n root.render(node)\n })\n resolve(container.innerHTML)\n })\n })\n}\n\nexport interface HighlightProps extends PropsWithChildren {\n texts: Array<string | number>\n}\n\nconst Highlight = (props: HighlightProps) => {\n const { texts, children } = props\n const [htmlString, setHtmlString] = useState<string>('')\n\n useEffect(() => {\n renderToString(children).then(str => {\n const result = splitByTags(str)\n\n for (const text of texts) {\n for (let index = 0; index < result.length; index++) {\n // TODO: 忽略 HTML tag\n result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`)\n }\n }\n\n setHtmlString(result.join(''))\n })\n }, [children, texts])\n\n return <div dangerouslySetInnerHTML={{ __html: htmlString }}></div>\n}\n\nexport default Highlight\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { QueryListPayload } from './QueryList'\n\n// Query 更新函数类型\ntype QueryRefetchFunction = () => void | Promise<unknown>\n\n// QueryList 实例信息\ninterface QueryListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: QueryListPayload\n refetch: QueryRefetchFunction\n}\n\n// 简化的状态接口\ninterface QueryListState {\n // 实例管理\n instances: Map<string, QueryListInstance>\n\n // 核心方法\n registerInstance(id: string, url: string, queryKey: readonly unknown[], refetch: QueryRefetchFunction): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: QueryListPayload): void\n getPayload(id: string): QueryListPayload\n refetch(id: string, payload?: QueryListPayload): Promise<void>\n\n // 工具方法\n getInstance(id: string): QueryListInstance | undefined\n getAllInstances(): QueryListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: QueryListPayload = Object.freeze({\n page: 1,\n size: 10,\n filters: Object.freeze({}),\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<QueryListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新refetch函数\n if (existingInstance) {\n // 仅当 refetch 变更时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n }\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n return { instances: newInstances }\n }\n return state\n }\n\n // 创建新实例\n const instance: QueryListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\n },\n unregisterInstance(id) {\n set(state => {\n const newInstances = new Map(state.instances)\n const existed = newInstances.delete(id)\n\n if (existed) {\n return { instances: newInstances }\n }\n return state\n })\n },\n updatePayload(id, payload) {\n set(state => {\n const instance = state.instances.get(id)\n if (!instance) return state\n\n const newPayload = { ...instance.payload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(instance.payload, newPayload)) {\n const updatedInstance = {\n ...instance,\n payload: newPayload,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n\n return { instances: newInstances }\n }\n\n return state\n })\n },\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`QueryList instance with id \"${id}\" not found`)\n return\n }\n\n let payloadChanged = false\n\n // 更新 payload 如果提供且确实有变化\n if (payload) {\n const currentPayload = instance.payload\n const newPayload = { ...currentPayload, ...payload }\n\n if (!isEqual(currentPayload, newPayload)) {\n get().updatePayload(id, payload)\n payloadChanged = true\n }\n }\n\n // 若 payload 发生变化,queryKey 会变化,React Query 会自动触发请求,此处不再手动 refetch,避免重复请求\n if (payloadChanged) {\n return\n }\n\n // 否则手动触发一次请求\n try {\n await instance.refetch()\n } catch (error) {\n console.error(`Failed to refetch QueryList instance \"${id}\":`, error)\n throw error\n }\n },\n\n getInstance(id) {\n return get().instances.get(id)\n },\n\n getAllInstances() {\n return Array.from(get().instances.values())\n },\n })),\n {\n name: 'query-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useQueryListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Form, Result, Spin, Table } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { TableProps } from 'antd/es/table'\nimport type { Options as KyOptions } from 'ky'\nimport { isEqual } from 'lodash-es'\nimport type { ReactElement, ReactNode, Ref } from 'react'\nimport { cloneElement, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport type { FilterFormWrapperProps } from '@/components/filterFormWrapper'\nimport { FilterFormWrapper } from '@/components/filterFormWrapper'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useQueryListStore } from './stores'\n\nexport interface ListResponse<T = any> {\n list: T[]\n total: number\n}\n\nexport interface QueryListPayload<Values = any> {\n page?: number\n size?: number\n filters?: Values\n}\n\n// 缓存配置\nexport interface CacheConfig {\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\n// 支持的 HTTP 请求方法类型\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n// 简化的请求配置\nexport interface QueryListRequestConfig extends CacheConfig {\n url: string\n method?: HttpMethod\n body?: FormData | Record<string | number, any>\n searchParams?: Record<string | number, any>\n headers?: Record<string, string>\n}\n\nexport type QueryListRequestConfigType<Values = any> =\n | QueryListRequestConfig\n | ((payload: QueryListPayload<Values>) => QueryListRequestConfig)\n\nexport enum QueryListAction {\n Confirm,\n Reset,\n Jump,\n Init,\n}\n\nexport interface QueryListDataType<Item> {\n dataSource: Item[]\n total: number\n}\n\nexport interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = any> {\n data: Data | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n}\n\nexport interface QueryListDataAdapter<Item extends AnyObject = AnyObject> {\n total?: number\n items?: Item[]\n}\n\nexport type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data = any> =\n | QueryListDataAdapter<Item>\n | ((data: Data) => QueryListDataAdapter<Item>)\n\nexport interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = any>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选的标识符,用于标识和外部控制,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n onePage?: boolean // 无分页\n defaultSize?: number\n pageSizeOptions?: number[]\n request: QueryListRequestConfigType<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: QueryListAction, form: FormInstance<Values>, data?: Data) => void\n afterError?: (error: Error, action: QueryListAction, form: FormInstance<Values>) => void\n dataAdapter?: QueryListDataAdapterConfig<Item, Data>\n footer?: (data: Data | undefined) => ReactNode\n}\n\n// 常量定义\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000 // 默认缓存5分钟\nconst DEFAULT_STALE_TIME = 30 * 1000 // 默认30秒内数据新鲜\n\n// 无请求体的 HTTP 方法\nconst BODYLESS_METHODS: HttpMethod[] = ['GET', 'HEAD', 'OPTIONS']\n\n// 支持请求体的 HTTP 方法\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\n\n// 生成唯一 identifier 的函数\nconst generateUniqueIdentifier = (): string => {\n return `queryList_${Date.now()}_${++identifierCounter}`\n}\n\nconst InternalQueryList = <Item extends AnyObject = AnyObject, Values extends AnyObject = any, Data = any>(\n props: QueryListProps<Item, Values, Data>,\n ref: Ref<QueryListRef<Item, Values, Data>>,\n) => {\n const { t } = useTranslation()\n\n const {\n form,\n identifier,\n code,\n onePage,\n buttonsAlign,\n showReset,\n defaultSize = 10,\n refreshInterval = 0,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n footer,\n pageSizeOptions,\n request,\n dataAdapter,\n ...tableProps\n } = props\n\n const [formInstance] = Form.useForm<Values>(form)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => {\n return identifier || generateUniqueIdentifier()\n }, [identifier])\n const action = useRef<QueryListAction>(QueryListAction.Init)\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false) // 防止循环更新的标志\n\n // 仅订阅当前 identifier 的 payload,避免因其它实例变化导致不必要重渲染\n const subscribedPayload = useQueryListStore(s => s.getPayload(finalIdentifier))\n const ky = useKy()\n\n const { page, size = defaultSize, filters } = subscribedPayload\n\n const payload = { page, size, filters }\n\n // 处理 request 配置(对象或函数)\n const resolvedRequest = typeof request === 'function' ? request(payload) : request\n\n const {\n url,\n method = 'GET',\n body,\n searchParams,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = resolvedRequest\n\n // 验证请求方法\n const normalizedMethod = method.toUpperCase() as HttpMethod\n const allSupportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n\n if (!allSupportedMethods.includes(normalizedMethod)) {\n console.warn(`QueryList: 不支持的 HTTP 请求方法 \"${method}\",将使用 GET 方法`)\n }\n\n // 根据请求方法决定参数传递方式\n const isBodylessMethod = BODYLESS_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 智能参数传递策略:\n // 1. 优先使用用户明确传入的 body 或 searchParams\n // 2. 若用户未指定,根据 HTTP 方法自动选择合适的传递方式\n // 3. 避免同时设置 body 和 searchParams(除非用户明确指定)\n let requestBody: any\n let requestSearchParams: any\n\n if (body !== undefined) {\n // 用户传入了 body,优先使用\n requestBody = body\n requestSearchParams = searchParams\n } else if (searchParams !== undefined) {\n // 用户只传入了 searchParams\n requestSearchParams = searchParams\n requestBody = undefined\n } else {\n // 都未传入,根据方法类型自动选择\n if (isBodylessMethod) {\n requestSearchParams = defaultRequestData\n requestBody = undefined\n } else {\n requestBody = defaultRequestData\n requestSearchParams = undefined\n }\n }\n\n const requestHeaders = headers\n\n const shouldPoll = useRef(false)\n\n // 构建更完整的 queryKey,包含所有影响请求结果的参数\n const queryKey = [\n 'queryList',\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n size,\n filters,\n requestBody,\n requestSearchParams,\n requestHeaders,\n ] as const\n\n const { data, isLoading, refetch } = useQuery({\n queryKey,\n queryFn: async () => {\n try {\n const kyOptions: KyOptions = {\n method: normalizedMethod,\n searchParams: requestSearchParams,\n headers: requestHeaders,\n }\n\n // 只有非无请求体方法才允许有 body\n if (requestBody && !isBodylessMethod) {\n if (requestBody instanceof FormData) {\n // FormData 使用 body 方式传递\n kyOptions.body = requestBody\n } else if (typeof requestBody === 'string') {\n // 字符串直接作为 body\n kyOptions.body = requestBody\n } else {\n // 对象类型使用 .json 方式传递\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, response)\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n retry: (failureCount, retryError) => {\n // 自定义重试逻辑\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false // 认证错误不重试\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000), // 指数退避\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n // 缓存配置\n gcTime: cacheTime,\n staleTime,\n enabled: accessible && isValid,\n })\n\n // 处理 dataAdapter 配置\n const resolvedDataAdapter = useMemo(() => {\n const adapter = dataAdapter\n const defaultAdapter: QueryListDataAdapter<Item> = {\n total: (data as ListResponse<Item>)?.total,\n items: (data as ListResponse<Item>)?.list,\n }\n\n if (typeof adapter === 'function') {\n return {\n ...defaultAdapter,\n ...adapter(data as Data),\n }\n }\n return {\n ...defaultAdapter,\n ...adapter,\n }\n }, [dataAdapter, data])\n\n // 在组件挂载时注册实例,避免因 queryKey/refetch 身份变化反复注册\n useEffect(() => {\n useQueryListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch)\n return () => {\n useQueryListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url])\n\n const dataSource = resolvedDataAdapter.items\n const total = resolvedDataAdapter.total\n\n const pagination = useMemo(() => {\n if (onePage) return false\n\n return {\n pageSizeOptions,\n showSizeChanger: true,\n showQuickJumper: true,\n current: page,\n pageSize: size,\n total,\n onChange: async (currentPage: number, currentSize: number) => {\n action.current = QueryListAction.Jump\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: currentPage,\n size: currentSize,\n })\n },\n }\n }, [onePage, pageSizeOptions, page, size, total, finalIdentifier])\n\n const onConfirm = useCallback(async () => {\n action.current = QueryListAction.Confirm\n try {\n await formInstance.validateFields()\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const onReset = useCallback(async () => {\n action.current = QueryListAction.Reset\n formInstance.resetFields()\n\n try {\n await formInstance.validateFields({ validateOnly: true })\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isLoading}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(formInstance) as ReactElement<{ onKeyUp?: React.KeyboardEventHandler }>, {\n onKeyUp: (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={formInstance} />\n )\n\n const tableExtraRenderer = typeof tableExtra === 'function' ? tableExtra(formInstance, data) : tableExtra\n\n const renderFooter: TableProps<Item>['footer'] = footer ? () => <>{footer(data)}</> : undefined\n\n // 监听 payload.filters 变化并同步更新表单实例\n useEffect(() => {\n if (!isInitialized.current || isUpdatingFromPayload.current) {\n return\n }\n\n // 获取当前表单的值\n const currentFormValues = formInstance.getFieldsValue()\n\n // 如果 payload 中的 filters 与当前表单值不同,则更新表单\n if (filters && !isEqual(currentFormValues, filters)) {\n isUpdatingFromPayload.current = true\n formInstance.setFieldsValue(filters)\n // 使用 setTimeout 确保在下一个事件循环中重置标志\n setTimeout(() => {\n isUpdatingFromPayload.current = false\n }, 0)\n }\n }, [filters, formInstance])\n\n // 首次挂载时自动校验表单,校验通过则更新 payload 并允许请求\n useEffect(() => {\n if (!accessible || isInitialized.current) {\n return\n }\n\n const init = async () => {\n console.log('QueryList init starting')\n try {\n formInstance.resetFields()\n const value = await formInstance.validateFields({ validateOnly: true })\n console.log('QueryList init validation success:', value)\n useQueryListStore.getState().updatePayload(finalIdentifier, {\n page: 1,\n filters: value,\n })\n setIsValid(true)\n console.log('QueryList init completed, isValid set to true')\n } catch (error) {\n console.log('QueryList init validation failed:', error)\n setIsValid(false)\n } finally {\n isInitialized.current = true\n }\n }\n\n const rafId = requestAnimationFrame(() => {\n Promise.resolve().then(init)\n })\n\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId)\n }\n }\n }, [accessible, finalIdentifier, formInstance])\n\n useImperativeHandle(\n ref,\n () => ({\n data,\n dataSource,\n form: formInstance,\n refetch,\n }),\n [data, dataSource, formInstance, refetch],\n )\n\n if (isChecking) {\n return (\n <div className=\"flex justify-center items-center h-[300px]\">\n <Spin />\n </div>\n )\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n return (\n <div>\n {formRenderer}\n {tableExtraRenderer}\n <Table\n {...tableProps}\n dataSource={dataSource}\n loading={isLoading}\n pagination={pagination}\n footer={renderFooter}\n />\n </div>\n )\n}\n\nconst QueryList = forwardRef(InternalQueryList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: QueryListProps<Item, Values, Data> & { ref?: Ref<QueryListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default QueryList\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/filterFormWrapper/FilterFormWrapper.tsx","../src/components/highlight/Highlight.tsx","../src/components/queryList/stores.ts","../src/components/queryList/QueryList.tsx"],"names":["FilterFormWrapper","props","extras","isConfirming","onConfirm","onReset","children","buttonsAlign","showReset","t","useTranslation","colorFillAlter","lineWidth","lineType","colorBorder","borderRadiusLG","theme","jsx","jsxs","Space","Button","item","Fragment","FilterFormWrapper_default","splitByTags","str","regex","part","renderToString","node","container","root","createRoot","resolve","flushSync","Highlight","texts","htmlString","setHtmlString","useState","useEffect","result","text","index","Highlight_default","DEFAULT_PAYLOAD","createStore","create","devtools","subscribeWithSelector","set","get","id","url","queryKey","refetch","state","existingInstance","updatedInstance","newInstances","instance","payload","newPayload","isEqual","payloadChanged","currentPayload","error","store","useQueryListStore","QueryListAction","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","BODYLESS_METHODS","BODY_SUPPORTED_METHODS","identifierCounter","generateUniqueIdentifier","InternalQueryList","ref","form","identifier","code","onePage","defaultSize","refreshInterval","tableExtra","renderForm","afterSuccess","afterError","footer","pageSizeOptions","request","dataAdapter","tableProps","formInstance","Form","finalIdentifier","useMemo","action","useRef","accessible","isChecking","useAuth","isValid","setIsValid","isInitialized","isUpdatingFromPayload","subscribedPayload","s","ky","useKy","page","size","filters","resolvedRequest","method","body","searchParams","headers","cacheTime","staleTime","normalizedMethod","isBodylessMethod","defaultRequestData","requestBody","requestSearchParams","requestHeaders","shouldPoll","data","isLoading","useQuery","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","resolvedDataAdapter","adapter","defaultAdapter","dataSource","total","pagination","currentPage","currentSize","useCallback","formRenderer","cloneElement","e","tableExtraRenderer","renderFooter","currentFormValues","init","value","rafId","useImperativeHandle","Spin","Table","Result","QueryList","forwardRef","QueryList_default"],"mappings":"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","file":"chunk-P5T74EXP.js","sourcesContent":["import { Button, Space, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Fragment } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface FilterFormWrapperProps extends PropsWithChildren {\n onConfirm?: () => void | Promise<void>\n onReset?: () => void\n extras?: { key: Key; children: ReactNode }[]\n isConfirming?: boolean\n buttonsAlign?: 'left' | 'right' | 'bottom'\n showReset?: boolean\n}\n\nconst FilterFormWrapper = (props: FilterFormWrapperProps) => {\n const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = 'left', showReset } = props\n const { t } = useTranslation()\n const {\n token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG },\n } = theme.useToken()\n\n return (\n <div\n className=\"max-w-none p-6 mb-6 border\"\n style={{\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n }}\n >\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'grow-0' : 'flex-1'}`}>{children}</div>\n <div className={`${buttonsAlign === 'bottom' ? 'text-end' : 'text-start'} ml-4`}>\n <Space>\n <Button type=\"primary\" disabled={isConfirming} onClick={onConfirm}>\n {t('FilterFormWrapper.confirmText')}\n </Button>\n {extras?.map(item => (\n <Fragment key={item.key}>{item.children}</Fragment>\n ))}\n {showReset && <Button onClick={onReset}>{t('FilterFormWrapper.resetText')}</Button>}\n </Space>\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterFormWrapper\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport { createRoot } from 'react-dom/client'\n\nconst splitByTags = (str: string) => {\n const regex = /(<[^>]*>)/\n return str.split(regex).filter(part => part !== '')\n}\n\nfunction renderToString(node: ReactNode): Promise<string> {\n const container = document.createElement('div')\n const root = createRoot(container)\n\n return new Promise(resolve => {\n setTimeout(() => {\n flushSync(() => {\n root.render(node)\n })\n resolve(container.innerHTML)\n })\n })\n}\n\nexport interface HighlightProps extends PropsWithChildren {\n texts: Array<string | number>\n}\n\nconst Highlight = (props: HighlightProps) => {\n const { texts, children } = props\n const [htmlString, setHtmlString] = useState<string>('')\n\n useEffect(() => {\n renderToString(children).then(str => {\n const result = splitByTags(str)\n\n for (const text of texts) {\n for (let index = 0; index < result.length; index++) {\n // TODO: 忽略 HTML tag\n result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`)\n }\n }\n\n setHtmlString(result.join(''))\n })\n }, [children, texts])\n\n return <div dangerouslySetInnerHTML={{ __html: htmlString }}></div>\n}\n\nexport default Highlight\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { QueryListPayload } from './QueryList'\n\n// Query 更新函数类型\ntype QueryRefetchFunction = () => void | Promise<unknown>\n\n// QueryList 实例信息\ninterface QueryListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: QueryListPayload\n refetch: QueryRefetchFunction\n}\n\n// 简化的状态接口\ninterface QueryListState {\n // 实例管理\n instances: Map<string, QueryListInstance>\n\n // 核心方法\n registerInstance(id: string, url: string, queryKey: readonly unknown[], refetch: QueryRefetchFunction): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: QueryListPayload): void\n getPayload(id: string): QueryListPayload\n refetch(id: string, payload?: QueryListPayload): Promise<void>\n\n // 工具方法\n getInstance(id: string): QueryListInstance | undefined\n getAllInstances(): QueryListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: QueryListPayload = Object.freeze({\n page: 1,\n size: 10,\n filters: Object.freeze({}),\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<QueryListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新refetch函数\n if (existingInstance) {\n // 仅当 refetch 变更时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n }\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n return { instances: newInstances }\n }\n return state\n }\n\n // 创建新实例\n const instance: QueryListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\n },\n unregisterInstance(id) {\n set(state => {\n const newInstances = new Map(state.instances)\n const existed = newInstances.delete(id)\n\n if (existed) {\n return { instances: newInstances }\n }\n return state\n })\n },\n updatePayload(id, payload) {\n set(state => {\n const instance = state.instances.get(id)\n if (!instance) return state\n\n const newPayload = { ...instance.payload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(instance.payload, newPayload)) {\n const updatedInstance = {\n ...instance,\n payload: newPayload,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n\n return { instances: newInstances }\n }\n\n return state\n })\n },\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`QueryList instance with id \"${id}\" not found`)\n return\n }\n\n let payloadChanged = false\n\n // 更新 payload 如果提供且确实有变化\n if (payload) {\n const currentPayload = instance.payload\n const newPayload = { ...currentPayload, ...payload }\n\n if (!isEqual(currentPayload, newPayload)) {\n get().updatePayload(id, payload)\n payloadChanged = true\n }\n }\n\n // 若 payload 发生变化,queryKey 会变化,React Query 会自动触发请求,此处不再手动 refetch,避免重复请求\n if (payloadChanged) {\n return\n }\n\n // 否则手动触发一次请求\n try {\n await instance.refetch()\n } catch (error) {\n console.error(`Failed to refetch QueryList instance \"${id}\":`, error)\n throw error\n }\n },\n\n getInstance(id) {\n return get().instances.get(id)\n },\n\n getAllInstances() {\n return Array.from(get().instances.values())\n },\n })),\n {\n name: 'query-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useQueryListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Form, Result, Spin, Table } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { TableProps } from 'antd/es/table'\nimport type { Options as KyOptions } from 'ky'\nimport { isEqual } from 'lodash-es'\nimport type { ReactElement, ReactNode, Ref } from 'react'\nimport { cloneElement, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport type { FilterFormWrapperProps } from '@/components/filterFormWrapper'\nimport { FilterFormWrapper } from '@/components/filterFormWrapper'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useQueryListStore } from './stores'\n\nexport interface ListResponse<T = any> {\n list: T[]\n total: number\n}\n\nexport interface QueryListPayload<Values = any> {\n page?: number\n size?: number\n filters?: Values\n}\n\n// 缓存配置\nexport interface CacheConfig {\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\n// 支持的 HTTP 请求方法类型\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n// 简化的请求配置\nexport interface QueryListRequestConfig extends CacheConfig {\n url: string\n method?: HttpMethod\n body?: FormData | Record<string | number, any>\n searchParams?: Record<string | number, any>\n headers?: Record<string, string>\n}\n\nexport type QueryListRequestConfigType<Values = any> =\n | QueryListRequestConfig\n | ((payload: QueryListPayload<Values>) => QueryListRequestConfig)\n\nexport enum QueryListAction {\n Confirm,\n Reset,\n Jump,\n Init,\n}\n\nexport interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>> {\n data: Data | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n}\n\nexport interface QueryListDataAdapter<Item extends AnyObject = AnyObject> {\n total?: number\n items?: Item[]\n}\n\nexport type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data = ListResponse<Item>> =\n | QueryListDataAdapter<Item>\n | ((data: Data) => QueryListDataAdapter<Item>)\n\nexport interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选的标识符,用于标识和外部控制,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n onePage?: boolean // 无分页\n defaultSize?: number\n pageSizeOptions?: number[]\n request: QueryListRequestConfigType<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: QueryListAction, form: FormInstance<Values>, data?: Data) => void\n afterError?: (error: Error, action: QueryListAction, form: FormInstance<Values>) => void\n dataAdapter?: QueryListDataAdapterConfig<Item, Data>\n footer?: (data: Data | undefined) => ReactNode\n}\n\n// 常量定义\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000 // 默认缓存5分钟\nconst DEFAULT_STALE_TIME = 30 * 1000 // 默认30秒内数据新鲜\n\n// 无请求体的 HTTP 方法\nconst BODYLESS_METHODS: HttpMethod[] = ['GET', 'HEAD', 'OPTIONS']\n\n// 支持请求体的 HTTP 方法\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\n\n// 生成唯一 identifier 的函数\nconst generateUniqueIdentifier = (): string => {\n return `queryList_${Date.now()}_${++identifierCounter}`\n}\n\nconst InternalQueryList = <Item extends AnyObject = AnyObject, Values extends AnyObject = any, Data = any>(\n props: QueryListProps<Item, Values, Data>,\n ref: Ref<QueryListRef<Item, Values, Data>>,\n) => {\n const { t } = useTranslation()\n\n const {\n form,\n identifier,\n code,\n onePage,\n buttonsAlign,\n showReset,\n defaultSize = 10,\n refreshInterval = 0,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n footer,\n pageSizeOptions,\n request,\n dataAdapter,\n ...tableProps\n } = props\n\n const [formInstance] = Form.useForm<Values>(form)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => {\n return identifier || generateUniqueIdentifier()\n }, [identifier])\n const action = useRef<QueryListAction>(QueryListAction.Init)\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false) // 防止循环更新的标志\n\n // 仅订阅当前 identifier 的 payload,避免因其它实例变化导致不必要重渲染\n const subscribedPayload = useQueryListStore(s => s.getPayload(finalIdentifier))\n const ky = useKy()\n\n const { page, size = defaultSize, filters } = subscribedPayload\n\n const payload = { page, size, filters }\n\n // 处理 request 配置(对象或函数)\n const resolvedRequest = typeof request === 'function' ? request(payload) : request\n\n const {\n url,\n method = 'GET',\n body,\n searchParams,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = resolvedRequest\n\n // 验证请求方法\n const normalizedMethod = method.toUpperCase() as HttpMethod\n const allSupportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n\n if (!allSupportedMethods.includes(normalizedMethod)) {\n console.warn(`QueryList: 不支持的 HTTP 请求方法 \"${method}\",将使用 GET 方法`)\n }\n\n // 根据请求方法决定参数传递方式\n const isBodylessMethod = BODYLESS_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 智能参数传递策略:\n // 1. 优先使用用户明确传入的 body 或 searchParams\n // 2. 若用户未指定,根据 HTTP 方法自动选择合适的传递方式\n // 3. 避免同时设置 body 和 searchParams(除非用户明确指定)\n let requestBody: any\n let requestSearchParams: any\n\n if (body !== undefined) {\n // 用户传入了 body,优先使用\n requestBody = body\n requestSearchParams = searchParams\n } else if (searchParams !== undefined) {\n // 用户只传入了 searchParams\n requestSearchParams = searchParams\n requestBody = undefined\n } else {\n // 都未传入,根据方法类型自动选择\n if (isBodylessMethod) {\n requestSearchParams = defaultRequestData\n requestBody = undefined\n } else {\n requestBody = defaultRequestData\n requestSearchParams = undefined\n }\n }\n\n const requestHeaders = headers\n\n const shouldPoll = useRef(false)\n\n // 构建更完整的 queryKey,包含所有影响请求结果的参数\n const queryKey = [\n 'queryList',\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n size,\n filters,\n requestBody,\n requestSearchParams,\n requestHeaders,\n ] as const\n\n const { data, isLoading, refetch } = useQuery({\n queryKey,\n queryFn: async () => {\n try {\n const kyOptions: KyOptions = {\n method: normalizedMethod,\n searchParams: requestSearchParams,\n headers: requestHeaders,\n }\n\n // 只有非无请求体方法才允许有 body\n if (requestBody && !isBodylessMethod) {\n if (requestBody instanceof FormData) {\n // FormData 使用 body 方式传递\n kyOptions.body = requestBody\n } else if (typeof requestBody === 'string') {\n // 字符串直接作为 body\n kyOptions.body = requestBody\n } else {\n // 对象类型使用 .json 方式传递\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, response)\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n retry: (failureCount, retryError) => {\n // 自定义重试逻辑\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false // 认证错误不重试\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000), // 指数退避\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n // 缓存配置\n gcTime: cacheTime,\n staleTime,\n enabled: accessible && isValid,\n })\n\n // 处理 dataAdapter 配置\n const resolvedDataAdapter = useMemo(() => {\n const adapter = dataAdapter\n const defaultAdapter: QueryListDataAdapter<Item> = {\n total: (data as ListResponse<Item>)?.total,\n items: (data as ListResponse<Item>)?.list,\n }\n\n if (typeof adapter === 'function') {\n return {\n ...defaultAdapter,\n ...adapter(data as Data),\n }\n }\n return {\n ...defaultAdapter,\n ...adapter,\n }\n }, [dataAdapter, data])\n\n // 在组件挂载时注册实例,避免因 queryKey/refetch 身份变化反复注册\n useEffect(() => {\n useQueryListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch)\n return () => {\n useQueryListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url])\n\n const dataSource = resolvedDataAdapter.items\n const total = resolvedDataAdapter.total\n\n const pagination = useMemo(() => {\n if (onePage) return false\n\n return {\n pageSizeOptions,\n showSizeChanger: true,\n showQuickJumper: true,\n current: page,\n pageSize: size,\n total,\n onChange: async (currentPage: number, currentSize: number) => {\n action.current = QueryListAction.Jump\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: currentPage,\n size: currentSize,\n })\n },\n }\n }, [onePage, pageSizeOptions, page, size, total, finalIdentifier])\n\n const onConfirm = useCallback(async () => {\n action.current = QueryListAction.Confirm\n try {\n await formInstance.validateFields()\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const onReset = useCallback(async () => {\n action.current = QueryListAction.Reset\n formInstance.resetFields()\n\n try {\n await formInstance.validateFields({ validateOnly: true })\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isLoading}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(formInstance) as ReactElement<{ onKeyUp?: React.KeyboardEventHandler }>, {\n onKeyUp: (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={formInstance} />\n )\n\n const tableExtraRenderer = typeof tableExtra === 'function' ? tableExtra(formInstance, data) : tableExtra\n\n const renderFooter: TableProps<Item>['footer'] = footer ? () => <>{footer(data)}</> : undefined\n\n // 监听 payload.filters 变化并同步更新表单实例\n useEffect(() => {\n if (!isInitialized.current || isUpdatingFromPayload.current) {\n return\n }\n\n // 获取当前表单的值\n const currentFormValues = formInstance.getFieldsValue()\n\n // 如果 payload 中的 filters 与当前表单值不同,则更新表单\n if (filters && !isEqual(currentFormValues, filters)) {\n isUpdatingFromPayload.current = true\n formInstance.setFieldsValue(filters)\n // 使用 setTimeout 确保在下一个事件循环中重置标志\n setTimeout(() => {\n isUpdatingFromPayload.current = false\n }, 0)\n }\n }, [filters, formInstance])\n\n // 首次挂载时自动校验表单,校验通过则更新 payload 并允许请求\n useEffect(() => {\n if (!accessible || isInitialized.current) {\n return\n }\n\n const init = async () => {\n console.log('QueryList init starting')\n try {\n formInstance.resetFields()\n const value = await formInstance.validateFields({ validateOnly: true })\n console.log('QueryList init validation success:', value)\n useQueryListStore.getState().updatePayload(finalIdentifier, {\n page: 1,\n filters: value,\n })\n setIsValid(true)\n console.log('QueryList init completed, isValid set to true')\n } catch (error) {\n console.log('QueryList init validation failed:', error)\n setIsValid(false)\n } finally {\n isInitialized.current = true\n }\n }\n\n const rafId = requestAnimationFrame(() => {\n Promise.resolve().then(init)\n })\n\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId)\n }\n }\n }, [accessible, finalIdentifier, formInstance])\n\n useImperativeHandle(\n ref,\n () => ({\n data,\n dataSource,\n form: formInstance,\n refetch,\n }),\n [data, dataSource, formInstance, refetch],\n )\n\n if (isChecking) {\n return (\n <div className=\"flex justify-center items-center h-[300px]\">\n <Spin />\n </div>\n )\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n return (\n <div>\n {formRenderer}\n {tableExtraRenderer}\n <Table\n {...tableProps}\n dataSource={dataSource}\n loading={isLoading}\n pagination={pagination}\n footer={renderFooter}\n />\n </div>\n )\n}\n\nconst QueryList = forwardRef(InternalQueryList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: QueryListProps<Item, Values, Data> & { ref?: Ref<QueryListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default QueryList\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -247,6 +247,10 @@ declare const Layout: <T extends Game = Game>(props: PropsWithChildren<LayoutPro
|
|
|
247
247
|
type LogoProps = Omit<DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src' | 'alt'>;
|
|
248
248
|
declare const Logo: FC<LogoProps>;
|
|
249
249
|
|
|
250
|
+
interface ListResponse<T = any> {
|
|
251
|
+
list: T[];
|
|
252
|
+
total: number;
|
|
253
|
+
}
|
|
250
254
|
interface QueryListPayload<Values = any> {
|
|
251
255
|
page?: number;
|
|
252
256
|
size?: number;
|
|
@@ -271,7 +275,7 @@ declare enum QueryListAction {
|
|
|
271
275
|
Jump = 2,
|
|
272
276
|
Init = 3
|
|
273
277
|
}
|
|
274
|
-
interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data =
|
|
278
|
+
interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>> {
|
|
275
279
|
data: Data | undefined;
|
|
276
280
|
dataSource: Item[] | undefined;
|
|
277
281
|
form: FormInstance<Values>;
|
|
@@ -280,8 +284,8 @@ interface QueryListDataAdapter<Item extends AnyObject = AnyObject> {
|
|
|
280
284
|
total?: number;
|
|
281
285
|
items?: Item[];
|
|
282
286
|
}
|
|
283
|
-
type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data =
|
|
284
|
-
interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data =
|
|
287
|
+
type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data = ListResponse<Item>> = QueryListDataAdapter<Item> | ((data: Data) => QueryListDataAdapter<Item>);
|
|
288
|
+
interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>> extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>, Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {
|
|
285
289
|
identifier?: string;
|
|
286
290
|
code?: string;
|
|
287
291
|
form?: FormInstance<Values>;
|
package/lib/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {a as a$3,e}from'./chunk-IKGXKB6T.js';export{a as FilterFormWrapper,b as Highlight,e as QueryList,d as QueryListAction,c as useQueryListStore}from'./chunk-IKGXKB6T.js';export{a as AuthButton,d as useFormModal,c as useModal,b as useModalStore}from'./chunk-5QAEUAZE.js';import {a as a$1}from'./chunk-D5YXBSTI.js';import {a as a$2,c}from'./chunk-JDCSIJL7.js';export{a as useAuth,c as useGames,b as useMenuList}from'./chunk-JDCSIJL7.js';import {i,a,j,k,b,d,l}from'./chunk-F2GDEOP4.js';export{e as APP_ID_HEADER,f as FRONTEND_ROUTE_PREFIX,g as PermissionMode,d as SSO_URL,j as ToolkitsProvider,h as WILDCARD,a as createVisibilityStore,b as generateId,c as mixedStorage,i as useToolkitsStore}from'./chunk-F2GDEOP4.js';import {PlusOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined,LoginOutlined}from'@ant-design/icons';import {Typography,theme,Layout,Select,Form,Spin,Result,Table,Button,Empty,Space,Input,Tag,Menu,Dropdown,Divider,Drawer,Card,Alert}from'antd';import {forwardRef,memo,lazy,useState,useRef,useMemo,useEffect,useImperativeHandle,cloneElement,Fragment as Fragment$1,Suspense,useCallback}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useInfiniteQuery,useQueryClient,useQuery}from'@tanstack/react-query';import {isEqual}from'lodash-es';import {create}from'zustand';import {persist,createJSONStorage,devtools,subscribeWithSelector}from'zustand/middleware';import {Link,Routes,Route,Navigate,useLocation,useNavigate}from'react-router-dom';import Qe from'dayjs';var Ut=s=>{let{initialTags:a,addable:t,removable:e,addCallback:o,removeCallback:r}=s,{t:c}=a$1(),{token:i}=theme.useToken(),[n,l]=useState([]),[d,p]=useState(false),[h,m]=useState(""),[g,S]=useState(-1),[P,y]=useState(""),x=useRef(null),G=useRef(null);useEffect(()=>{l(a??[]);},[a]),useEffect(()=>{d&&x.current?.focus();},[d]),useEffect(()=>{G.current?.focus();},[h]);let b=async f=>{if(await r?.(f)){let _=n.filter(H=>H!==f);l(_);}},k=()=>{p(true);},E=f=>{m(f.target.value);},V=async()=>{h&&n.indexOf(h)===-1&&await o?.(h)&&l([...n,h]),p(false),m("");},N=f=>{y(f.target.value);},A=()=>{let f=[...n];f[g]=P,l(f),S(-1),m("");};return jsxs(Space,{wrap:true,size:[0,8],children:[jsx(Space,{wrap:true,size:[0,8],children:n.map((f,U)=>g===U?jsx(Input,{ref:G,size:"small",className:"w-[78px] align-top",value:P,onChange:N,onBlur:A,onPressEnter:A},f):jsx(Tag,{closable:e,className:"select-none",onClose:async _=>{_.preventDefault(),await b(f);},children:jsx("span",{onDoubleClick:_=>{U!==0&&(S(U),y(f),_.preventDefault());},children:f})},f))}),t&&(d?jsx(Input,{ref:x,type:"text",size:"small",className:"w-[78px] align-top",value:h,onChange:E,onBlur:V,onPressEnter:V}):jsxs(Tag,{className:"border-dashed",style:{background:i.colorBgContainer},onClick:k,children:[jsx(PlusOutlined,{}),"\xA0",c("global.add")]}))]})},Kt=Ut;var Qt=s=>{let{children:a,...t}=s,[e,o]=useState(false);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:e,onExpand:(r,c)=>{o(c.expanded);}},children:a})},m1=Qt;var ct=Object.freeze({page:0,filters:Object.freeze({})}),Xt=()=>create()(devtools(subscribeWithSelector((s,a)=>({instances:new Map,registerInstance(t,e,o,r,c){s(i=>{let n=i.instances.get(t);if(n){if(n.refetch!==r||n.fetchNextPage!==c){let p={...n,refetch:r,fetchNextPage:c},h=new Map(i.instances);return h.set(t,p),{instances:h}}return i}let l={id:t,url:e,queryKey:o,payload:ct,refetch:r,fetchNextPage:c},d=new Map(i.instances);return d.set(t,l),{instances:d}});},unregisterInstance(t){s(e=>{let o=new Map(e.instances);return o.delete(t)?{instances:o}:e});},updatePayload(t,e){s(o=>{let r=o.instances.get(t);if(!r)return o;let c={...r.payload,...e};if(!isEqual(r.payload,c)){let i={...r,payload:c},n=new Map(o.instances);return n.set(t,i),{instances:n}}return o});},getPayload(t){return a().instances.get(t)?.payload??ct},async refetch(t,e){let o=a().instances.get(t);if(!o){console.warn(`InfiniteList instance with id "${t}" not found`);return}let r=false;if(e){let c=o.payload,i={...c,...e};isEqual(c,i)||(a().updatePayload(t,e),r=true);}if(!r)try{await o.refetch();}catch(c){throw console.error(`Failed to refetch InfiniteList instance "${t}":`,c),c}},async fetchNextPage(t){let e=a().instances.get(t);if(!e){console.warn(`InfiniteList instance with id "${t}" not found`);return}try{await e.fetchNextPage();}catch(o){throw console.error(`Failed to fetch next page for InfiniteList instance "${t}":`,o),o}},getInstance(t){return a().instances.get(t)},getAllInstances(){return Array.from(a().instances.values())}})),{name:"infinite-list-store"})),Yt=Xt(),D=Yt;var n2=300*1e3,i2=30*1e3,l2=0,p2=()=>`infiniteList_${Date.now()}_${++l2}`,d2=(s,a)=>{let e={refreshInterval:0,initialPageParam:0,...s,dataAdapter:{...{items:u=>u?u.flatMap(M=>M?.list||M||[]):[],hasMore:u=>{if(!u)return false;let M=u;return M?.hasMore||M?.has_more||false},nextPageParam:(u,M,X)=>(q=>{if(!q)return false;let J=q;return J?.hasMore||J?.has_more||false})(u)?M.length:void 0},...s.dataAdapter}},{identifier:o,code:r,buttonsAlign:c,showReset:i,refreshInterval:n,request:l,tableExtra:d,renderForm:p,afterSuccess:h,afterError:m,dataAdapter:g,initialPageParam:S,footer:P,form:y,...x}=e,{t:G}=a$1(),[b]=Form.useForm(y),[k$1,E]=useState(false),V=useRef(false),N=useRef(3),A=k(),{data:f,isLoading:U}=a$2(r),_=useMemo(()=>o||p2(),[o]),H=D(u=>u.getPayload(_)),K=useMemo(()=>b,[b]),{url:Z,method:Dt="GET",body:g1,params:_1,headers:r1,cacheTime:zt=n2,staleTime:kt=i2}=l,S1=useMemo(()=>typeof r1=="function"?r1(K):r1,[r1,K]),M1=useMemo(()=>["infiniteList",Z,_,f,k$1,H,S1],[Z,_,f,k$1,H,S1]),{data:c1,fetchNextPage:C1,hasNextPage:K1,isFetchingNextPage:q1,refetch:B1,isFetching:Q1}=useInfiniteQuery({queryKey:M1,queryFn:async({pageParam:u=S})=>{try{let M=H,X=typeof _1=="function"?_1(M,u):_1,Y=typeof g1=="function"?g1(M,u):g1,q={method:Dt,searchParams:X,headers:S1};Y&&(Y instanceof FormData?q.body=Y:q.json=Y);let J=await A.request({url:Z,...q});return V.current=!0,h?.(N.current,K,[J]),J}catch(M){let X=M instanceof Error?M:new Error(String(M));throw m?.(X,N.current,K),X}},initialPageParam:S,getNextPageParam:(u,M)=>g?.nextPageParam?.(u,M,S),enabled:f&&k$1,retry:(u,M)=>!(u>=3||M?.message?.includes("401")),retryDelay:u=>Math.min(1e3*2**u,3e4),refetchOnWindowFocus:false,refetchInterval:V.current?n:0,gcTime:zt,staleTime:kt});useEffect(()=>(D.getState().registerInstance(_,Z,M1,B1,C1),()=>{D.getState().unregisterInstance(_);}),[_,Z,M1,B1,C1]);let n1=g?.items?.(c1?.pages,K),v1=q1,W1=!K1,Et=!n1||n1.length===0,j1=async()=>{N.current=0;let u=await b.getFieldsValue();try{await b.validateFields(),E(!0),D.getState().refetch(_,{page:0,filters:u});}catch{E(false);}},Nt=()=>{N.current=2,C1();},Lt=async()=>{N.current=1;try{b.resetFields();let u=await b.getFieldsValue();D.getState().updatePayload(_,{page:0,filters:u}),await b.validateFields({validateOnly:!0}),D.getState().refetch(_);}catch{}};if(useEffect(()=>{setTimeout(()=>{f&&b.validateFields({validateOnly:true}).then(u=>{E(true),D.getState().updatePayload(_,{page:0,filters:u});}).catch(()=>{E(false);});},300);},[f,b,_]),useImperativeHandle(a,()=>({data:c1?.pages,dataSource:n1,form:b,refetch:()=>D.getState().refetch(_),fetchNextPage:()=>D.getState().fetchNextPage(_),hasNextPage:!!K1,isFetchingNextPage:q1})),U)return jsx("div",{className:"flex justify-center items-center h-[300px]",children:jsx(Spin,{})});if(!f)return jsx(Result,{status:403,subTitle:G("global.noEntitlement")});let Tt=P?()=>jsx(Fragment,{children:P(c1?.pages)}):void 0,Vt=()=>typeof d=="function"?d(K,c1?.pages):d,Rt=typeof p=="function"?jsx(a$3,{showReset:i,buttonsAlign:c,isConfirming:Q1,onReset:Lt,onConfirm:j1,children:cloneElement(p(b),{onKeyUp:u=>{u.key==="Enter"&&j1();}})}):jsx(Form,{form:b});return jsxs(Fragment,{children:[Rt,Vt(),jsx("div",{className:"min-h-[400px]",children:jsx(Table,{...x,dataSource:n1,loading:Q1,pagination:false,footer:Tt})}),!Et&&jsx(Button,{block:true,loading:v1,type:"link",htmlType:"button",disabled:v1||W1,onClick:Nt,children:G(v1?"InfiniteList.loadingText":W1?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},m2=forwardRef(d2),f2=m2;var {Text:S2}=Typography,M2=s=>{let{filter:a,options:t}=s,{t:e}=a$1(),{context:{useGameApiV2:o},game:{appId:r,setAppId:c$1}}=i(),{data:i$1,isLoading:n}=c(),l=useQueryClient(),d=useMemo(()=>i$1?.filter(m=>a?.(m)??true),[i$1,a]),p=useMemo(()=>typeof t=="function"?t(d):d?.map(m=>({label:m.name,value:o?m.game_id:m.id})),[t,d,o]),h=m=>{l.invalidateQueries({predicate:g=>{let S=g.queryKey;return !S.includes("/api/game/list")&&!S.includes("/api/usystem/game/all")}}),c$1(m);};return useEffect(()=>{n||(p&&p.length>0?r&&p.some(g=>String(g.value)===String(r))||c$1(p[0]?.value??void 0):(p===void 0||p.length===0)&&c$1(void 0));},[p,n]),jsxs(Space,{children:[jsx(S2,{children:e("GameSelect.label")}),jsx(Select,{showSearch:true,optionFilterProp:"label",value:r,placeholder:e("GameSelect.placeholder"),loading:n,className:"w-[250px]",options:p,onChange:h})]})},b1=M2;var F1=create()(persist((s,a)=>({openKeys:[],setOpenKeys:t=>{let e=a();(e.openKeys.length!==t.length||!e.openKeys.every((o,r)=>o===t[r]))&&s({openKeys:t});},selectedKeys:[],setSelectedKeys:t=>{let e=a();(e.selectedKeys.length!==t.length||!e.selectedKeys.every((o,r)=>o===t[r]))&&s({selectedKeys:t});}}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:s=>({openKeys:s.openKeys,selectedKeys:s.selectedKeys}),skipHydration:false,version:1}));var P2=s=>jsx(Link,{to:s.to,children:s.children});function P1(s){let a=[];if(!s)return a;for(let t=0;t<s.length;t++){let e=s[t];if(e===null||e.type==="divider"){a[t]=e;continue}if(e.children){let{children:n,...l}=e;a[t]={...l,children:P1(n)};continue}let{route:o,label:r,...c}=e,i=o?jsx(P2,{to:o,children:r}):r;a[t]={...c,label:i};}return a}function w1(s,a=[],t=[]){for(let e of s){if(!e)continue;let o=e?.children;if(Array.isArray(o)){let r=e.type!=="group"&&e.key?[...t,e.key]:t;w1(o,a,r);}else a.push({...e,keypath:t});}return a}var k2=s=>{let{items:a=[],theme:t,loading:e}=s,o=useLocation(),{layout:{collapsed:r}}=i(),c=w1(a),i$1=P1(a),{openKeys:n,selectedKeys:l,setOpenKeys:d,setSelectedKeys:p}=F1();return useEffect(()=>{let h=c.find(m=>o.pathname===m.route);if(h){let m=h.key,g=h.keypath,{selectedKeys:S,openKeys:P}=F1.getState();S[0]!==m&&p([m]);let y=g.filter(x=>!P.includes(x));y.length>0&&d([...P,...y]);}},[c,o.pathname,d,p]),e?jsx("div",{className:"flex justify-center items-center h-[calc(100vh-64px)]",children:jsx(Spin,{})}):jsx(Menu,{theme:t,className:"border-r-0",items:i$1,mode:"inline",defaultOpenKeys:n,defaultSelectedKeys:l,inlineCollapsed:r,onOpenChange:d})},D1=k2;var T2=({children:s})=>{let{context:{isGlobalMode:a,gameScoped:t},game:{appId:e}}=i(),{isLoading:o}=c(),{t:r}=a$1();return !t||a?jsx(Fragment,{children:s}):o?jsx("div",{className:"flex justify-center items-center h-[400px]",children:jsx(Spin,{})}):e?jsx(Fragment$1,{children:s},e):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:r("RequireGame.description")})},z1=memo(T2);var q2=()=>{let{t:s}=a$1(),a=useNavigate(),{token:{user:t},context:{loginPath:e},clear:o}=i(),r=()=>{o(),a(e);},c=l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r());},i$1=l=>{(l.key==="Enter"||l.key===" ")&&l.preventDefault();},n=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{role:"button",tabIndex:0,onClick:r,onKeyDown:c,children:s("UserDropdown.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:true,items:n},placement:"bottomRight",children:jsx("a",{role:"button",tabIndex:0,onClick:l=>{l.preventDefault();},onKeyDown:i$1,children:jsxs(Space,{align:"center",children:[jsx("span",{children:t?.authorityId}),jsx(UserOutlined,{className:"text-base"})]})})})})},k1=q2;var ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAydpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmIwZjhiZTkwLCAyMDIxLzEyLzE1LTIxOjI1OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuMiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEY2MEZENUIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEY2MEZENkIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwRjYwRkQzQjEwRTExRUNBREU4RjM1RkZGNDY1RjI0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwRjYwRkQ0QjEwRTExRUNBREU4RjM1RkZGNDY1RjI0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K5OQMAAAImdJREFUeNrs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";var W2=s=>jsx("img",{src:ht,alt:"logo",...s}),e1=W2;var Q="all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",xt=memo(({title:s,subtitle:a})=>{let{context:{homePath:t},layout:{collapsed:e}}=i(),{token:{colorPrimary:o}}=theme.useToken();return jsxs("div",{className:"px-6 py-2 font-bold relative bg-linear-to-r from-white to-gray-50/30 h-auto flex flex-col justify-center backdrop-blur-sm",children:[jsxs("div",{className:`flex items-center w-full ${e?"justify-center":""}`,children:[jsx(Link,{to:t,className:"transition-all duration-300 ease-out block rounded-lg p-1",style:{transition:Q,opacity:e?.8:1},children:jsx(e1,{width:36,className:"object-contain block",style:{transition:Q}})}),s&&jsx("div",{className:"ml-4 overflow-hidden min-w-0",style:{transition:Q,opacity:e?0:1,width:e?"0px":"auto",marginLeft:e?"0px":"16px",transform:e?"translateX(-8px)":"translateX(0)"},children:jsx(Link,{to:t,className:"text-xl leading-tight transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block",title:s,style:{color:o,textShadow:"0 1px 2px rgba(0, 0, 0, 0.05)"},children:s})})]}),jsx("div",{className:"w-full mt-2 overflow-hidden",style:{height:a&&!e?"20px":"1px",transition:Q},children:jsxs("div",{className:"flex items-center justify-center h-full w-full",children:[jsx("div",{className:"w-full border-t border-gray-200 absolute",style:{opacity:!a||e?1:0,transition:Q}}),a&&jsxs("div",{className:"flex items-center w-full text-sm",style:{opacity:e?0:1,transform:e?"translateY(-3px)":"translateY(0)",transition:Q},children:[jsx("div",{className:"flex-1 border-t border-gray-200"}),jsx("span",{className:"px-3 text-gray-500 font-medium whitespace-nowrap",title:a,children:a}),jsx("div",{className:"flex-1 border-t border-gray-200"})]})]})})]})});xt.displayName="LayoutHeader";var gt=xt;var {Header:se,Sider:oe,Content:re}=Layout,ce=64,ne=(s,a)=>{if(typeof a=="string"){if(a.endsWith("*")){let t=a.slice(0,-1);return s.startsWith(t)}return s===a}return a instanceof RegExp?a.test(s):false},ie=s=>{let{title:a,subtitle:t,navigation:e,gameSelect:o,headerExtra:r,children:c}=s,i$1=useLocation(),{token:{colorBgContainer:n,colorBorder:l}}=theme.useToken(),{context:{sidebarWidth:d,sidebarCollapsible:p,gameScoped:h,isGlobalMode:m},layout:{collapsed:g,toggleCollapsed:S}}=i(),y=!(o?.hideOnRoutes&&o.hideOnRoutes.length>0?o.hideOnRoutes.some(x=>ne(i$1.pathname,x)):false)&&h&&!m;return jsxs(Layout,{children:[jsxs(oe,{collapsible:p,theme:"light",trigger:null,collapsed:g,width:d,className:"h-screen overflow-x-hidden overflow-y-auto border-r",style:{borderColor:l},children:[jsx(gt,{title:a,subtitle:t}),jsx(D1,{items:e?.items,loading:e?.loading})]}),jsxs(Layout,{children:[jsx(se,{className:"px-6",style:{background:n},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[p&&jsx(Button,{type:"text",icon:g?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),className:"text-base",onClick:S}),y&&jsx(b1,{filter:o?.filter,options:o?.options}),r?.left?.map(x=>jsx("span",{children:x.children},x.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[r?.right?.map(x=>jsx("span",{children:x.children},x.key)),jsx(k1,{})]})]})}),jsx(re,{className:"overflow-auto px-4 py-6",style:{maxHeight:`calc(100vh - ${ce}px)`},children:jsx(Suspense,{fallback:jsx("div",{className:"flex justify-center items-center h-[200px]",children:jsx(Spin,{})}),children:jsx(z1,{children:c})})})]})]})},le=ie;var ue=s=>{let{code:a,config:t,redirectPath:e="/",children:o}=s,{data:r,isLoading:c}=a$2(a,t),{t:i}=a$1(),n=useNavigate();return c?jsx("div",{className:"flex justify-center items-center h-[200px]",children:jsx(Spin,{})}):r?jsx(Fragment,{children:o}):jsx(Result,{status:"403",subTitle:i("global.noEntitlement"),extra:jsx(Button,{type:"primary",onClick:()=>n(e),children:i("global.back")})})},he=ue;var N1=a();function T1(s){let{content:a,onConfirm:t,afterOpen:e,afterClose:o,footer:r,confirmText:c="\u786E\u8BA4",cancelText:i="\u53D6\u6D88",confirmButtonProps:n,cancelButtonProps:l,...d}=s,p=useMemo(()=>b(),[]),{show:h,hide:m,isOpen:g,cleanup:S}=N1();useEffect(()=>()=>{S(p);},[p,S]);let P=g(p),[y,x]=useState(false),G=typeof a=="function",b$1=useCallback(async()=>{h(p),await e?.();},[p,h,e]),k=useCallback(()=>{m(p);},[p,m]),E=useCallback(async()=>{k(),await o?.();},[k,o]),V=useCallback(async()=>{try{x(!0),await t?.();}catch(f){throw console.error("Drawer confirm error:",f),f}finally{x(false);}},[t]),N=r!==void 0?jsx(Fragment,{children:r}):jsxs("div",{className:"flex gap-4 mx-4",children:[jsx(Button,{type:"primary",loading:y,...n,onClick:V,children:c}),jsx(Button,{...l,onClick:E,children:i})]}),A=jsx(Drawer,{...d,open:P,footer:N,onClose:E,children:G?jsx(Fragment,{children:a({hide:k})}):jsx(Fragment,{children:a})});return {id:p,show:b$1,hide:k,confirmLoading:y,drawer:A}}function Ie(s){let{content:a,form:t,formProps:e,onConfirm:o,onSuccess:r,afterClose:c,...i}=s,[n,l]=useState({}),[d]=Form.useForm(t),p=typeof a=="function",{id:h,show:m,hide:g,drawer:S}=T1({...i,content:y=>jsx(Form,{...e,form:d,children:p?jsx(Fragment,{children:a(n,y)}):jsx(Fragment,{children:a})}),onConfirm:async()=>{try{let y=await d.validateFields();await o?.(y,n),r?.(),g();}catch(y){throw console.error("Form validation or submission error:",y),y}},afterClose:()=>{l({}),c?.(d);}}),P=useCallback(y=>{let{initialValues:x,extraValues:G}=y||{};G!==void 0&&l(G),x&&d.setFieldsValue(x),m();},[d,m]);return {id:h,show:P,hide:g,drawer:S}}var Fe=lazy(()=>import('./menuItemList-2QZXJVWZ.js')),Pe=lazy(()=>import('./createMenuItem-Q5TJGFKZ.js')),we=lazy(()=>import('./updateMenuItem-4HDRJAY7.js')),Ge=jsx(j,{isGlobalMode:true,children:jsxs(Routes,{children:[jsx(Route,{index:true,element:jsx(Fe,{})}),jsx(Route,{path:"create",element:jsx(Pe,{})}),jsx(Route,{path:"update/:id",element:jsx(we,{})})]})});var Ee=lazy(()=>import('./userList-QHQHRPSV.js')),Ne=lazy(()=>import('./userDetail-B5H4A4X2.js')),Le=lazy(()=>import('./roleList-MQOFJ3LH.js')),Te=lazy(()=>import('./roleDetail-ODJVDVB4.js')),Ve=jsx(j,{isGlobalMode:true,children:jsxs(Routes,{children:[jsx(Route,{index:true,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(Ee,{})}),jsx(Route,{path:"user/:id",element:jsx(Ne,{})}),jsx(Route,{path:"role",element:jsx(Le,{})}),jsx(Route,{path:"role/:name",element:jsx(Te,{})})]})});var Ke=s=>{let{redirectUrl:a}=s,t=useNavigate(),{t:e}=a$1();return jsx("div",{className:"text-center",children:jsx(Result,{status:"404",title:"404",subTitle:e("NotFound.subTitle"),extra:a&&jsx(Button,{type:"primary",onClick:()=>{t(a);},children:e("NotFound.buttonText")})})})},qe=Ke;var {Option:It}=Select,We=()=>{let{t:s}=a$1(),a=[{key:"username",title:s("global.username"),dataIndex:"uname",width:100},{key:"label",title:s("global.label"),dataIndex:"label",width:150},{key:"method",title:s("global.method"),dataIndex:"method",width:100},{key:"route",title:s("global.route"),dataIndex:"route",width:200},{key:"request",title:s("global.request"),dataIndex:"request",render(t){return jsx(m1,{children:t})}},{key:"response",title:s("global.response"),dataIndex:"response",render(t){return jsx(m1,{children:t})}},{key:"creation_time",title:s("global.creationTime"),dataIndex:"ctime",width:200,render(t){return Qe(t).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(e,{identifier:"operation-log-list",rowKey:"id",code:"300001",columns:a,tableLayout:"fixed",request:{url:"/api/usystem/log/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List}),renderForm:t=>jsxs(Form,{form:t,layout:"inline",children:[jsx(Form.Item,{label:s("global.username"),name:"uname",children:jsx(Input,{allowClear:true})}),jsx(Form.Item,{label:s("global.route"),name:"route",children:jsx(Input,{allowClear:true})}),jsx(Form.Item,{label:s("global.method"),name:"method",children:jsxs(Select,{allowClear:true,className:"w-[100px]",children:[jsx(It,{value:"get",children:"GET"}),jsx(It,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:s("global.label"),name:"label",children:jsx(Input,{allowClear:true})})]})})})},je=We;var Pt='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';function wt(s){let a=new URL(window.location.href);s.forEach(t=>a.searchParams.delete(t)),window.history.replaceState({},"",a.toString());}function Gt(){let s=k(),{token:{setToken:a}}=i(),t=new URLSearchParams(window.location.search),e=t.get("ticket"),o=t.get("unregistered")==="true",[r,c]=useState(o),{data:i$1,isLoading:n,error:l$1}=useQuery({queryKey:l.auth.ticketLogin(e),queryFn:()=>s.get("/api/usystem/user/login",{searchParams:{ticket:e}}),enabled:!!e,retry:false,refetchOnWindowFocus:false,refetchOnReconnect:false});return useEffect(()=>{i$1?.token&&(a(i$1.token),wt(["ticket","unregistered"]));},[i$1,a]),{isLoading:n,error:l$1,isUnregistered:r,dismissUnregistered:()=>{c(false),o&&wt(["unregistered"]);}}}var n3=({extra:s,title:a})=>{let{token:{token:t},context:{homePath:e}}=i(),{t:o}=a$1(),{isLoading:r,isUnregistered:c,dismissUnregistered:i$1}=Gt(),n=`${d}/login?service=${encodeURIComponent(window.location.href)}`;return r?jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})}):t?jsx(Navigate,{replace:true,to:e}):jsxs("div",{className:"w-screen h-screen relative overflow-hidden bg-linear-to-br from-blue-50 via-indigo-50/50 to-purple-50",children:[s&&jsx("div",{className:"absolute top-6 right-6 z-20 md:top-16 md:right-16",children:s}),jsx("div",{className:"absolute left-6 top-6 z-20 md:left-14 md:top-10",children:jsxs(Space,{align:"center",size:"large",children:[jsx(e1,{width:48}),a&&jsx("span",{className:"text-xl md:text-2xl font-bold bg-linear-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent",children:a})]})}),jsxs("div",{className:"w-full h-full flex items-center justify-center relative px-4 md:px-0",children:[jsx("div",{className:"hidden lg:flex absolute top-0 left-0 bottom-0 right-[550px] justify-center items-center",children:jsx("img",{src:Pt,alt:"background",className:"w-5/6 max-w-full h-auto object-contain"})}),jsx("div",{className:"relative z-10 w-full max-w-[450px] lg:absolute lg:right-[10%] lg:top-1/2 lg:-translate-y-3/4 lg:w-[450px]",children:jsx(Card,{className:"shadow-2xl rounded-2xl overflow-hidden backdrop-blur-sm border-0 transition-all duration-300 hover:shadow-[0_20px_60px_-15px_rgba(0,0,0,0.3)]",style:{background:"rgba(255, 255, 255, 0.98)",border:"1px solid rgba(0, 0, 0, 0.06)"},variant:"outlined",children:jsxs("div",{className:"px-2 py-1",children:[c&&jsx(Alert,{banner:true,closable:true,message:o("SignIn.unregistered"),type:"error",className:"mb-6 rounded-lg border-0",onClose:i$1}),jsx("div",{className:"mb-8 text-center",children:jsx("div",{className:"mt-4 mb-2",children:jsx(Typography.Title,{level:2,className:"mb-0! text-3xl! font-semibold bg-linear-to-r from-gray-800 via-gray-700 to-gray-600 bg-clip-text text-transparent",children:o("SignIn.welcome")})})}),jsx(Divider,{className:"my-6"}),jsx(Button,{block:true,type:"primary",size:"large",icon:jsx(LoginOutlined,{}),href:n,target:"_self",className:"h-12 text-base font-medium shadow-md hover:shadow-lg transition-all duration-200 hover:scale-[1.02]",children:o("SignIn.signInWithIDass")})]})})})]})]})},i3=n3;
|
|
1
|
+
import {a as a$3,e}from'./chunk-P5T74EXP.js';export{a as FilterFormWrapper,b as Highlight,e as QueryList,d as QueryListAction,c as useQueryListStore}from'./chunk-P5T74EXP.js';export{a as AuthButton,d as useFormModal,c as useModal,b as useModalStore}from'./chunk-5QAEUAZE.js';import {a as a$1}from'./chunk-D5YXBSTI.js';import {a as a$2,c}from'./chunk-JDCSIJL7.js';export{a as useAuth,c as useGames,b as useMenuList}from'./chunk-JDCSIJL7.js';import {i,a,j,k,b,d,l}from'./chunk-F2GDEOP4.js';export{e as APP_ID_HEADER,f as FRONTEND_ROUTE_PREFIX,g as PermissionMode,d as SSO_URL,j as ToolkitsProvider,h as WILDCARD,a as createVisibilityStore,b as generateId,c as mixedStorage,i as useToolkitsStore}from'./chunk-F2GDEOP4.js';import {PlusOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined,LoginOutlined}from'@ant-design/icons';import {Typography,theme,Layout,Select,Form,Spin,Result,Table,Button,Empty,Space,Input,Tag,Menu,Dropdown,Divider,Drawer,Card,Alert}from'antd';import {forwardRef,memo,lazy,useState,useRef,useMemo,useEffect,useImperativeHandle,cloneElement,Fragment as Fragment$1,Suspense,useCallback}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useInfiniteQuery,useQueryClient,useQuery}from'@tanstack/react-query';import {isEqual}from'lodash-es';import {create}from'zustand';import {persist,createJSONStorage,devtools,subscribeWithSelector}from'zustand/middleware';import {Link,Routes,Route,Navigate,useLocation,useNavigate}from'react-router-dom';import Qe from'dayjs';var Ut=s=>{let{initialTags:a,addable:t,removable:e,addCallback:o,removeCallback:r}=s,{t:c}=a$1(),{token:i}=theme.useToken(),[n,l]=useState([]),[d,p]=useState(false),[h,m]=useState(""),[g,S]=useState(-1),[P,y]=useState(""),x=useRef(null),G=useRef(null);useEffect(()=>{l(a??[]);},[a]),useEffect(()=>{d&&x.current?.focus();},[d]),useEffect(()=>{G.current?.focus();},[h]);let b=async f=>{if(await r?.(f)){let _=n.filter(H=>H!==f);l(_);}},k=()=>{p(true);},E=f=>{m(f.target.value);},V=async()=>{h&&n.indexOf(h)===-1&&await o?.(h)&&l([...n,h]),p(false),m("");},N=f=>{y(f.target.value);},A=()=>{let f=[...n];f[g]=P,l(f),S(-1),m("");};return jsxs(Space,{wrap:true,size:[0,8],children:[jsx(Space,{wrap:true,size:[0,8],children:n.map((f,U)=>g===U?jsx(Input,{ref:G,size:"small",className:"w-[78px] align-top",value:P,onChange:N,onBlur:A,onPressEnter:A},f):jsx(Tag,{closable:e,className:"select-none",onClose:async _=>{_.preventDefault(),await b(f);},children:jsx("span",{onDoubleClick:_=>{U!==0&&(S(U),y(f),_.preventDefault());},children:f})},f))}),t&&(d?jsx(Input,{ref:x,type:"text",size:"small",className:"w-[78px] align-top",value:h,onChange:E,onBlur:V,onPressEnter:V}):jsxs(Tag,{className:"border-dashed",style:{background:i.colorBgContainer},onClick:k,children:[jsx(PlusOutlined,{}),"\xA0",c("global.add")]}))]})},Kt=Ut;var Qt=s=>{let{children:a,...t}=s,[e,o]=useState(false);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:e,onExpand:(r,c)=>{o(c.expanded);}},children:a})},m1=Qt;var ct=Object.freeze({page:0,filters:Object.freeze({})}),Xt=()=>create()(devtools(subscribeWithSelector((s,a)=>({instances:new Map,registerInstance(t,e,o,r,c){s(i=>{let n=i.instances.get(t);if(n){if(n.refetch!==r||n.fetchNextPage!==c){let p={...n,refetch:r,fetchNextPage:c},h=new Map(i.instances);return h.set(t,p),{instances:h}}return i}let l={id:t,url:e,queryKey:o,payload:ct,refetch:r,fetchNextPage:c},d=new Map(i.instances);return d.set(t,l),{instances:d}});},unregisterInstance(t){s(e=>{let o=new Map(e.instances);return o.delete(t)?{instances:o}:e});},updatePayload(t,e){s(o=>{let r=o.instances.get(t);if(!r)return o;let c={...r.payload,...e};if(!isEqual(r.payload,c)){let i={...r,payload:c},n=new Map(o.instances);return n.set(t,i),{instances:n}}return o});},getPayload(t){return a().instances.get(t)?.payload??ct},async refetch(t,e){let o=a().instances.get(t);if(!o){console.warn(`InfiniteList instance with id "${t}" not found`);return}let r=false;if(e){let c=o.payload,i={...c,...e};isEqual(c,i)||(a().updatePayload(t,e),r=true);}if(!r)try{await o.refetch();}catch(c){throw console.error(`Failed to refetch InfiniteList instance "${t}":`,c),c}},async fetchNextPage(t){let e=a().instances.get(t);if(!e){console.warn(`InfiniteList instance with id "${t}" not found`);return}try{await e.fetchNextPage();}catch(o){throw console.error(`Failed to fetch next page for InfiniteList instance "${t}":`,o),o}},getInstance(t){return a().instances.get(t)},getAllInstances(){return Array.from(a().instances.values())}})),{name:"infinite-list-store"})),Yt=Xt(),D=Yt;var n2=300*1e3,i2=30*1e3,l2=0,p2=()=>`infiniteList_${Date.now()}_${++l2}`,d2=(s,a)=>{let e={refreshInterval:0,initialPageParam:0,...s,dataAdapter:{...{items:u=>u?u.flatMap(M=>M?.list||M||[]):[],hasMore:u=>{if(!u)return false;let M=u;return M?.hasMore||M?.has_more||false},nextPageParam:(u,M,X)=>(q=>{if(!q)return false;let J=q;return J?.hasMore||J?.has_more||false})(u)?M.length:void 0},...s.dataAdapter}},{identifier:o,code:r,buttonsAlign:c,showReset:i,refreshInterval:n,request:l,tableExtra:d,renderForm:p,afterSuccess:h,afterError:m,dataAdapter:g,initialPageParam:S,footer:P,form:y,...x}=e,{t:G}=a$1(),[b]=Form.useForm(y),[k$1,E]=useState(false),V=useRef(false),N=useRef(3),A=k(),{data:f,isLoading:U}=a$2(r),_=useMemo(()=>o||p2(),[o]),H=D(u=>u.getPayload(_)),K=useMemo(()=>b,[b]),{url:Z,method:Dt="GET",body:g1,params:_1,headers:r1,cacheTime:zt=n2,staleTime:kt=i2}=l,S1=useMemo(()=>typeof r1=="function"?r1(K):r1,[r1,K]),M1=useMemo(()=>["infiniteList",Z,_,f,k$1,H,S1],[Z,_,f,k$1,H,S1]),{data:c1,fetchNextPage:C1,hasNextPage:K1,isFetchingNextPage:q1,refetch:B1,isFetching:Q1}=useInfiniteQuery({queryKey:M1,queryFn:async({pageParam:u=S})=>{try{let M=H,X=typeof _1=="function"?_1(M,u):_1,Y=typeof g1=="function"?g1(M,u):g1,q={method:Dt,searchParams:X,headers:S1};Y&&(Y instanceof FormData?q.body=Y:q.json=Y);let J=await A.request({url:Z,...q});return V.current=!0,h?.(N.current,K,[J]),J}catch(M){let X=M instanceof Error?M:new Error(String(M));throw m?.(X,N.current,K),X}},initialPageParam:S,getNextPageParam:(u,M)=>g?.nextPageParam?.(u,M,S),enabled:f&&k$1,retry:(u,M)=>!(u>=3||M?.message?.includes("401")),retryDelay:u=>Math.min(1e3*2**u,3e4),refetchOnWindowFocus:false,refetchInterval:V.current?n:0,gcTime:zt,staleTime:kt});useEffect(()=>(D.getState().registerInstance(_,Z,M1,B1,C1),()=>{D.getState().unregisterInstance(_);}),[_,Z,M1,B1,C1]);let n1=g?.items?.(c1?.pages,K),v1=q1,W1=!K1,Et=!n1||n1.length===0,j1=async()=>{N.current=0;let u=await b.getFieldsValue();try{await b.validateFields(),E(!0),D.getState().refetch(_,{page:0,filters:u});}catch{E(false);}},Nt=()=>{N.current=2,C1();},Lt=async()=>{N.current=1;try{b.resetFields();let u=await b.getFieldsValue();D.getState().updatePayload(_,{page:0,filters:u}),await b.validateFields({validateOnly:!0}),D.getState().refetch(_);}catch{}};if(useEffect(()=>{setTimeout(()=>{f&&b.validateFields({validateOnly:true}).then(u=>{E(true),D.getState().updatePayload(_,{page:0,filters:u});}).catch(()=>{E(false);});},300);},[f,b,_]),useImperativeHandle(a,()=>({data:c1?.pages,dataSource:n1,form:b,refetch:()=>D.getState().refetch(_),fetchNextPage:()=>D.getState().fetchNextPage(_),hasNextPage:!!K1,isFetchingNextPage:q1})),U)return jsx("div",{className:"flex justify-center items-center h-[300px]",children:jsx(Spin,{})});if(!f)return jsx(Result,{status:403,subTitle:G("global.noEntitlement")});let Tt=P?()=>jsx(Fragment,{children:P(c1?.pages)}):void 0,Vt=()=>typeof d=="function"?d(K,c1?.pages):d,Rt=typeof p=="function"?jsx(a$3,{showReset:i,buttonsAlign:c,isConfirming:Q1,onReset:Lt,onConfirm:j1,children:cloneElement(p(b),{onKeyUp:u=>{u.key==="Enter"&&j1();}})}):jsx(Form,{form:b});return jsxs(Fragment,{children:[Rt,Vt(),jsx("div",{className:"min-h-[400px]",children:jsx(Table,{...x,dataSource:n1,loading:Q1,pagination:false,footer:Tt})}),!Et&&jsx(Button,{block:true,loading:v1,type:"link",htmlType:"button",disabled:v1||W1,onClick:Nt,children:G(v1?"InfiniteList.loadingText":W1?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},m2=forwardRef(d2),f2=m2;var {Text:S2}=Typography,M2=s=>{let{filter:a,options:t}=s,{t:e}=a$1(),{context:{useGameApiV2:o},game:{appId:r,setAppId:c$1}}=i(),{data:i$1,isLoading:n}=c(),l=useQueryClient(),d=useMemo(()=>i$1?.filter(m=>a?.(m)??true),[i$1,a]),p=useMemo(()=>typeof t=="function"?t(d):d?.map(m=>({label:m.name,value:o?m.game_id:m.id})),[t,d,o]),h=m=>{l.invalidateQueries({predicate:g=>{let S=g.queryKey;return !S.includes("/api/game/list")&&!S.includes("/api/usystem/game/all")}}),c$1(m);};return useEffect(()=>{n||(p&&p.length>0?r&&p.some(g=>String(g.value)===String(r))||c$1(p[0]?.value??void 0):(p===void 0||p.length===0)&&c$1(void 0));},[p,n]),jsxs(Space,{children:[jsx(S2,{children:e("GameSelect.label")}),jsx(Select,{showSearch:true,optionFilterProp:"label",value:r,placeholder:e("GameSelect.placeholder"),loading:n,className:"w-[250px]",options:p,onChange:h})]})},b1=M2;var F1=create()(persist((s,a)=>({openKeys:[],setOpenKeys:t=>{let e=a();(e.openKeys.length!==t.length||!e.openKeys.every((o,r)=>o===t[r]))&&s({openKeys:t});},selectedKeys:[],setSelectedKeys:t=>{let e=a();(e.selectedKeys.length!==t.length||!e.selectedKeys.every((o,r)=>o===t[r]))&&s({selectedKeys:t});}}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:s=>({openKeys:s.openKeys,selectedKeys:s.selectedKeys}),skipHydration:false,version:1}));var P2=s=>jsx(Link,{to:s.to,children:s.children});function P1(s){let a=[];if(!s)return a;for(let t=0;t<s.length;t++){let e=s[t];if(e===null||e.type==="divider"){a[t]=e;continue}if(e.children){let{children:n,...l}=e;a[t]={...l,children:P1(n)};continue}let{route:o,label:r,...c}=e,i=o?jsx(P2,{to:o,children:r}):r;a[t]={...c,label:i};}return a}function w1(s,a=[],t=[]){for(let e of s){if(!e)continue;let o=e?.children;if(Array.isArray(o)){let r=e.type!=="group"&&e.key?[...t,e.key]:t;w1(o,a,r);}else a.push({...e,keypath:t});}return a}var k2=s=>{let{items:a=[],theme:t,loading:e}=s,o=useLocation(),{layout:{collapsed:r}}=i(),c=w1(a),i$1=P1(a),{openKeys:n,selectedKeys:l,setOpenKeys:d,setSelectedKeys:p}=F1();return useEffect(()=>{let h=c.find(m=>o.pathname===m.route);if(h){let m=h.key,g=h.keypath,{selectedKeys:S,openKeys:P}=F1.getState();S[0]!==m&&p([m]);let y=g.filter(x=>!P.includes(x));y.length>0&&d([...P,...y]);}},[c,o.pathname,d,p]),e?jsx("div",{className:"flex justify-center items-center h-[calc(100vh-64px)]",children:jsx(Spin,{})}):jsx(Menu,{theme:t,className:"border-r-0",items:i$1,mode:"inline",defaultOpenKeys:n,defaultSelectedKeys:l,inlineCollapsed:r,onOpenChange:d})},D1=k2;var T2=({children:s})=>{let{context:{isGlobalMode:a,gameScoped:t},game:{appId:e}}=i(),{isLoading:o}=c(),{t:r}=a$1();return !t||a?jsx(Fragment,{children:s}):o?jsx("div",{className:"flex justify-center items-center h-[400px]",children:jsx(Spin,{})}):e?jsx(Fragment$1,{children:s},e):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:r("RequireGame.description")})},z1=memo(T2);var q2=()=>{let{t:s}=a$1(),a=useNavigate(),{token:{user:t},context:{loginPath:e},clear:o}=i(),r=()=>{o(),a(e);},c=l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),r());},i$1=l=>{(l.key==="Enter"||l.key===" ")&&l.preventDefault();},n=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{role:"button",tabIndex:0,onClick:r,onKeyDown:c,children:s("UserDropdown.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:true,items:n},placement:"bottomRight",children:jsx("a",{role:"button",tabIndex:0,onClick:l=>{l.preventDefault();},onKeyDown:i$1,children:jsxs(Space,{align:"center",children:[jsx("span",{children:t?.authorityId}),jsx(UserOutlined,{className:"text-base"})]})})})})},k1=q2;var ht="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAydpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmIwZjhiZTkwLCAyMDIxLzEyLzE1LTIxOjI1OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuMiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEY2MEZENUIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEY2MEZENkIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwRjYwRkQzQjEwRTExRUNBREU4RjM1RkZGNDY1RjI0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwRjYwRkQ0QjEwRTExRUNBREU4RjM1RkZGNDY1RjI0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K5OQMAAAImdJREFUeNrs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";var W2=s=>jsx("img",{src:ht,alt:"logo",...s}),e1=W2;var Q="all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",xt=memo(({title:s,subtitle:a})=>{let{context:{homePath:t},layout:{collapsed:e}}=i(),{token:{colorPrimary:o}}=theme.useToken();return jsxs("div",{className:"px-6 py-2 font-bold relative bg-linear-to-r from-white to-gray-50/30 h-auto flex flex-col justify-center backdrop-blur-sm",children:[jsxs("div",{className:`flex items-center w-full ${e?"justify-center":""}`,children:[jsx(Link,{to:t,className:"transition-all duration-300 ease-out block rounded-lg p-1",style:{transition:Q,opacity:e?.8:1},children:jsx(e1,{width:36,className:"object-contain block",style:{transition:Q}})}),s&&jsx("div",{className:"ml-4 overflow-hidden min-w-0",style:{transition:Q,opacity:e?0:1,width:e?"0px":"auto",marginLeft:e?"0px":"16px",transform:e?"translateX(-8px)":"translateX(0)"},children:jsx(Link,{to:t,className:"text-xl leading-tight transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block",title:s,style:{color:o,textShadow:"0 1px 2px rgba(0, 0, 0, 0.05)"},children:s})})]}),jsx("div",{className:"w-full mt-2 overflow-hidden",style:{height:a&&!e?"20px":"1px",transition:Q},children:jsxs("div",{className:"flex items-center justify-center h-full w-full",children:[jsx("div",{className:"w-full border-t border-gray-200 absolute",style:{opacity:!a||e?1:0,transition:Q}}),a&&jsxs("div",{className:"flex items-center w-full text-sm",style:{opacity:e?0:1,transform:e?"translateY(-3px)":"translateY(0)",transition:Q},children:[jsx("div",{className:"flex-1 border-t border-gray-200"}),jsx("span",{className:"px-3 text-gray-500 font-medium whitespace-nowrap",title:a,children:a}),jsx("div",{className:"flex-1 border-t border-gray-200"})]})]})})]})});xt.displayName="LayoutHeader";var gt=xt;var {Header:se,Sider:oe,Content:re}=Layout,ce=64,ne=(s,a)=>{if(typeof a=="string"){if(a.endsWith("*")){let t=a.slice(0,-1);return s.startsWith(t)}return s===a}return a instanceof RegExp?a.test(s):false},ie=s=>{let{title:a,subtitle:t,navigation:e,gameSelect:o,headerExtra:r,children:c}=s,i$1=useLocation(),{token:{colorBgContainer:n,colorBorder:l}}=theme.useToken(),{context:{sidebarWidth:d,sidebarCollapsible:p,gameScoped:h,isGlobalMode:m},layout:{collapsed:g,toggleCollapsed:S}}=i(),y=!(o?.hideOnRoutes&&o.hideOnRoutes.length>0?o.hideOnRoutes.some(x=>ne(i$1.pathname,x)):false)&&h&&!m;return jsxs(Layout,{children:[jsxs(oe,{collapsible:p,theme:"light",trigger:null,collapsed:g,width:d,className:"h-screen overflow-x-hidden overflow-y-auto border-r",style:{borderColor:l},children:[jsx(gt,{title:a,subtitle:t}),jsx(D1,{items:e?.items,loading:e?.loading})]}),jsxs(Layout,{children:[jsx(se,{className:"px-6",style:{background:n},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[p&&jsx(Button,{type:"text",icon:g?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),className:"text-base",onClick:S}),y&&jsx(b1,{filter:o?.filter,options:o?.options}),r?.left?.map(x=>jsx("span",{children:x.children},x.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[r?.right?.map(x=>jsx("span",{children:x.children},x.key)),jsx(k1,{})]})]})}),jsx(re,{className:"overflow-auto px-4 py-6",style:{maxHeight:`calc(100vh - ${ce}px)`},children:jsx(Suspense,{fallback:jsx("div",{className:"flex justify-center items-center h-[200px]",children:jsx(Spin,{})}),children:jsx(z1,{children:c})})})]})]})},le=ie;var ue=s=>{let{code:a,config:t,redirectPath:e="/",children:o}=s,{data:r,isLoading:c}=a$2(a,t),{t:i}=a$1(),n=useNavigate();return c?jsx("div",{className:"flex justify-center items-center h-[200px]",children:jsx(Spin,{})}):r?jsx(Fragment,{children:o}):jsx(Result,{status:"403",subTitle:i("global.noEntitlement"),extra:jsx(Button,{type:"primary",onClick:()=>n(e),children:i("global.back")})})},he=ue;var N1=a();function T1(s){let{content:a,onConfirm:t,afterOpen:e,afterClose:o,footer:r,confirmText:c="\u786E\u8BA4",cancelText:i="\u53D6\u6D88",confirmButtonProps:n,cancelButtonProps:l,...d}=s,p=useMemo(()=>b(),[]),{show:h,hide:m,isOpen:g,cleanup:S}=N1();useEffect(()=>()=>{S(p);},[p,S]);let P=g(p),[y,x]=useState(false),G=typeof a=="function",b$1=useCallback(async()=>{h(p),await e?.();},[p,h,e]),k=useCallback(()=>{m(p);},[p,m]),E=useCallback(async()=>{k(),await o?.();},[k,o]),V=useCallback(async()=>{try{x(!0),await t?.();}catch(f){throw console.error("Drawer confirm error:",f),f}finally{x(false);}},[t]),N=r!==void 0?jsx(Fragment,{children:r}):jsxs("div",{className:"flex gap-4 mx-4",children:[jsx(Button,{type:"primary",loading:y,...n,onClick:V,children:c}),jsx(Button,{...l,onClick:E,children:i})]}),A=jsx(Drawer,{...d,open:P,footer:N,onClose:E,children:G?jsx(Fragment,{children:a({hide:k})}):jsx(Fragment,{children:a})});return {id:p,show:b$1,hide:k,confirmLoading:y,drawer:A}}function Ie(s){let{content:a,form:t,formProps:e,onConfirm:o,onSuccess:r,afterClose:c,...i}=s,[n,l]=useState({}),[d]=Form.useForm(t),p=typeof a=="function",{id:h,show:m,hide:g,drawer:S}=T1({...i,content:y=>jsx(Form,{...e,form:d,children:p?jsx(Fragment,{children:a(n,y)}):jsx(Fragment,{children:a})}),onConfirm:async()=>{try{let y=await d.validateFields();await o?.(y,n),r?.(),g();}catch(y){throw console.error("Form validation or submission error:",y),y}},afterClose:()=>{l({}),c?.(d);}}),P=useCallback(y=>{let{initialValues:x,extraValues:G}=y||{};G!==void 0&&l(G),x&&d.setFieldsValue(x),m();},[d,m]);return {id:h,show:P,hide:g,drawer:S}}var Fe=lazy(()=>import('./menuItemList-5QGQYB3N.js')),Pe=lazy(()=>import('./createMenuItem-Q5TJGFKZ.js')),we=lazy(()=>import('./updateMenuItem-4HDRJAY7.js')),Ge=jsx(j,{isGlobalMode:true,children:jsxs(Routes,{children:[jsx(Route,{index:true,element:jsx(Fe,{})}),jsx(Route,{path:"create",element:jsx(Pe,{})}),jsx(Route,{path:"update/:id",element:jsx(we,{})})]})});var Ee=lazy(()=>import('./userList-7CQLR3HK.js')),Ne=lazy(()=>import('./userDetail-B5H4A4X2.js')),Le=lazy(()=>import('./roleList-ATJYWJ6Q.js')),Te=lazy(()=>import('./roleDetail-ODJVDVB4.js')),Ve=jsx(j,{isGlobalMode:true,children:jsxs(Routes,{children:[jsx(Route,{index:true,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(Ee,{})}),jsx(Route,{path:"user/:id",element:jsx(Ne,{})}),jsx(Route,{path:"role",element:jsx(Le,{})}),jsx(Route,{path:"role/:name",element:jsx(Te,{})})]})});var Ke=s=>{let{redirectUrl:a}=s,t=useNavigate(),{t:e}=a$1();return jsx("div",{className:"text-center",children:jsx(Result,{status:"404",title:"404",subTitle:e("NotFound.subTitle"),extra:a&&jsx(Button,{type:"primary",onClick:()=>{t(a);},children:e("NotFound.buttonText")})})})},qe=Ke;var {Option:It}=Select,We=()=>{let{t:s}=a$1(),a=[{key:"username",title:s("global.username"),dataIndex:"uname",width:100},{key:"label",title:s("global.label"),dataIndex:"label",width:150},{key:"method",title:s("global.method"),dataIndex:"method",width:100},{key:"route",title:s("global.route"),dataIndex:"route",width:200},{key:"request",title:s("global.request"),dataIndex:"request",render(t){return jsx(m1,{children:t})}},{key:"response",title:s("global.response"),dataIndex:"response",render(t){return jsx(m1,{children:t})}},{key:"creation_time",title:s("global.creationTime"),dataIndex:"ctime",width:200,render(t){return Qe(t).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(e,{identifier:"operation-log-list",rowKey:"id",code:"300001",columns:a,tableLayout:"fixed",request:{url:"/api/usystem/log/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List}),renderForm:t=>jsxs(Form,{form:t,layout:"inline",children:[jsx(Form.Item,{label:s("global.username"),name:"uname",children:jsx(Input,{allowClear:true})}),jsx(Form.Item,{label:s("global.route"),name:"route",children:jsx(Input,{allowClear:true})}),jsx(Form.Item,{label:s("global.method"),name:"method",children:jsxs(Select,{allowClear:true,className:"w-[100px]",children:[jsx(It,{value:"get",children:"GET"}),jsx(It,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:s("global.label"),name:"label",children:jsx(Input,{allowClear:true})})]})})})},je=We;var Pt='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';function wt(s){let a=new URL(window.location.href);s.forEach(t=>a.searchParams.delete(t)),window.history.replaceState({},"",a.toString());}function Gt(){let s=k(),{token:{setToken:a}}=i(),t=new URLSearchParams(window.location.search),e=t.get("ticket"),o=t.get("unregistered")==="true",[r,c]=useState(o),{data:i$1,isLoading:n,error:l$1}=useQuery({queryKey:l.auth.ticketLogin(e),queryFn:()=>s.get("/api/usystem/user/login",{searchParams:{ticket:e}}),enabled:!!e,retry:false,refetchOnWindowFocus:false,refetchOnReconnect:false});return useEffect(()=>{i$1?.token&&(a(i$1.token),wt(["ticket","unregistered"]));},[i$1,a]),{isLoading:n,error:l$1,isUnregistered:r,dismissUnregistered:()=>{c(false),o&&wt(["unregistered"]);}}}var n3=({extra:s,title:a})=>{let{token:{token:t},context:{homePath:e}}=i(),{t:o}=a$1(),{isLoading:r,isUnregistered:c,dismissUnregistered:i$1}=Gt(),n=`${d}/login?service=${encodeURIComponent(window.location.href)}`;return r?jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})}):t?jsx(Navigate,{replace:true,to:e}):jsxs("div",{className:"w-screen h-screen relative overflow-hidden bg-linear-to-br from-blue-50 via-indigo-50/50 to-purple-50",children:[s&&jsx("div",{className:"absolute top-6 right-6 z-20 md:top-16 md:right-16",children:s}),jsx("div",{className:"absolute left-6 top-6 z-20 md:left-14 md:top-10",children:jsxs(Space,{align:"center",size:"large",children:[jsx(e1,{width:48}),a&&jsx("span",{className:"text-xl md:text-2xl font-bold bg-linear-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent",children:a})]})}),jsxs("div",{className:"w-full h-full flex items-center justify-center relative px-4 md:px-0",children:[jsx("div",{className:"hidden lg:flex absolute top-0 left-0 bottom-0 right-[550px] justify-center items-center",children:jsx("img",{src:Pt,alt:"background",className:"w-5/6 max-w-full h-auto object-contain"})}),jsx("div",{className:"relative z-10 w-full max-w-[450px] lg:absolute lg:right-[10%] lg:top-1/2 lg:-translate-y-3/4 lg:w-[450px]",children:jsx(Card,{className:"shadow-2xl rounded-2xl overflow-hidden backdrop-blur-sm border-0 transition-all duration-300 hover:shadow-[0_20px_60px_-15px_rgba(0,0,0,0.3)]",style:{background:"rgba(255, 255, 255, 0.98)",border:"1px solid rgba(0, 0, 0, 0.06)"},variant:"outlined",children:jsxs("div",{className:"px-2 py-1",children:[c&&jsx(Alert,{banner:true,closable:true,message:o("SignIn.unregistered"),type:"error",className:"mb-6 rounded-lg border-0",onClose:i$1}),jsx("div",{className:"mb-8 text-center",children:jsx("div",{className:"mt-4 mb-2",children:jsx(Typography.Title,{level:2,className:"mb-0! text-3xl! font-semibold bg-linear-to-r from-gray-800 via-gray-700 to-gray-600 bg-clip-text text-transparent",children:o("SignIn.welcome")})})}),jsx(Divider,{className:"my-6"}),jsx(Button,{block:true,type:"primary",size:"large",icon:jsx(LoginOutlined,{}),href:n,target:"_self",className:"h-12 text-base font-medium shadow-md hover:shadow-lg transition-all duration-200 hover:scale-[1.02]",children:o("SignIn.signInWithIDass")})]})})})]})]})},i3=n3;
|
|
2
2
|
export{Kt as DynamicTags,m1 as ExpandableParagraph,b1 as GameSelect,f2 as InfiniteList,le as Layout,e1 as Logo,D1 as Nav,qe as NotFound,je as OperationLogList,he as RequireAuth,z1 as RequireGame,i3 as SignIn,k1 as UserDropdown,Ge as menu,Ve as permission,T1 as useDrawer,N1 as useDrawerStore,Ie as useFormDrawer,D as useInfiniteListStore};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {c}from'./chunk-FIT6S4UM.js';import {c as c$1,e,b as b$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=menuItemList-
|
|
1
|
+
import {c}from'./chunk-FIT6S4UM.js';import {c as c$1,e,b as b$1}from'./chunk-P5T74EXP.js';import {a}from'./chunk-D5YXBSTI.js';import {b}from'./chunk-JDCSIJL7.js';import'./chunk-F2GDEOP4.js';import {App,Card,Space,Button,Popconfirm}from'antd';import {useNavigate}from'react-router-dom';import {jsx,Fragment,jsxs}from'react/jsx-runtime';var M=()=>{let{t:i}=a(),{message:c$2}=App.useApp(),y=c(),{refetch:f}=c$1(),{refetch:g}=b(),m=useNavigate();return jsx(Fragment,{children:jsx(Card,{title:"\u83DC\u5355\u7BA1\u7406",extra:jsx(Button,{type:"primary",onClick:()=>{m("./create");},children:"\u521B\u5EFA\u83DC\u5355\u9879"}),children:jsx(e,{identifier:"menu-item-list",onePage:true,code:"9900001",rowKey:"id",columns:[{title:"\u83DC\u5355\u540D\u79F0",dataIndex:"category",key:"category"},{title:"\u524D\u7AEF\u8DEF\u7531",dataIndex:"front_route"},{title:"Order",dataIndex:"order"},{title:"Is Common",dataIndex:"is_common",key:"is_common",render:o=>o?"\u662F":"\u5426"},{title:"\u6A21\u677F\u540D\u79F0",dataIndex:"model_name",key:"model_name"},{title:"\u64CD\u4F5C",key:"action",width:150,align:"center",render(o,t){return t.is_model?jsxs(Space,{size:"small",children:[jsx(Button,{type:"link",onClick:()=>{m(`./update/${t.id}`);},children:i("global.update")}),jsx(Popconfirm,{title:"\u5220\u9664\u83DC\u5355",placement:"topRight",description:jsxs(b$1,{texts:[t.category],children:["\u786E\u5B9A\u8981\u5220\u9664\u83DC\u5355 ",t.category," \u5417\uFF1F"]}),onConfirm:async()=>{await y.mutateAsync(t.id),f("menu-item-list"),g(),c$2.success("\u5220\u9664\u6210\u529F");},children:jsx(Button,{danger:true,type:"link",size:"small",children:i("global.delete")})})]}):null}}],request:{url:"/api/usystem/menu/list",method:"GET"},dataAdapter:o=>({items:o})})})})},S=M;export{S as default};//# sourceMappingURL=menuItemList-5QGQYB3N.js.map
|
|
2
|
+
//# sourceMappingURL=menuItemList-5QGQYB3N.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":["MenuItemList","t","useTranslation","message","App","remove","useRemoveMenu","refetch","useQueryListStore","refetchMenuList","useMenuList","navigate","useNavigate","jsx","Fragment","Card","Button","QueryList_default","value","_","record","jsxs","Space","Popconfirm","Highlight_default","data","menuItemList_default"],"mappings":"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","file":"menuItemList-
|
|
1
|
+
{"version":3,"sources":["../src/modules/menu/pages/menuItemList/index.tsx"],"names":["MenuItemList","t","useTranslation","message","App","remove","useRemoveMenu","refetch","useQueryListStore","refetchMenuList","useMenuList","navigate","useNavigate","jsx","Fragment","Card","Button","QueryList_default","value","_","record","jsxs","Space","Popconfirm","Highlight_default","data","menuItemList_default"],"mappings":"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","file":"menuItemList-5QGQYB3N.js","sourcesContent":["import type { TableColumnsType } from 'antd'\nimport { App, Button, Card, Popconfirm, Space } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { Highlight } from '@/components/highlight'\nimport { QueryList, useQueryListStore } from '@/components/queryList'\nimport { useTranslation } from '@/locale'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useRemoveMenu } from '../../services'\n\nconst MenuItemList = () => {\n const { t } = useTranslation()\n const { message } = App.useApp()\n const remove = useRemoveMenu()\n const { refetch } = useQueryListStore()\n const { refetch: refetchMenuList } = useMenuList()\n const navigate = useNavigate()\n\n const columns: TableColumnsType<MenuListItem> = [\n {\n title: '菜单名称',\n dataIndex: 'category',\n key: 'category',\n },\n {\n title: '前端路由',\n dataIndex: 'front_route',\n },\n {\n title: 'Order',\n dataIndex: 'order',\n },\n {\n title: 'Is Common',\n dataIndex: 'is_common',\n key: 'is_common',\n render: value => (value ? '是' : '否'),\n },\n {\n title: '模板名称',\n dataIndex: 'model_name',\n key: 'model_name',\n },\n // {\n // title: '是否预设',\n // dataIndex: 'is_model',\n // key: 'is_model',\n // render: value => (value ? '否' : '是'),\n // },\n {\n title: '操作',\n key: 'action',\n width: 150,\n align: 'center',\n render(_, record) {\n if (record.is_model) {\n return (\n <Space size=\"small\">\n <Button\n type=\"link\"\n onClick={() => {\n navigate(`./update/${record.id}`)\n }}\n >\n {t('global.update')}\n </Button>\n <Popconfirm\n title=\"删除菜单\"\n placement=\"topRight\"\n description={<Highlight texts={[record.category]}>确定要删除菜单 {record.category} 吗?</Highlight>}\n onConfirm={async () => {\n await remove.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, MenuListItem[]>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data,\n })}\n />\n </Card>\n </>\n )\n}\n\nexport default MenuItemList\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {c,b as b$1,e as e$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=roleList-
|
|
1
|
+
import {c,b as b$1,e as e$1}from'./chunk-P5T74EXP.js';import {b}from'./chunk-MVG7YFPB.js';import {e}from'./chunk-KZHYK554.js';import {a as a$2}from'./chunk-5QAEUAZE.js';import {a as a$1}from'./chunk-D5YXBSTI.js';import {a}from'./chunk-JDCSIJL7.js';import {k,i}from'./chunk-F2GDEOP4.js';import {UsergroupAddOutlined}from'@ant-design/icons';import {App,Space,Card}from'antd';import {Link}from'react-router-dom';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var O=()=>{let{modal:R,message:g}=App.useApp(),{data:k$1}=a("200005"),{t:e$2}=a$1(),{refetch:s}=c(),L=k(),{context:{permissionMode:T}}=i(),{show:A,modal:C}=b({mode:"create",onSuccess(){s("role-list",{page:1});}}),{show:b$2,modal:w}=b({mode:"update",onSuccess(){s("role-list");}}),I=e(),M=async t=>{let o=await L.get(`/api/usystem/role/${T==="game_scoped"?"info":"infoV2"}?name=${t.name}`);b$2({initialValues:{permissions:o.permissions,name:o.name.replace(/^role_/,"")},extraValues:{id:o?.id}});},S=[{title:e$2("global.name"),key:"name",render(t){return k$1?jsx(Link,{to:`${t.name}`,relative:"path",children:t.name}):jsx(Fragment,{children:t.name})}},{title:"ID",dataIndex:"id",key:"id"},{title:e$2("global.creationTime"),dataIndex:"ctime",key:"ctime"},{title:e$2("global.operation"),width:150,align:"center",render:(t,o)=>jsxs(Space,{size:"small",children:[jsx(a$2,{code:"200003",size:"small",type:"link",onClick:async()=>{M(o);},children:e$2("global.update")}),jsx(a$2,{danger:true,code:"200004",size:"small",type:"link",onClick:()=>{R.confirm({title:e$2("Role.deleteTitle"),content:jsx(b$1,{texts:[o.name],children:e$2("Role.deleteContent",{role:o.name})}),async onOk(){await I.mutateAsync({id:o.id,name:o.name}),s("role-list"),g.success(e$2("Role.deleteSuccessfully"));}});},children:e$2("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:e$2("global.role"),extra:jsx(a$2,{type:"primary",code:"200002",icon:jsx(UsergroupAddOutlined,{}),onClick:()=>{A();},children:e$2("Role.createTitle")}),children:jsx(e$1,{identifier:"role-list",rowKey:"name",columns:S,code:"200001",request:{url:"/api/usystem/role/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List})})}),C,w]})},Q=O;export{Q as default};//# sourceMappingURL=roleList-ATJYWJ6Q.js.map
|
|
2
|
+
//# sourceMappingURL=roleList-ATJYWJ6Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/roleList/index.tsx"],"names":["RoleList","modal","message","App","viewable","useAuth","t","useTranslation","refetch","useQueryListStore","ky","useKy","permissionMode","useToolkitsStore","showCreateModal","createModal","useRoleModal","showUpdateModal","updateModal","remove","useRemoveRole","handleUpdateBtnClick","record","data","columns","value","jsx","Link","Fragment","_","jsxs","Space","AuthButton_default","Highlight_default","Card","UsergroupAddOutlined","QueryList_default","roleList_default"],"mappings":"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","file":"roleList-
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/pages/roleList/index.tsx"],"names":["RoleList","modal","message","App","viewable","useAuth","t","useTranslation","refetch","useQueryListStore","ky","useKy","permissionMode","useToolkitsStore","showCreateModal","createModal","useRoleModal","showUpdateModal","updateModal","remove","useRemoveRole","handleUpdateBtnClick","record","data","columns","value","jsx","Link","Fragment","_","jsxs","Space","AuthButton_default","Highlight_default","Card","UsergroupAddOutlined","QueryList_default","roleList_default"],"mappings":"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","file":"roleList-ATJYWJ6Q.js","sourcesContent":["import { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Space } from 'antd'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useRoleModal } from '../../hooks'\nimport { useRemoveRole } from '../../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../../types'\n\nconst RoleList = () => {\n const { modal, message } = App.useApp()\n const { data: viewable } = useAuth('200005')\n const { t } = useTranslation()\n const { refetch } = useQueryListStore()\n const ky = useKy()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n const { show: showCreateModal, modal: createModal } = useRoleModal({\n mode: 'create',\n onSuccess() {\n refetch('role-list', { page: 1 })\n },\n })\n const { show: showUpdateModal, modal: updateModal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch('role-list')\n },\n })\n\n const remove = useRemoveRole()\n\n const handleUpdateBtnClick = async (record: RoleListItem) => {\n const data = await ky.get<RoleV1 | RoleV2>(\n `/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'info' : 'infoV2'}?name=${record.name}`,\n )\n\n showUpdateModal({\n initialValues: {\n permissions: data.permissions,\n name: data.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data?.id,\n },\n })\n }\n\n const columns: TableColumnsType<RoleListItem> = [\n {\n title: t('global.name'),\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return (\n <Link to={`${value.name}`} relative=\"path\">\n {value.name}\n </Link>\n )\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n return (\n <Space size=\"small\">\n <AuthButton\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n handleUpdateBtnClick(record)\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('Role.deleteTitle'),\n content: (\n <Highlight texts={[record.name]}>{t('Role.deleteContent', { role: record.name })}</Highlight>\n ),\n async onOk() {\n await remove.mutateAsync({\n id: record.id,\n name: record.name,\n })\n\n refetch('role-list')\n\n message.success(t('Role.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <AuthButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('Role.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<RoleListItem, undefined, { List: RoleListItem[]; Total: number }>\n identifier=\"role-list\"\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n request={{\n url: '/api/usystem/role/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default RoleList\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-24U2EF5M.js';import {c,b,e}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=userList-
|
|
1
|
+
import {a as a$1}from'./chunk-24U2EF5M.js';import {c,b,e}from'./chunk-P5T74EXP.js';import {h}from'./chunk-KZHYK554.js';import {a as a$2}from'./chunk-5QAEUAZE.js';import {a}from'./chunk-D5YXBSTI.js';import'./chunk-JDCSIJL7.js';import {i}from'./chunk-F2GDEOP4.js';import {UserAddOutlined}from'@ant-design/icons';import {App,Row,Col,Tag,Space,Card,Form,Input}from'antd';import {Link}from'react-router-dom';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var z=()=>{let{modal:I,message:A}=App.useApp(),{t}=a(),L=h(),{refetch:l}=c(),{context:{permissionMode:a$3}}=i(),m=a$3==="group_based",d=a$3==="direct_game",{show:b$1,modal:w}=a$1({mode:"create",onSuccess(){l("user-list",{page:1});}}),{show:M,modal:S}=a$1({mode:"update",onSuccess(){l("user-list");}}),x=[{title:t("global.name"),dataIndex:"name",key:"name",render(o,r){return m||d?jsx(Link,{to:`./${r.id}`,children:o}):o}},{title:"ID",dataIndex:"id",key:"id"},{title:t("global.role"),dataIndex:"roles",key:"roles",width:"40%",render(o){return jsx(Row,{gutter:[4,4],children:(o||[]).map(r=>jsx(Col,{children:r==="root"?jsx(Tag,{color:"#f50",children:r}):jsx(Tag,{color:"#ff5a00",children:jsx(Link,{to:`../role/${r}`,children:r})})},r))})}},{title:t("global.creationTime"),dataIndex:"Ctime",key:"ctime"},{title:t("global.operation"),width:150,align:"center",render:(o,r)=>{let{name:s,permissions:B,roles:E,id:u}=r;return jsxs(Space,{children:[jsx(a$2,{size:"small",type:"link",code:"100003",onClick:()=>{M({initialValues:{name:s,...m||d?{permissions:B}:{roles:E}},extraValues:{id:u}});},children:t("global.update")}),jsx(a$2,{danger:true,size:"small",code:"100004",type:"link",onClick:()=>{I.confirm({title:t("User.deleteTitle"),content:jsx(b,{texts:[s],children:t("User.deleteContent",{user:s})}),async onOk(){await L.mutateAsync({id:u,name:s}),l("user-list"),A.success(t("User.deleteSuccessfully"));}});},children:t("global.delete")})]})}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Card,{title:t("global.user"),extra:jsx(a$2,{type:"primary",icon:jsx(UserAddOutlined,{}),code:"100002",onClick:()=>{b$1();},children:t("User.createTitle")}),children:jsx(e,{identifier:"user-list",code:"100001",request:{url:"/api/usystem/user/list",method:"GET"},rowKey:"id",columns:x,dataAdapter:o=>({total:o?.Total,items:o?.List}),renderForm:o=>jsx(Form,{form:o,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})})})}),w,S]})},N=z;export{N as default};//# sourceMappingURL=userList-7CQLR3HK.js.map
|
|
2
|
+
//# sourceMappingURL=userList-7CQLR3HK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/pages/userList/index.tsx"],"names":["UserList","modal","message","App","useTranslation","remove","useRemoveUser","refetch","useQueryListStore","permissionMode","useToolkitsStore","isGroupBased","isDirectGame","showCreateModal","createModal","useUserModal","showUpdateModal","updateModal","columns","value","record","jsx","Link","Row","item","Col","Tag","_","name","permissions","roles","id","jsxs","Space","AuthButton_default","Highlight_default","Fragment","Card","UserAddOutlined","QueryList_default","data","form","Form","Input","userList_default"],"mappings":"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","file":"userList-QHQHRPSV.js","sourcesContent":["import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Space, Tag } from 'antd'\nimport { type FC } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal } from '../../hooks'\nimport { useRemoveUser } from '../../services'\nimport type { UserListItem } from '../../types'\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const { t } = useTranslation()\n const remove = useRemoveUser()\n const { refetch } = useQueryListStore()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isDirectGame = permissionMode === PermissionMode.DIRECT_GAME\n\n const { show: showCreateModal, modal: createModal } = useUserModal({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModal, modal: updateModal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch('user-list')\n },\n })\n\n const columns = (\n [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n render(value: string, record) {\n if (isGroupBased || isDirectGame) {\n return <Link to={`./${record.id}`}>{value}</Link>\n }\n return value\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n PermissionMode.GAME_SCOPED && {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`../role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n const { name, permissions, roles, id } = record\n return (\n <Space>\n <AuthButton\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name,\n ...(isGroupBased || isDirectGame ? { permissions } : { roles }),\n },\n extraValues: {\n id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('User.deleteTitle'),\n content: <Highlight texts={[name]}>{t('User.deleteContent', { user: name })}</Highlight>,\n async onOk() {\n await remove.mutateAsync({\n id,\n name,\n })\n refetch('user-list')\n message.success(t('User.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ] as TableColumnsType<UserListItem>\n ).filter(Boolean)\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <AuthButton\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('User.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<UserListItem, { name?: string }, { List: UserListItem[]; Total: number }>\n identifier=\"user-list\"\n code=\"100001\"\n request={{\n url: '/api/usystem/user/list',\n method: 'GET',\n }}\n rowKey=\"id\"\n columns={columns}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n renderForm={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/pages/userList/index.tsx"],"names":["UserList","modal","message","App","useTranslation","remove","useRemoveUser","refetch","useQueryListStore","permissionMode","useToolkitsStore","isGroupBased","isDirectGame","showCreateModal","createModal","useUserModal","showUpdateModal","updateModal","columns","value","record","jsx","Link","Row","item","Col","Tag","_","name","permissions","roles","id","jsxs","Space","AuthButton_default","Highlight_default","Fragment","Card","UserAddOutlined","QueryList_default","data","form","Form","Input","userList_default"],"mappings":"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","file":"userList-7CQLR3HK.js","sourcesContent":["import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Space, Tag } from 'antd'\nimport { type FC } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal } from '../../hooks'\nimport { useRemoveUser } from '../../services'\nimport type { UserListItem } from '../../types'\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const { t } = useTranslation()\n const remove = useRemoveUser()\n const { refetch } = useQueryListStore()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isDirectGame = permissionMode === PermissionMode.DIRECT_GAME\n\n const { show: showCreateModal, modal: createModal } = useUserModal({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModal, modal: updateModal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch('user-list')\n },\n })\n\n const columns = (\n [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n render(value: string, record) {\n if (isGroupBased || isDirectGame) {\n return <Link to={`./${record.id}`}>{value}</Link>\n }\n return value\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n PermissionMode.GAME_SCOPED && {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`../role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n const { name, permissions, roles, id } = record\n return (\n <Space>\n <AuthButton\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name,\n ...(isGroupBased || isDirectGame ? { permissions } : { roles }),\n },\n extraValues: {\n id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('User.deleteTitle'),\n content: <Highlight texts={[name]}>{t('User.deleteContent', { user: name })}</Highlight>,\n async onOk() {\n await remove.mutateAsync({\n id,\n name,\n })\n refetch('user-list')\n message.success(t('User.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ] as TableColumnsType<UserListItem>\n ).filter(Boolean)\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <AuthButton\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('User.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<UserListItem, { name?: string }, { List: UserListItem[]; Total: number }>\n identifier=\"user-list\"\n code=\"100001\"\n request={{\n url: '/api/usystem/user/list',\n method: 'GET',\n }}\n rowKey=\"id\"\n columns={columns}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n renderForm={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-toolkits",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.26.
|
|
4
|
+
"version": "2.26.1",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css"
|
|
7
7
|
],
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@types/node": "^22.9.0",
|
|
52
52
|
"@types/react": "^19.2.6",
|
|
53
53
|
"@types/react-dom": "^19.2.3",
|
|
54
|
-
"antd": "^
|
|
54
|
+
"antd": "^6.0.0",
|
|
55
55
|
"autoprefixer": "^10.4.20",
|
|
56
56
|
"concurrently": "^9.2.1",
|
|
57
57
|
"cssnano": "^7.1.1",
|
package/lib/chunk-IKGXKB6T.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-D5YXBSTI.js';import {a as a$1}from'./chunk-JDCSIJL7.js';import {k}from'./chunk-F2GDEOP4.js';import {Form,Spin,Table,Result,theme,Space,Button}from'antd';import {forwardRef,useMemo,useRef,useState,useEffect,useCallback,cloneElement,useImperativeHandle,Fragment}from'react';import {jsx,jsxs,Fragment as Fragment$1}from'react/jsx-runtime';import {flushSync}from'react-dom';import {createRoot}from'react-dom/client';import {isEqual}from'lodash-es';import {create}from'zustand';import {devtools,subscribeWithSelector}from'zustand/middleware';import {useQuery}from'@tanstack/react-query';var Oe=d=>{let{extras:i,isConfirming:e,onConfirm:s,onReset:t,children:o,buttonsAlign:r="left",showReset:l}=d,{t:u}=a(),{token:{colorFillAlter:I,lineWidth:x,lineType:y,colorBorder:T,borderRadiusLG:V}}=theme.useToken();return jsx("div",{className:"max-w-none p-6 mb-6 border",style:{background:I,borderWidth:x,borderStyle:y,borderColor:T,borderRadius:V},children:jsxs("div",{className:`flex ${r==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${r==="left"?"grow-0":"flex-1"}`,children:o}),jsx("div",{className:`${r==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",disabled:e,onClick:s,children:u("FilterFormWrapper.confirmText")}),i?.map(A=>jsx(Fragment,{children:A.children},A.key)),l&&jsx(Button,{onClick:t,children:u("FilterFormWrapper.resetText")})]})})]})})},N=Oe;var qe=d=>{let i=/(<[^>]*>)/;return d.split(i).filter(e=>e!=="")};function Me(d){let i=document.createElement("div"),e=createRoot(i);return new Promise(s=>{setTimeout(()=>{flushSync(()=>{e.render(d);}),s(i.innerHTML);});})}var We=d=>{let{texts:i,children:e}=d,[s,t]=useState("");return useEffect(()=>{Me(e).then(o=>{let r=qe(o);for(let l of i)for(let u=0;u<r.length;u++)r[u]=r[u].replace(String(l),`<span style='color: #DC143C;'>${l}</span>`);t(r.join(""));});},[e,i]),jsx("div",{dangerouslySetInnerHTML:{__html:s}})},je=We;var ue=Object.freeze({page:1,size:10,filters:Object.freeze({})}),Ke=()=>create()(devtools(subscribeWithSelector((d,i)=>({instances:new Map,registerInstance(e,s,t,o){d(r=>{let l=r.instances.get(e);if(l){if(l.refetch!==o){let x={...l,refetch:o},y=new Map(r.instances);return y.set(e,x),{instances:y}}return r}let u={id:e,url:s,queryKey:t,payload:ue,refetch:o},I=new Map(r.instances);return I.set(e,u),{instances:I}});},unregisterInstance(e){d(s=>{let t=new Map(s.instances);return t.delete(e)?{instances:t}:s});},updatePayload(e,s){d(t=>{let o=t.instances.get(e);if(!o)return t;let r={...o.payload,...s};if(!isEqual(o.payload,r)){let l={...o,payload:r},u=new Map(t.instances);return u.set(e,l),{instances:u}}return t});},getPayload(e){return i().instances.get(e)?.payload??ue},async refetch(e,s){let t=i().instances.get(e);if(!t){console.warn(`QueryList instance with id "${e}" not found`);return}let o=false;if(s){let r=t.payload,l={...r,...s};isEqual(r,l)||(i().updatePayload(e,s),o=true);}if(!o)try{await t.refetch();}catch(r){throw console.error(`Failed to refetch QueryList instance "${e}":`,r),r}},getInstance(e){return i().instances.get(e)},getAllInstances(){return Array.from(i().instances.values())}})),{name:"query-list-store"})),Ue=Ke(),m=Ue;var me=(t=>(t[t.Confirm=0]="Confirm",t[t.Reset=1]="Reset",t[t.Jump=2]="Jump",t[t.Init=3]="Init",t))(me||{}),rt=300*1e3,nt=30*1e3,pe=["GET","HEAD","OPTIONS"],at=["POST","PUT","PATCH","DELETE"],st=0,ot=()=>`queryList_${Date.now()}_${++st}`,it=(d,i)=>{let{t:e}=a(),{form:s,identifier:t,code:o,onePage:r,buttonsAlign:l,showReset:u,defaultSize:I=10,refreshInterval:x=0,tableExtra:y,renderForm:T,afterSuccess:V,afterError:A,footer:K,pageSizeOptions:U,request:H,dataAdapter:B,...ye}=d,[a$2]=Form.useForm(s),f=useMemo(()=>t||ot(),[t]),R=useRef(3),{data:E,isLoading:ge}=a$1(o),[he,L]=useState(false),q=useRef(false),M=useRef(false),be=m(n=>n.getPayload(f)),Ie=k(),{page:Q,size:S=I,filters:h}=be,Le=typeof H=="function"?H({page:Q,size:S,filters:h}):H,{url:v,method:$="GET",body:G,searchParams:W,headers:Pe,cacheTime:Fe=rt,staleTime:xe=nt}=Le,D=$.toUpperCase();[...pe,...at].includes(D)||console.warn(`QueryList: \u4E0D\u652F\u6301\u7684 HTTP \u8BF7\u6C42\u65B9\u6CD5 "${$}"\uFF0C\u5C06\u4F7F\u7528 GET \u65B9\u6CD5`);let J=pe.includes(D),Y={...h,...!r&&{page:Q,size:S}},p,P;G!==void 0?(p=G,P=W):W!==void 0?(P=W,p=void 0):J?(P=Y,p=void 0):(p=Y,P=void 0);let X=Pe,Z=useRef(false),ee=["queryList",v,f,D,Q,S,h,p,P,X],{data:g,isLoading:te,refetch:j}=useQuery({queryKey:ee,queryFn:async()=>{try{let n={method:D,searchParams:P,headers:X};p&&!J&&(p instanceof FormData||typeof p=="string"?n.body=p:n.json=p);let c=await Ie.request({url:v,...n});return Z.current=!0,V?.(R.current,a$2,c),c}catch(n){let c=n instanceof Error?n:new Error(String(n));throw A?.(c,R.current,a$2),c}},retry:(n,c)=>!(n>=3||c?.message?.includes("401")),retryDelay:n=>Math.min(1e3*2**n,3e4),refetchOnWindowFocus:false,refetchInterval:Z.current?x:0,gcTime:Fe,staleTime:xe,enabled:E&&he}),re=useMemo(()=>{let n=B,c={total:g?.total,items:g?.list};return typeof n=="function"?{...c,...n(g)}:{...c,...n}},[B,g]);useEffect(()=>(m.getState().registerInstance(f,v,ee,j),()=>{m.getState().unregisterInstance(f);}),[f,v]);let k$1=re.items,ne=re.total,Re=useMemo(()=>r?false:{pageSizeOptions:U,showSizeChanger:true,showQuickJumper:true,current:Q,pageSize:S,total:ne,onChange:async(n,c)=>{R.current=2,m.getState().refetch(f,{page:n,size:c});}},[r,U,Q,S,ne,f]),ae=useCallback(async()=>{R.current=0;try{await a$2.validateFields(),L(!0),m.getState().refetch(f,{page:1,filters:a$2.getFieldsValue()});}catch{L(false);}},[a$2,f]),Qe=useCallback(async()=>{R.current=1,a$2.resetFields();try{await a$2.validateFields({validateOnly:!0}),L(!0),m.getState().refetch(f,{page:1,filters:a$2.getFieldsValue()});}catch{L(false);}},[a$2,f]),Se=typeof T=="function"?jsx(N,{showReset:u,buttonsAlign:l,isConfirming:te,onReset:Qe,onConfirm:ae,children:cloneElement(T(a$2),{onKeyUp:n=>{n.key==="Enter"&&ae();}})}):jsx(Form,{form:a$2}),Te=typeof y=="function"?y(a$2,g):y,Ae=K?()=>jsx(Fragment$1,{children:K(g)}):void 0;return useEffect(()=>{if(!q.current||M.current)return;let n=a$2.getFieldsValue();h&&!isEqual(n,h)&&(M.current=true,a$2.setFieldsValue(h),setTimeout(()=>{M.current=false;},0));},[h,a$2]),useEffect(()=>{if(!E||q.current)return;let n=async()=>{console.log("QueryList init starting");try{a$2.resetFields();let O=await a$2.validateFields({validateOnly:!0});console.log("QueryList init validation success:",O),m.getState().updatePayload(f,{page:1,filters:O}),L(!0),console.log("QueryList init completed, isValid set to true");}catch(O){console.log("QueryList init validation failed:",O),L(false);}finally{q.current=true;}},c=requestAnimationFrame(()=>{Promise.resolve().then(n);});return ()=>{c&&cancelAnimationFrame(c);}},[E,f,a$2]),useImperativeHandle(i,()=>({data:g,dataSource:k$1,form:a$2,refetch:j}),[g,k$1,a$2,j]),ge?jsx("div",{className:"flex justify-center items-center h-[300px]",children:jsx(Spin,{})}):E?jsxs("div",{children:[Se,Te,jsx(Table,{...ye,dataSource:k$1,loading:te,pagination:Re,footer:Ae})]}):jsx(Result,{status:403,subTitle:e("global.noEntitlement")})},ct=forwardRef(it),lt=ct;export{N as a,je as b,m as c,me as d,lt as e};//# sourceMappingURL=chunk-IKGXKB6T.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-IKGXKB6T.js.map
|