react-toolkits 2.24.19 → 2.24.20
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/README.md +14 -0
- package/lib/chunk-3VI7KSDA.js +2 -0
- package/lib/{chunk-H5Y4DYUL.js.map → chunk-3VI7KSDA.js.map} +1 -1
- package/lib/chunk-3ZT3BOPJ.js +3 -0
- package/lib/chunk-3ZT3BOPJ.js.map +1 -0
- package/lib/{chunk-D75NVCYN.js → chunk-D5OM3OZU.js} +2 -2
- package/lib/{chunk-D75NVCYN.js.map → chunk-D5OM3OZU.js.map} +1 -1
- package/lib/chunk-F3OT6ENF.js +2 -0
- package/lib/{chunk-UPO7NB6O.js.map → chunk-F3OT6ENF.js.map} +1 -1
- package/lib/chunk-FD52RBG7.js +2 -0
- package/lib/{chunk-ZF7POJAA.js.map → chunk-FD52RBG7.js.map} +1 -1
- package/lib/{chunk-ST7VUWJ4.js → chunk-IWPBGSXS.js} +2 -2
- package/lib/{chunk-ST7VUWJ4.js.map → chunk-IWPBGSXS.js.map} +1 -1
- package/lib/chunk-S4LUEDFA.js +2 -0
- package/lib/{chunk-NNXVZIY2.js.map → chunk-S4LUEDFA.js.map} +1 -1
- package/lib/chunk-SMBHLRAO.js +2 -0
- package/lib/chunk-SMBHLRAO.js.map +1 -0
- package/lib/chunk-XX2BCZJU.js +2 -0
- package/lib/{chunk-MTRFNFEM.js.map → chunk-XX2BCZJU.js.map} +1 -1
- package/lib/{createMenuItem-SXFYDNCW.js → createMenuItem-5DDIEELO.js} +2 -2
- package/lib/{createMenuItem-SXFYDNCW.js.map → createMenuItem-5DDIEELO.js.map} +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +9 -2
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/{menuItemList-NIBRDRTA.js → menuItemList-4ZLZ7HSG.js} +2 -2
- package/lib/{menuItemList-NIBRDRTA.js.map → menuItemList-4ZLZ7HSG.js.map} +1 -1
- package/lib/{roleDetail-7HEBW7IS.js → roleDetail-42BOHDFS.js} +2 -2
- package/lib/{roleDetail-7HEBW7IS.js.map → roleDetail-42BOHDFS.js.map} +1 -1
- package/lib/{roleList-WGLD3HXB.js → roleList-KWWO3IFL.js} +2 -2
- package/lib/{roleList-WGLD3HXB.js.map → roleList-KWWO3IFL.js.map} +1 -1
- package/lib/updateMenuItem-E5QMBR2S.js +2 -0
- package/lib/{updateMenuItem-TECCUD6Z.js.map → updateMenuItem-E5QMBR2S.js.map} +1 -1
- package/lib/userDetail-L7Q3C67K.js +2 -0
- package/lib/{userDetail-WGQJ7IC5.js.map → userDetail-L7Q3C67K.js.map} +1 -1
- package/lib/userList-IU4L5YRJ.js +2 -0
- package/lib/{userList-2S2FRAG6.js.map → userList-IU4L5YRJ.js.map} +1 -1
- package/locale/context.js +1 -7
- package/locale/context.js.map +1 -1
- package/locale/en_GB.js +1 -94
- package/locale/en_GB.js.map +1 -1
- package/locale/hooks.js +1 -18
- package/locale/hooks.js.map +1 -1
- package/locale/index.js +1 -2
- package/locale/ja_JP.js +1 -94
- package/locale/ja_JP.js.map +1 -1
- package/locale/ko_KR.js +1 -94
- package/locale/ko_KR.js.map +1 -1
- package/locale/zh_CN.js +1 -94
- package/locale/zh_CN.js.map +1 -1
- package/package.json +1 -1
- package/lib/chunk-7X2LW6EY.js +0 -73
- package/lib/chunk-7X2LW6EY.js.map +0 -1
- package/lib/chunk-DLTAWT6S.js +0 -2
- package/lib/chunk-DLTAWT6S.js.map +0 -1
- package/lib/chunk-E6L6VKSV.js +0 -227
- package/lib/chunk-E6L6VKSV.js.map +0 -1
- package/lib/chunk-ESCBNFWD.js +0 -498
- package/lib/chunk-ESCBNFWD.js.map +0 -1
- package/lib/chunk-FSXYUF4U.js +0 -276
- package/lib/chunk-FSXYUF4U.js.map +0 -1
- package/lib/chunk-H5Y4DYUL.js +0 -2
- package/lib/chunk-LXMQLSQY.js +0 -46
- package/lib/chunk-LXMQLSQY.js.map +0 -1
- package/lib/chunk-MTRFNFEM.js +0 -2
- package/lib/chunk-NNXVZIY2.js +0 -2
- package/lib/chunk-OH74GXG4.js +0 -570
- package/lib/chunk-OH74GXG4.js.map +0 -1
- package/lib/chunk-P25BHLH3.js +0 -3
- package/lib/chunk-P25BHLH3.js.map +0 -1
- package/lib/chunk-QACSRYJY.js +0 -147
- package/lib/chunk-QACSRYJY.js.map +0 -1
- package/lib/chunk-UPO7NB6O.js +0 -2
- package/lib/chunk-Z6PDWY44.js +0 -17
- package/lib/chunk-Z6PDWY44.js.map +0 -1
- package/lib/chunk-ZF7POJAA.js +0 -2
- package/lib/chunk-ZOHMJAAX.js +0 -120
- package/lib/chunk-ZOHMJAAX.js.map +0 -1
- package/lib/createMenuItem-CICLQWU6.js +0 -86
- package/lib/createMenuItem-CICLQWU6.js.map +0 -1
- package/lib/menuItemList-EHQSS4YZ.js +0 -132
- package/lib/menuItemList-EHQSS4YZ.js.map +0 -1
- package/lib/roleDetail-JCDOXKAM.js +0 -72
- package/lib/roleDetail-JCDOXKAM.js.map +0 -1
- package/lib/roleList-4C77ULPK.js +0 -161
- package/lib/roleList-4C77ULPK.js.map +0 -1
- package/lib/updateMenuItem-K62CKVXP.js +0 -109
- package/lib/updateMenuItem-K62CKVXP.js.map +0 -1
- package/lib/updateMenuItem-TECCUD6Z.js +0 -2
- package/lib/userDetail-WGQJ7IC5.js +0 -2
- package/lib/userDetail-WYN52ZJ2.js +0 -116
- package/lib/userDetail-WYN52ZJ2.js.map +0 -1
- package/lib/userList-2S2FRAG6.js +0 -2
- package/lib/userList-AMVG7RCE.js +0 -195
- package/lib/userList-AMVG7RCE.js.map +0 -1
|
@@ -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","SPIN_STYLE","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-ST7VUWJ4.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 const style = {\n maxWidth: 'none',\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n padding: 24,\n marginBottom: 24,\n }\n\n return (\n <div style={style}>\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'flex-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 => <Fragment key={item.key}>{item.children}</Fragment>)}\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\nconst SPIN_STYLE: React.CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 300,\n}\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 <Spin style={SPIN_STYLE} />\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","SPIN_STYLE","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-IWPBGSXS.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 const style = {\n maxWidth: 'none',\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n padding: 24,\n marginBottom: 24,\n }\n\n return (\n <div style={style}>\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'flex-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 => <Fragment key={item.key}>{item.children}</Fragment>)}\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\nconst SPIN_STYLE: React.CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 300,\n}\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 <Spin style={SPIN_STYLE} />\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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {l as l$1}from'./chunk-3ZT3BOPJ.js';import {template,has,get}from'lodash-es';import {useMemo}from'react';function l(){let t=l$1(e=>e.locale);return {t:useMemo(()=>(e,r)=>has(t,e)?template(get(t,e))(r):e,[t])}}export{l as a};//# sourceMappingURL=chunk-S4LUEDFA.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-S4LUEDFA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/locale/hooks.ts"],"names":["useTranslation","locale","useToolkitsStore","state","useMemo","key","data","has","template","get"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/locale/hooks.ts"],"names":["useTranslation","locale","useToolkitsStore","state","useMemo","key","data","has","template","get"],"mappings":"gHAmBO,SAASA,CAAAA,EAAiB,CAC/B,IAAMC,CAAAA,CAASC,IAAiBC,CAAAA,EAASA,CAAAA,CAAM,MAAM,CAAA,CAQrD,OAAO,CAAE,EANCC,OAAAA,CACR,IAAM,CAACC,CAAAA,CAAoBC,CAAAA,GACzBC,IAAIN,CAAAA,CAAQI,CAAG,EAAIG,QAAAA,CAASC,GAAAA,CAAIR,EAAQI,CAAa,CAAC,EAAEC,CAAI,CAAA,CAAID,EAClE,CAACJ,CAAM,CACT,CAEW,CACb","file":"chunk-S4LUEDFA.js","sourcesContent":["import { get, has, template } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport type { Locale } from './index'\n\ntype Join<K, P> = K extends string | number\n ? P extends string | number\n ? `${K}${'' extends P ? '' : '.'}${P}`\n : never\n : never\n\ntype Paths<T, D extends number = 10> = [D] extends [never]\n ? never\n : T extends object\n ? {\n [K in keyof T]-?: K extends string | number ? `${K}` | Join<K, Paths<T[K]>> : never\n }[keyof T]\n : ''\n\nexport function useTranslation() {\n const locale = useToolkitsStore(state => state.locale)\n\n const t = useMemo(\n () => (key: Paths<Locale>, data?: Record<string, unknown>) =>\n has(locale, key) ? template(get(locale, key as string))(data) : key,\n [locale],\n )\n\n return { t }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {o,l,p,e}from'./chunk-3ZT3BOPJ.js';import {useQuery}from'@tanstack/react-query';function K(e,s){let r=o(),{permissionVersion:n}=l(),t=typeof e<"u"?typeof e=="string"?[e]:e:[],y=n!=="v1"?"v2":"v1",{data:o$1,...c}=useQuery({queryKey:p.permissions.check(t,y),queryFn:()=>r.post(n!=="v1"?"/api/usystem/user/checkV2":"/api/usystem/user/check",{permissions:t},s),enabled:t.length>0,retry:false}),m=true;return typeof e=="string"?m=o$1?.has_all?true:o$1?.[e]??false:Array.isArray(e)&&e.length>0&&(m=t.reduce((f,g)=>(f[g]=o$1?.has_all?true:o$1?.[g]??false,f),{})),{...c,data:m}}function A(){let{loginPath:e$1,appId:s}=l(),r=o();return useQuery({queryKey:p.menus.navbar(s?String(s):void 0),queryFn:()=>r.get("/api/usystem/menu/navbar",{headers:{[e]:s?encodeURIComponent(String(s)):"global"}}),enabled:window.location.pathname!==e$1})}var v=()=>{let{gameApiV2:e$1,permissionVersion:s,requireGame:r}=l(),n=o();return useQuery({queryKey:p.games.all,queryFn:async()=>{let t={headers:{[e]:"global"}};return e$1?(await n.get("/api/game/list",t))?.list??[]:await n.get("/api/usystem/game/all",t)??[]},enabled:r&&s!=="v1",retry:false})};export{K as a,A as b,v as c};//# sourceMappingURL=chunk-SMBHLRAO.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-SMBHLRAO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/index.ts"],"names":["useAuth","code","config","ky","useKy","permissionVersion","useToolkitsStore","permissionCodes","version","data","rest","useQuery","queryKeys","newData","acc","curr","useMenuList","loginPath","appId","APP_ID_HEADER","useGames","gameApiV2","requireGame","requestConfig"],"mappings":"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","file":"chunk-SMBHLRAO.js","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport type { Options as KyOptions } from 'ky'\n\nimport type { Game } from '@/components/layout/types'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { APP_ID_HEADER, PermissionVersion } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function useAuth(code?: string | string[], config?: KyOptions) {\n const ky = useKy()\n const { permissionVersion } = useToolkitsStore()\n const permissionCodes: string[] = typeof code !== 'undefined' ? (typeof code === 'string' ? [code] : code) : []\n const version = permissionVersion !== PermissionVersion.V1 ? 'v2' : 'v1'\n\n const { data, ...rest } = useQuery({\n queryKey: queryKeys.permissions.check(permissionCodes, version),\n queryFn: () =>\n ky.post<Record<string, boolean> & { has_all?: boolean }>(\n permissionVersion !== PermissionVersion.V1 ? '/api/usystem/user/checkV2' : '/api/usystem/user/check',\n {\n permissions: permissionCodes,\n },\n config,\n ),\n enabled: permissionCodes.length > 0,\n retry: false,\n })\n\n let newData: boolean | Record<string, boolean> = true\n\n if (typeof code === 'string') {\n newData = data?.has_all ? true : (data?.[code] ?? false)\n } else if (Array.isArray(code) && code.length > 0) {\n newData = permissionCodes.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr] = data?.has_all ? true : (data?.[curr] ?? false)\n return acc\n }, {})\n }\n\n return {\n ...rest,\n data: newData,\n }\n}\n\nexport function useMenuList() {\n const { loginPath, appId } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.menus.navbar(appId ? String(appId) : undefined),\n queryFn: () =>\n ky.get<MenuListItem[]>('/api/usystem/menu/navbar', {\n headers: { [APP_ID_HEADER]: appId ? encodeURIComponent(String(appId)) : 'global' },\n }),\n enabled: window.location.pathname !== loginPath,\n })\n}\n\nexport const useGames = () => {\n const { gameApiV2, permissionVersion, requireGame } = useToolkitsStore()\n const ky = useKy()\n\n return useQuery({\n queryKey: queryKeys.games.all,\n queryFn: async () => {\n const requestConfig = {\n headers: {\n [APP_ID_HEADER]: 'global',\n },\n }\n\n if (gameApiV2) {\n const response = await ky.get<{ list: Game[] }>('/api/game/list', requestConfig)\n return response?.list ?? []\n }\n\n const response = await ky.get<Game[]>('/api/usystem/game/all', requestConfig)\n return response ?? []\n },\n enabled: requireGame && permissionVersion !== PermissionVersion.V1,\n retry: false,\n })\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {c,d,j,i}from'./chunk-3VI7KSDA.js';import {d as d$1}from'./chunk-D5OM3OZU.js';import {a}from'./chunk-S4LUEDFA.js';import {c as c$1}from'./chunk-SMBHLRAO.js';import {l}from'./chunk-3ZT3BOPJ.js';import {Typography,Select,App,Form,Input,Divider,Skeleton,Card,Empty,Button,Space,Checkbox,Row,Col,Collapse}from'antd';import {useState,useEffect,useTransition,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var oe=m=>{let{permissions:i,readonly:n,expand:r,value:l,onChange:g}=m,[c,f]=useState([]),[y,R]=useState({}),[a$1,d]=useState(l??[]),{t:P}=a(),[,v]=useTransition(),V=useCallback(e=>{f(e);},[]),p=(e,s)=>{let o=[];return e?o=[...new Set(a$1.concat(s))]:(o=a$1.slice(),s.forEach(u=>{let b=o.findIndex(X=>X===u);b>-1&&o.splice(b,1);})),o},x=(e,s)=>{let o=p(e.target.checked,s);d(o),g?.(o);};useEffect(()=>{d(l??[]);},[l]),useEffect(()=>{r&&v(()=>{f((i??[]).map(({category:e})=>e));});},[r,i]),useEffect(()=>{let e=(i??[]).reduce((s,o)=>(s[o.category]=o.permissions.every(u=>a$1?.includes(u.value)),s),{});R(e);},[a$1,i]);let I=(i??[]).map(e=>({key:e.category,label:e.category,extra:!n&&jsx(Checkbox,{checked:y[e.category],onChange:s=>{x(s,e.permissions?.map(o=>o.value));},children:P("global.selectAll")}),children:jsx(Checkbox.Group,{style:{width:"100%"},value:a$1,disabled:n,children:jsx(Row,{gutter:[10,10],style:{width:"100%"},children:e.permissions?.map(s=>jsx(Col,{span:6,children:jsx(Checkbox,{value:s.value,onChange:o=>{x(o,[s.value]);},children:s.label})},s.value))})})}));return jsx(Collapse,{style:{width:"100%"},collapsible:"header",activeKey:c,items:I,onChange:V})},k=oe;var{Text:w}=Typography,{Option:le}=Select,pe=m=>{let{expand:i=true,value:n,readonly:r,onChange:l}=m,{data:g,isLoading:c,error:f}=j(),{data:y,isLoading:R}=c$1(),[a$1,d]=useState([]),P=g?.filter(e=>e.is_common),v=g?.filter(e=>!e.is_common),V=c||R,{t:p}=a();if(useEffect(()=>{let e=[];Object.keys(n??{}).forEach(s=>{s!=="global"&&e.push({gameId:s,permissions:n?.[s]??[]});}),d(e);},[n]),f)return jsx("div",{className:"flex justify-center",children:jsx(w,{type:"danger",children:p("PermissionList.failedDescription")})});let x=()=>{d(e=>[...e,{gameId:"",permissions:[]}]);},I=e=>{d(s=>s.filter((o,u)=>u!==e));};return jsxs("div",{className:"flex flex-col w-full",children:[jsx("div",{className:"mb-12",children:jsx(Divider,{dashed:true,children:p("PermissionList.baseSectionTitle")})}),jsx(Skeleton,{active:true,loading:V,children:jsx(k,{value:n?.global,readonly:r,permissions:P,expand:i,onChange:e=>{l?.({...n,global:e});}})}),jsx("div",{className:"my-12",children:jsx(Divider,{dashed:true,children:p("PermissionList.gameSectionTitle")})}),a$1.map((e,s)=>jsx(Card,{title:jsxs(Space,{children:[jsx(w,{children:p("global.game")}),r?jsx(w,{children:y?.find(o=>String(o.id)===e.gameId)?.name}):jsx(Select,{disabled:r,value:a$1[s].gameId||void 0,style:{width:"160px"},placeholder:p("PermissionList.gameSelectPlaceholder"),onChange:o=>{d(u=>{let b=u.slice();return b[s].gameId=o,b});},children:y?.map(o=>jsx(le,{value:o.id,disabled:a$1.some(({gameId:u})=>u===String(o.id)),children:o.name},o.id))})]}),className:"mb-6",extra:!r&&jsx(Button,{type:"link",onClick:()=>{I(s);},children:p("PermissionList.removeText")}),children:a$1[s].gameId?jsx(Skeleton,{active:true,loading:V,children:jsx(k,{value:n?.[a$1[s].gameId],readonly:r,expand:i,permissions:v,onChange:o=>{l?.({...n,[a$1[s].gameId]:o});}})}):jsx(Empty,{description:p("PermissionList.gameSectionDescription")})},s)),!r&&jsx(Button,{block:true,type:"dashed",onClick:x,children:p("PermissionList.addText")})]})},U=pe;var{Text:ue}=Typography,ge=m=>{let{expand:i$1=true,value:n,readonly:r,onChange:l}=m,{data:g,isLoading:c,error:f}=i(),{t:y}=a();return f?jsx("div",{className:"flex justify-center",children:jsx(ue,{type:"danger",children:y("PermissionList.failedDescription")})}):jsx(Skeleton,{active:true,loading:c,children:jsx(k,{value:n,permissions:g,readonly:r,expand:i$1,onChange:l})})},$=ge;var fe=m=>{let{value:i}=m;console.log("value",typeof i,i===null,JSON.stringify(i));let{permissionVersion:n}=l();return n==="v2"?jsx(U,{...m,value:i}):jsx($,{...m,value:i})},H=fe;var Qe=({mode:m,onSuccess:i})=>{let{message:n}=App.useApp(),{t:r}=a(),l=c(),g=d(),c$1=m==="create",f=r(c$1?"Role.createTitle":"Role.updateTitle"),y=jsxs(Fragment,{children:[jsx(Form.Item,{label:r("global.name"),name:"name",rules:[{required:true}],children:jsx(Input,{disabled:!c$1})}),jsx(Form.Item,{name:"permissions",children:jsx(H,{})})]});return d$1({title:f,width:"1000px",formProps:{layout:"vertical"},content:y,onConfirm:async(a,d)=>{let P=`role_${a.name}`,v=a.permissions;c$1?(await l.mutateAsync({name:P,permissions:v}),n.success(r("Role.createSuccessfully"))):(await g.mutateAsync({id:d?.id,name:P,permissions:v}),n.success(r("Role.updateSuccessfully"))),i?.();}})};export{H as a,Qe as b};//# sourceMappingURL=chunk-XX2BCZJU.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-XX2BCZJU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"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","file":"chunk-MTRFNFEM.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/modules/permission/components/permissionCollapse/index.tsx","../src/modules/permission/components/permissionList/PermissionWithGame.tsx","../src/modules/permission/components/permissionList/PermissionWithoutGame.tsx","../src/modules/permission/components/permissionList/index.tsx","../src/modules/permission/hooks/role-hooks.tsx"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","startTransition","useTransition","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","useEffect","category","acc","curr","items","jsx","Checkbox","e","permission","Row","Col","Collapse","permissionCollapse_default","Text","Typography","Option","Select","PermissionWithGame","isPermissionLoading","error","useAllPermissionsV2","games","isGamesLoading","useGames","gameList","setGameList","globalPermissions","gamePermissions","isLoading","list","addGame","prev","removeGame","_","i","jsxs","Divider","Skeleton","newValue","Card","Space","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionWithGame_default","PermissionWithoutGame","useAllPermissions","PermissionWithoutGame_default","PermissionList","permissionVersion","useToolkitsStore","permissionList_default","useRoleModal","mode","onSuccess","message","App","create","useCreateRole","update","useUpdateRole","isCreateMode","title","content","Fragment","Form","Input","useFormModal","values","extraValues","name"],"mappings":"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","file":"chunk-XX2BCZJU.js","sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState, useTransition } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const { t } = useTranslation()\n const [, startTransition] = useTransition()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n startTransition(() => {\n // 改变展开状态\n setActiveKey((permissions ?? []).map(({ category }) => category))\n })\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const items = (permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions?.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions?.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={items}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport { useAllPermissionsV2 } from '../../services'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionWithGameProps extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionWithGame: FC<PermissionWithGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permission, isLoading: isPermissionLoading, error } = useAllPermissionsV2()\n const { data: games, isLoading: isGamesLoading } = useGames()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const isLoading = isPermissionLoading || isGamesLoading\n const { t } = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => String(game.id) === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option\n key={game.id}\n value={game.id}\n disabled={gameList.some(({ gameId }) => gameId === String(game.id))}\n >\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionWithGame\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nimport { useAllPermissions } from '../../services'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../permissionCollapse'\nimport type { PermissionListPropsBase } from './types'\n\nconst { Text } = Typography\n\ninterface PermissionWithoutGameProps extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionWithoutGame: FC<PermissionWithoutGameProps> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const { t } = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionWithoutGame\n","import type { FC } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\n\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionWithGame from './PermissionWithGame'\nimport PermissionWithoutGame from './PermissionWithoutGame'\nimport type { PermissionListPropsBase } from './types'\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n console.log('value', typeof value, value === null, JSON.stringify(value))\n const { permissionVersion } = useToolkitsStore()\n\n if (permissionVersion === PermissionVersion.V2) {\n return <PermissionWithGame {...props} value={value as RoleV2['permissions']} />\n }\n\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n}\n\nexport default PermissionList\n","import { App, Form, Input } from 'antd'\n\nimport { useFormModal } from '@/hooks/modal'\nimport { useTranslation } from '@/locale'\n\nimport PermissionList from '../components/permissionList'\nimport { useCreateRole, useUpdateRole } from '../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../types'\n\nexport const useRoleModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const create = useCreateRole()\n const update = useUpdateRole()\n\n const isCreateMode = mode === 'create'\n\n const title = isCreateMode ? t('Role.createTitle') : t('Role.updateTitle')\n\n const content = (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n )\n\n const onConfirm = async (\n values: { name: string; permissions: RoleListItem['permissions'] },\n extraValues: { id: number },\n ) => {\n const name = `role_${values.name}`\n const permissions = values.permissions\n\n if (isCreateMode) {\n await create.mutateAsync({ name, permissions })\n message.success(t('Role.createSuccessfully'))\n } else {\n await update.mutateAsync({ id: extraValues?.id, name, permissions })\n message.success(t('Role.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<\n {\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n },\n { id: number }\n >({\n title,\n width: '1000px',\n formProps: {\n layout: 'vertical',\n },\n content,\n onConfirm,\n })\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=createMenuItem-
|
|
1
|
+
import {a}from'./chunk-F3OT6ENF.js';import {m,f}from'./chunk-3ZT3BOPJ.js';import {Editor}from'@monaco-editor/react';import {App,Form,Card,Input,Switch,InputNumber,Button}from'antd';import {useNavigate}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var v=m(()=>{let{message:p}=App.useApp(),[c]=Form.useForm(),o=useNavigate(),{mutateAsync:I}=a();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:true,form:c,labelCol:{flex:"120px"},initialValues:{is_common:false,is_model:false,order:0},onFinish:async d=>{let{permissions:s,front_route:f$1,...F}=d;await I({...F,front_route:f+f$1,permissions:s?JSON.parse(s):void 0}),p.success("\u521B\u5EFA\u6210\u529F",.8,()=>o("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:true}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:true}],children:jsx(Input,{prefix:f})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:true}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:true}],valuePropName:"checked",children:jsx(Switch,{})}),jsx(Form.Item,{label:"Order",name:"order",children:jsx(InputNumber,{className:"w-full"})}),jsx(Form.Item,{label:"\u63A5\u53E3\u89C4\u5219",name:"permissions",children:jsx(Editor,{theme:"vs-dark",height:"300px",language:"json",options:{minimap:{enabled:false}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:true}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:false}}})}),jsx(Form.Item,{label:"Ext",name:"ext",children:jsx(Input.TextArea,{rows:5})}),jsx(Form.Item,{children:jsxs("div",{className:"flex justify-center gap-8",children:[jsx(Button,{type:"primary",htmlType:"submit",children:"\u63D0\u4EA4"}),jsx(Button,{onClick:()=>{o("..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},{isGlobal:true}),M=v;export{M as default};//# sourceMappingURL=createMenuItem-5DDIEELO.js.map
|
|
2
|
+
//# sourceMappingURL=createMenuItem-5DDIEELO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","message","App","form","Form","navigate","useNavigate","createMenu","useCreateMenu","jsx","Card","jsxs","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","Input","Switch","InputNumber","Editor","Button","createMenuItem_default"],"mappings":"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","file":"createMenuItem-
|
|
1
|
+
{"version":3,"sources":["../src/modules/menu/pages/createMenuItem/index.tsx"],"names":["CreateMenuItem","withContext","message","App","form","Form","navigate","useNavigate","createMenu","useCreateMenu","jsx","Card","jsxs","values","permissions","front_route","rest","FRONTEND_ROUTE_PREFIX","Input","Switch","InputNumber","Editor","Button","createMenuItem_default"],"mappings":"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","file":"createMenuItem-5DDIEELO.js","sourcesContent":["import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { withContext } from '@/components/toolkitsProvider'\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport type { MenuListItem } from '@/types'\n\nimport { useCreateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst CreateMenuItem = withContext(\n () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutateAsync: createMenu } = useCreateMenu()\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n await createMenu({\n ...rest,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n })\n message.success('创建成功', 0.8, () => navigate('..', { relative: 'route' }))\n }\n\n return (\n <Card title=\"创建菜单项\">\n <Form\n scrollToFirstError\n form={form}\n labelCol={{ flex: '120px' }}\n initialValues={{ is_common: false, is_model: false, order: 0 }}\n onFinish={onFinish}\n >\n <Form.Item label=\"菜单项名称\" name=\"category\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"前端路由\" name=\"front_route\" rules={[{ required: true }]}>\n <Input prefix={FRONTEND_ROUTE_PREFIX} />\n </Form.Item>\n <Form.Item label=\"模板名称\" name=\"model_name\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n <Form.Item label=\"Is Common\" name=\"is_common\" rules={[{ required: true }]} valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Order\" name=\"order\">\n <InputNumber className=\"w-full\" />\n </Form.Item>\n <Form.Item label=\"接口规则\" name=\"permissions\">\n <Editor\n theme=\"vs-dark\"\n height=\"300px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Schema\" name=\"scheme\" rules={[{ required: true }]}>\n <Editor\n theme=\"vs-dark\"\n height=\"600px\"\n language=\"json\"\n options={{\n minimap: {\n enabled: false,\n },\n }}\n />\n </Form.Item>\n <Form.Item label=\"Ext\" name=\"ext\">\n <Input.TextArea rows={5} />\n </Form.Item>\n <Form.Item>\n <div className=\"flex justify-center gap-8\">\n <Button type=\"primary\" htmlType=\"submit\">\n 提交\n </Button>\n <Button\n onClick={() => {\n navigate('..', { relative: 'path' })\n }}\n >\n 取消\n </Button>\n </div>\n </Form.Item>\n </Form>\n </Card>\n )\n },\n { isGlobal: true },\n)\n\nexport default CreateMenuItem\n"]}
|
package/lib/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-inset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}table{border-collapse:collapse;border-color:inherit;text-indent:0}menu{list-style:none}img,object,svg{display:block;vertical-align:middle}img{height:auto;max-width:100%}button,select{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-6{top:calc(var(--spacing)*6)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.right-16{right:calc(var(--spacing)*16)}.left-14{left:calc(var(--spacing)*14)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-10{height:calc(var(--spacing)*10)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-36{padding-inline:calc(var(--spacing)*36)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{font-weight:var(--font-weight-bold)}.font-medium{font-weight:var(--font-weight-medium)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:from-blue-600:hover{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-blue-500:hover{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
|
1
|
+
@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-inset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}h3{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}table{border-collapse:collapse;border-color:inherit;text-indent:0}menu{list-style:none}img,object,svg{display:block;vertical-align:middle}img{height:auto;max-width:100%}button,select{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-6{top:calc(var(--spacing)*6)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.right-16{right:calc(var(--spacing)*16)}.left-14{left:calc(var(--spacing)*14)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-10{height:calc(var(--spacing)*10)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-gradient-to-r,.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-36{padding-inline:calc(var(--spacing)*36)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{font-weight:var(--font-weight-bold)}.font-medium{font-weight:var(--font-weight-medium)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:from-blue-600:hover{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-blue-500:hover{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ButtonProps, FormInstance, MenuProps, SelectProps, DrawerProps, Button, FormProps, ModalProps } from 'antd';
|
|
2
2
|
import { Options } from 'ky';
|
|
3
|
+
import * as react from 'react';
|
|
3
4
|
import { FC, PropsWithChildren, Key, ReactNode, ReactElement, Ref, DetailedHTMLProps, ImgHTMLAttributes, ComponentType, ComponentProps } from 'react';
|
|
4
5
|
import { ParagraphProps } from 'antd/es/typography/Paragraph';
|
|
5
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -334,7 +335,9 @@ interface RequireAuthProps {
|
|
|
334
335
|
*/
|
|
335
336
|
declare const RequireAuth: FC<PropsWithChildren<RequireAuthProps>>;
|
|
336
337
|
|
|
337
|
-
declare const
|
|
338
|
+
declare const _default$3: react.NamedExoticComponent<{
|
|
339
|
+
children?: react.ReactNode | undefined;
|
|
340
|
+
}>;
|
|
338
341
|
|
|
339
342
|
declare const SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
|
|
340
343
|
declare const APP_ID_HEADER = "App-ID";
|
|
@@ -346,6 +349,9 @@ declare enum PermissionVersion {
|
|
|
346
349
|
V4 = "v4"
|
|
347
350
|
}
|
|
348
351
|
declare const WILDCARD = "*";
|
|
352
|
+
declare const TRUE = "true";
|
|
353
|
+
declare const FALSE = "false";
|
|
354
|
+
declare const UNREGISTERED_FLAG = "unregistered";
|
|
349
355
|
|
|
350
356
|
type Locale = {
|
|
351
357
|
global: {
|
|
@@ -444,6 +450,7 @@ interface ContextSlice {
|
|
|
444
450
|
gameApiV2: boolean;
|
|
445
451
|
loginPath: string;
|
|
446
452
|
isGlobal: boolean;
|
|
453
|
+
requireGame?: boolean;
|
|
447
454
|
navWidth?: number;
|
|
448
455
|
collapsible?: boolean;
|
|
449
456
|
mainPagePath: string;
|
|
@@ -833,4 +840,4 @@ declare function useAuth(code?: string | string[], config?: Options): {
|
|
|
833
840
|
declare function useMenuList(): _tanstack_react_query.UseQueryResult<MenuListItem[], Error>;
|
|
834
841
|
declare const useGames: () => _tanstack_react_query.UseQueryResult<Game[], Error>;
|
|
835
842
|
|
|
836
|
-
export { APP_ID_HEADER, AuthButton, type AuthButtonProps, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, Nav, type NavItem, NotFound, _default as OperationLogList, type Permission, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, RequireGame, SSO_URL, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseFormDrawerProps, type UseFormModalProps, UserDropdown, type VisibilityState, WILDCARD, createVisibilityStore, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useAuth, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, useQueryListStore, useToolkitsStore, withContext };
|
|
843
|
+
export { APP_ID_HEADER, AuthButton, type AuthButtonProps, DynamicTags, type DynamicTagsProps, ExpandableParagraph, type ExpandableParagraphProps, FALSE, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, Highlight, type HighlightProps, InfiniteList, InfiniteListAction, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, Nav, type NavItem, NotFound, _default as OperationLogList, type Permission, PermissionVersion, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, _default$3 as RequireGame, SSO_URL, SignIn, TRUE, ToolkitsProvider, type ToolkitsProviderProps, UNREGISTERED_FLAG, type UseFormDrawerProps, type UseFormModalProps, UserDropdown, type VisibilityState, WILDCARD, createVisibilityStore, generateId, _default$2 as menu, mixedStorage, _default$1 as permission, useAuth, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useMenuList, useModal, useModalStore, useQueryListStore, useToolkitsStore, withContext };
|