react-toolkits 2.27.12 → 2.27.14

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/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toFinite.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toInteger.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/assignInWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isError.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/attempt.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/compact.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseDifference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_escapeHtmlChar.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/escape.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createFind.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/findIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/find.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/first.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/has.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseValues.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_customDefaultsAssignIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_escapeStringChar.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reInterpolate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reEscape.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_reEvaluate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/templateSettings.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/template.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/lodash.js","../../../node_modules/.pnpm/zustand@5.0.8_@types+react@19.2.6_immer@11.0.0_react@19.2.0/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.8_@types+react@19.2.6_immer@11.0.0_react@19.2.0/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.8_@types+react@19.2.6_immer@11.0.0_react@19.2.0/node_modules/zustand/esm/index.mjs","../../../node_modules/.pnpm/zustand@5.0.8_@types+react@19.2.6_immer@11.0.0_react@19.2.0/node_modules/zustand/esm/middleware.mjs","../src/utils/createVisibilityStore.ts","../src/utils/generateId.ts","../src/utils/mixedStorage.ts","../src/utils/index.ts","../src/constants/index.ts","../src/locale/zh_CN.ts","../src/stores/context.ts","../src/stores/game.ts","../src/stores/layout.ts","../src/stores/nav.ts","../../../node_modules/.pnpm/jwt-decode@4.0.0/node_modules/jwt-decode/build/esm/index.js","../src/stores/token.ts","../src/stores/index.ts","../src/components/toolkitsProvider/ToolkitsProvider.tsx","../src/components/toolkitsProvider/index.ts","../src/locale/hooks.ts","../src/locale/index.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/subscribable.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/timeoutManager.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/utils.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/focusManager.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/thenable.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/notifyManager.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/onlineManager.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/retryer.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/query.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/queryObserver.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/infiniteQueryObserver.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/mutation.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/mutationObserver.ts","../../../node_modules/.pnpm/@tanstack+query-core@5.90.10/node_modules/@tanstack/query-core/src/index.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/build/modern/types.js","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/IsRestoringProvider.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/errorBoundaryUtils.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/suspense.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/useBaseQuery.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/useQuery.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/useMutation.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/useInfiniteQuery.ts","../../../node_modules/.pnpm/@tanstack+react-query@5.90.10_react@19.2.0/node_modules/@tanstack/react-query/src/index.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/errors/HTTPError.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/errors/NonError.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/errors/ForceRetryError.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/core/constants.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/body.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/is.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/merge.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/normalize.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/errors/TimeoutError.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/timeout.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/delay.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/options.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/utils/type-guards.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/core/Ky.ts","../../../node_modules/.pnpm/ky@1.14.0/node_modules/ky/source/index.ts","../src/libs/ky.ts","../src/libs/index.ts","../src/queryKeys.ts","../src/services/index.ts","../src/components/authButton/AuthButton.tsx","../src/components/authButton/index.ts","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/components/Context.js","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@ant-design+fast-color@3.0.0/node_modules/@ant-design/fast-color/es/presetColors.js","../../../node_modules/.pnpm/@ant-design+fast-color@3.0.0/node_modules/@ant-design/fast-color/es/FastColor.js","../../../node_modules/.pnpm/@ant-design+fast-color@3.0.0/node_modules/@ant-design/fast-color/es/types.js","../../../node_modules/.pnpm/@ant-design+fast-color@3.0.0/node_modules/@ant-design/fast-color/es/index.js","../../../node_modules/.pnpm/@ant-design+colors@8.0.0/node_modules/@ant-design/colors/es/generate.js","../../../node_modules/.pnpm/@ant-design+colors@8.0.0/node_modules/@ant-design/colors/es/presets.js","../../../node_modules/.pnpm/@ant-design+colors@8.0.0/node_modules/@ant-design/colors/es/types.js","../../../node_modules/.pnpm/@ant-design+colors@8.0.0/node_modules/@ant-design/colors/es/index.js","../../../node_modules/.pnpm/@rc-component+util@1.4.0_react-dom@19.2.0_react@19.2.0/node_modules/@rc-component/util/es/Dom/canUseDom.js","../../../node_modules/.pnpm/@rc-component+util@1.4.0_react-dom@19.2.0_react@19.2.0/node_modules/@rc-component/util/es/Dom/contains.js","../../../node_modules/.pnpm/@rc-component+util@1.4.0_react-dom@19.2.0_react@19.2.0/node_modules/@rc-component/util/es/Dom/dynamicCSS.js","../../../node_modules/.pnpm/@rc-component+util@1.4.0_react-dom@19.2.0_react@19.2.0/node_modules/@rc-component/util/es/Dom/shadow.js","../../../node_modules/.pnpm/@rc-component+util@1.4.0_react-dom@19.2.0_react@19.2.0/node_modules/@rc-component/util/es/warning.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/utils.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/components/IconBase.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/components/AntdIcon.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/LoginOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/LoginOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/LogoutOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/LogoutOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/MenuFoldOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/MenuFoldOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/MenuUnfoldOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/MenuUnfoldOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/MinusCircleOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/MinusCircleOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/UserAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/UserAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/UserOutlined.js","../../../node_modules/.pnpm/@ant-design+icons-svg@4.4.2/node_modules/@ant-design/icons-svg/es/asn/UsergroupAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/UsergroupAddOutlined.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/icons/index.js","../../../node_modules/.pnpm/@ant-design+icons@6.1.0_react-dom@19.2.0_react@19.2.0/node_modules/@ant-design/icons/es/index.js","../src/components/dynamicTags/DynamicTags.tsx","../src/components/dynamicTags/index.ts","../src/components/expandableParagraph/ExpandableParagraph.tsx","../src/components/expandableParagraph/index.ts","../src/components/filterFormWrapper/FilterFormWrapper.tsx","../src/components/filterFormWrapper/index.ts","../src/components/highlight/Highlight.tsx","../src/components/highlight/index.ts","../src/components/infiniteList/stores.ts","../src/components/infiniteList/InfiniteList.tsx","../src/components/infiniteList/index.ts","../src/components/layout/GameSelect.tsx","../src/components/requireGame/RequireGame.tsx","../src/components/requireGame/index.ts","../src/components/userDropdown/UserDropdown.tsx","../src/components/userDropdown/index.ts","../src/components/logo/Logo.tsx","../src/components/logo/index.ts","../src/components/layout/LayoutHeader.tsx","../src/components/layout/utils.tsx","../src/components/layout/Nav.tsx","../src/components/layout/Layout.tsx","../src/components/layout/types.ts","../src/components/layout/index.ts","../src/components/queryList/stores.ts","../src/components/queryList/QueryList.tsx","../src/components/queryList/index.ts","../src/components/requireAuth/RequireAuth.tsx","../src/components/requireAuth/index.ts","../src/components/index.ts","../src/hooks/modal/stores.ts","../src/hooks/modal/modal.tsx","../src/hooks/modal/formModal.tsx","../src/hooks/modal/index.ts","../src/modules/menu/services/index.ts","../src/modules/menu/pages/menuItemList/index.tsx","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../../node_modules/.pnpm/state-local@1.0.7/node_modules/state-local/lib/es/state-local.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/config/index.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/loader/index.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/index.js","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/Loading/Loading.tsx","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/MonacoContainer/MonacoContainer.tsx","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/hooks/useMount/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/hooks/useUpdate/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/utils/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/DiffEditor/DiffEditor.tsx","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/hooks/usePrevious/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/Editor/Editor.tsx","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/MonacoContainer/styles.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/Loading/styles.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/Loading/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/MonacoContainer/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/Editor/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/hooks/useMonaco/index.ts","../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.2.0_react@19.2.0/node_modules/@monaco-editor/react/src/DiffEditor/index.ts","../src/modules/menu/pages/createMenuItem/index.tsx","../src/modules/menu/pages/updateMenuItem/index.tsx","../src/modules/permission/services/index.ts","../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","../src/modules/permission/hooks/user-hooks.tsx","../src/modules/permission/hooks/index.ts","../src/modules/permission/pages/userList/index.tsx","../src/modules/permission/pages/userDetail/index.tsx","../src/modules/permission/pages/roleList/index.tsx","../src/modules/permission/components/index.ts","../src/modules/permission/pages/roleDetail/index.tsx","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../src/index.ts","../src/hooks/drawer/drawer.tsx","../src/hooks/drawer/stores.ts","../src/hooks/drawer/formDrawer.tsx","../src/modules/menu/index.tsx","../src/modules/permission/index.tsx","../src/pages/notFound/index.tsx","../src/pages/operationLogList/index.tsx","../src/pages/signIn/index.tsx","../src/pages/signIn/hooks.ts"],"names":["Symbol","nativeObjectToString","objectProto","symToStringTag","index","INFINITY","funcProto","funcToString","hasOwnProperty","WeakMap","MAX_SAFE_INTEGER","Buffer","argsTag","funcTag","freeExports","freeModule","moduleExports","HASH_UNDEFINED","Map","objectTag","errorTag","propertyIsEnumerable","Promise","Set","mapTag","setTag","weakMapTag","dataViewTag","Uint8Array","othValue","arrayBufferTag","boolTag","dateTag","numberTag","regexpTag","stringTag","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","symbolTag","symbolProto","arrayTag","LARGE_ARRAY_SIZE","nativeMax","setState","getState","identity","React","_a","store","get","r","store2","config","_a2","PermissionMode","keys","init_esm","locale","delay","_","isPlainObject","v","init_utils","_cleanup","_setup","isError","timeout","queryFnContext","_client","_currentResult","notify_fn","init_types","React2","React3","React4","React5","React6","init_constants","isObject","property","retry","init","ky","_e","App","_options","useMemo","request","options","head","init_modern","response","jsx","createContext","matchPrefix","h","l","getValue","init_es","root","warning","generate","useContext","useEffect","React9","React10","_extends","LoginOutlined","LoginOutlined_default","init_LoginOutlined","React11","LogoutOutlined","RefIcon","LogoutOutlined_default","init_LogoutOutlined","React12","MenuFoldOutlined","MenuFoldOutlined_default","init_MenuFoldOutlined","React13","MenuUnfoldOutlined","MenuUnfoldOutlined_default","init_MenuUnfoldOutlined","React14","MinusCircleOutlined","MinusCircleOutlined_default","init_MinusCircleOutlined","React15","PlusOutlined","PlusOutlined_default","init_PlusOutlined","React16","UserAddOutlined","UserAddOutlined_default","init_UserAddOutlined","React17","UserOutlined","UserOutlined_default","init_UserOutlined","React18","UsergroupAddOutlined","UsergroupAddOutlined_default","init_UsergroupAddOutlined","React19","useState","useRef","theme","jsxs","Space","Button","Fragment","createStore","init_stores","newInstances","page","hasNextPage","isEmpty","useCallback","forwardRef","Typography","Spin","useNavigate","init_logo","label","rest","Link","AntdLayout","useLocation","init_layout","DEFAULT_PAYLOAD","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","BODYLESS_METHODS","BODY_SUPPORTED_METHODS","identifierCounter","generateUniqueIdentifier","QueryListAction","Form","cloneElement","useImperativeHandle","Result","Table","storeHook","init_modal","init_services","_defineProperty","ownKeys","_objectSpread2","isFunction","errorMessages","create","validate","state","curry","init_isObject","errorHandler","throwError","validators","compose","configureLoader","require","Loading","children","styles_default","MonacoContainer","width","height","isEditorReady","loading","_ref","className","wrapperProps","Loading_default","useMount","effect","useUpdate","deps","applyChanges","isInitialMount","noop","getOrCreateModel","monaco","value","language","path","getModel","createModel","createModelUri","DiffEditor","original","modified","originalLanguage","modifiedLanguage","originalModelPath","modifiedModelPath","keepCurrentOriginalModel","keepCurrentModifiedModel","beforeMount","onMount","setIsEditorReady","isMonacoMounting","setIsMonacoMounting","editorRef","monacoRef","containerRef","onMountRef","beforeMountRef","preventCreation","useMount_default","cancelable","loader","error","disposeEditor","useUpdate_default","originalEditor","model","modifiedEditor","setModels","originalModel","modifiedModel","createEditor","models","MonacoContainer_default","usePrevious","ref","Editor","defaultValue","defaultLanguage","defaultPath","line","overrideServices","saveViewState","keepCurrentModel","onChange","onValidate","subscriptionRef","valueRef","previousPath","usePrevious_default","preventTriggerChangeEvent","viewStates","autoCreatedModelPath","defaultModel","event","changeMarkersListener","uris","editorUri","uri","markers","styles","DiffEditor_default","Editor_default","memo","Card","Input","Switch","InputNumber","Text","Select","Divider","Empty","Skeleton","GameSelect","Row","Col","init_hooks","Tag","useParams","init_components","Breadcrumb","Descriptions","exports","module","$","t","e","n","i","s","u","D","S","a","M","m","f","y","g","o","d","c","k","MenuItemList","CreateMenuItem","UserList","lazy","UserDetail","RoleList","RoleDetail","Routes","Route","Option","dayjs","Navigate"],"mappings":"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","file":"index.js","sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, &amp; pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","export { default } from './head.js'\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","import eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n","import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n","import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b>&lt;script&gt;</b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\nfunction template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = templateSettings.imports._.templateSettings || templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = hasOwnProperty.call(options, 'sourceURL')\n ? ('//# sourceURL=' +\n (options.sourceURL + '').replace(/\\s/g, ' ') +\n '\\n')\n : '';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n}\n\nexport default template;\n","/**\n * @license\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"es\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nexport { default as add } from './add.js';\nexport { default as after } from './after.js';\nexport { default as ary } from './ary.js';\nexport { default as assign } from './assign.js';\nexport { default as assignIn } from './assignIn.js';\nexport { default as assignInWith } from './assignInWith.js';\nexport { default as assignWith } from './assignWith.js';\nexport { default as at } from './at.js';\nexport { default as attempt } from './attempt.js';\nexport { default as before } from './before.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as bindKey } from './bindKey.js';\nexport { default as camelCase } from './camelCase.js';\nexport { default as capitalize } from './capitalize.js';\nexport { default as castArray } from './castArray.js';\nexport { default as ceil } from './ceil.js';\nexport { default as chain } from './chain.js';\nexport { default as chunk } from './chunk.js';\nexport { default as clamp } from './clamp.js';\nexport { default as clone } from './clone.js';\nexport { default as cloneDeep } from './cloneDeep.js';\nexport { default as cloneDeepWith } from './cloneDeepWith.js';\nexport { default as cloneWith } from './cloneWith.js';\nexport { default as commit } from './commit.js';\nexport { default as compact } from './compact.js';\nexport { default as concat } from './concat.js';\nexport { default as cond } from './cond.js';\nexport { default as conforms } from './conforms.js';\nexport { default as conformsTo } from './conformsTo.js';\nexport { default as constant } from './constant.js';\nexport { default as countBy } from './countBy.js';\nexport { default as create } from './create.js';\nexport { default as curry } from './curry.js';\nexport { default as curryRight } from './curryRight.js';\nexport { default as debounce } from './debounce.js';\nexport { default as deburr } from './deburr.js';\nexport { default as defaultTo } from './defaultTo.js';\nexport { default as defaults } from './defaults.js';\nexport { default as defaultsDeep } from './defaultsDeep.js';\nexport { default as defer } from './defer.js';\nexport { default as delay } from './delay.js';\nexport { default as difference } from './difference.js';\nexport { default as differenceBy } from './differenceBy.js';\nexport { default as differenceWith } from './differenceWith.js';\nexport { default as divide } from './divide.js';\nexport { default as drop } from './drop.js';\nexport { default as dropRight } from './dropRight.js';\nexport { default as dropRightWhile } from './dropRightWhile.js';\nexport { default as dropWhile } from './dropWhile.js';\nexport { default as each } from './each.js';\nexport { default as eachRight } from './eachRight.js';\nexport { default as endsWith } from './endsWith.js';\nexport { default as entries } from './entries.js';\nexport { default as entriesIn } from './entriesIn.js';\nexport { default as eq } from './eq.js';\nexport { default as escape } from './escape.js';\nexport { default as escapeRegExp } from './escapeRegExp.js';\nexport { default as every } from './every.js';\nexport { default as extend } from './extend.js';\nexport { default as extendWith } from './extendWith.js';\nexport { default as fill } from './fill.js';\nexport { default as filter } from './filter.js';\nexport { default as find } from './find.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findKey } from './findKey.js';\nexport { default as findLast } from './findLast.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as findLastKey } from './findLastKey.js';\nexport { default as first } from './first.js';\nexport { default as flatMap } from './flatMap.js';\nexport { default as flatMapDeep } from './flatMapDeep.js';\nexport { default as flatMapDepth } from './flatMapDepth.js';\nexport { default as flatten } from './flatten.js';\nexport { default as flattenDeep } from './flattenDeep.js';\nexport { default as flattenDepth } from './flattenDepth.js';\nexport { default as flip } from './flip.js';\nexport { default as floor } from './floor.js';\nexport { default as flow } from './flow.js';\nexport { default as flowRight } from './flowRight.js';\nexport { default as forEach } from './forEach.js';\nexport { default as forEachRight } from './forEachRight.js';\nexport { default as forIn } from './forIn.js';\nexport { default as forInRight } from './forInRight.js';\nexport { default as forOwn } from './forOwn.js';\nexport { default as forOwnRight } from './forOwnRight.js';\nexport { default as fromPairs } from './fromPairs.js';\nexport { default as functions } from './functions.js';\nexport { default as functionsIn } from './functionsIn.js';\nexport { default as get } from './get.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as gt } from './gt.js';\nexport { default as gte } from './gte.js';\nexport { default as has } from './has.js';\nexport { default as hasIn } from './hasIn.js';\nexport { default as head } from './head.js';\nexport { default as identity } from './identity.js';\nexport { default as inRange } from './inRange.js';\nexport { default as includes } from './includes.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as initial } from './initial.js';\nexport { default as intersection } from './intersection.js';\nexport { default as intersectionBy } from './intersectionBy.js';\nexport { default as intersectionWith } from './intersectionWith.js';\nexport { default as invert } from './invert.js';\nexport { default as invertBy } from './invertBy.js';\nexport { default as invoke } from './invoke.js';\nexport { default as invokeMap } from './invokeMap.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isArrayLike } from './isArrayLike.js';\nexport { default as isArrayLikeObject } from './isArrayLikeObject.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isBuffer } from './isBuffer.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isEqualWith } from './isEqualWith.js';\nexport { default as isError } from './isError.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isInteger } from './isInteger.js';\nexport { default as isLength } from './isLength.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isMatchWith } from './isMatchWith.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isNative } from './isNative.js';\nexport { default as isNil } from './isNil.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isObject } from './isObject.js';\nexport { default as isObjectLike } from './isObjectLike.js';\nexport { default as isPlainObject } from './isPlainObject.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isSafeInteger } from './isSafeInteger.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isString } from './isString.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isWeakSet } from './isWeakSet.js';\nexport { default as iteratee } from './iteratee.js';\nexport { default as join } from './join.js';\nexport { default as kebabCase } from './kebabCase.js';\nexport { default as keyBy } from './keyBy.js';\nexport { default as keys } from './keys.js';\nexport { default as keysIn } from './keysIn.js';\nexport { default as last } from './last.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as lodash } from './wrapperLodash.js';\nexport { default as lowerCase } from './lowerCase.js';\nexport { default as lowerFirst } from './lowerFirst.js';\nexport { default as lt } from './lt.js';\nexport { default as lte } from './lte.js';\nexport { default as map } from './map.js';\nexport { default as mapKeys } from './mapKeys.js';\nexport { default as mapValues } from './mapValues.js';\nexport { default as matches } from './matches.js';\nexport { default as matchesProperty } from './matchesProperty.js';\nexport { default as max } from './max.js';\nexport { default as maxBy } from './maxBy.js';\nexport { default as mean } from './mean.js';\nexport { default as meanBy } from './meanBy.js';\nexport { default as memoize } from './memoize.js';\nexport { default as merge } from './merge.js';\nexport { default as mergeWith } from './mergeWith.js';\nexport { default as method } from './method.js';\nexport { default as methodOf } from './methodOf.js';\nexport { default as min } from './min.js';\nexport { default as minBy } from './minBy.js';\nexport { default as mixin } from './mixin.js';\nexport { default as multiply } from './multiply.js';\nexport { default as negate } from './negate.js';\nexport { default as next } from './next.js';\nexport { default as noop } from './noop.js';\nexport { default as now } from './now.js';\nexport { default as nth } from './nth.js';\nexport { default as nthArg } from './nthArg.js';\nexport { default as omit } from './omit.js';\nexport { default as omitBy } from './omitBy.js';\nexport { default as once } from './once.js';\nexport { default as orderBy } from './orderBy.js';\nexport { default as over } from './over.js';\nexport { default as overArgs } from './overArgs.js';\nexport { default as overEvery } from './overEvery.js';\nexport { default as overSome } from './overSome.js';\nexport { default as pad } from './pad.js';\nexport { default as padEnd } from './padEnd.js';\nexport { default as padStart } from './padStart.js';\nexport { default as parseInt } from './parseInt.js';\nexport { default as partial } from './partial.js';\nexport { default as partialRight } from './partialRight.js';\nexport { default as partition } from './partition.js';\nexport { default as pick } from './pick.js';\nexport { default as pickBy } from './pickBy.js';\nexport { default as plant } from './plant.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as pull } from './pull.js';\nexport { default as pullAll } from './pullAll.js';\nexport { default as pullAllBy } from './pullAllBy.js';\nexport { default as pullAllWith } from './pullAllWith.js';\nexport { default as pullAt } from './pullAt.js';\nexport { default as random } from './random.js';\nexport { default as range } from './range.js';\nexport { default as rangeRight } from './rangeRight.js';\nexport { default as rearg } from './rearg.js';\nexport { default as reduce } from './reduce.js';\nexport { default as reduceRight } from './reduceRight.js';\nexport { default as reject } from './reject.js';\nexport { default as remove } from './remove.js';\nexport { default as repeat } from './repeat.js';\nexport { default as replace } from './replace.js';\nexport { default as rest } from './rest.js';\nexport { default as result } from './result.js';\nexport { default as reverse } from './reverse.js';\nexport { default as round } from './round.js';\nexport { default as sample } from './sample.js';\nexport { default as sampleSize } from './sampleSize.js';\nexport { default as set } from './set.js';\nexport { default as setWith } from './setWith.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as size } from './size.js';\nexport { default as slice } from './slice.js';\nexport { default as snakeCase } from './snakeCase.js';\nexport { default as some } from './some.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as sortedIndexBy } from './sortedIndexBy.js';\nexport { default as sortedIndexOf } from './sortedIndexOf.js';\nexport { default as sortedLastIndex } from './sortedLastIndex.js';\nexport { default as sortedLastIndexBy } from './sortedLastIndexBy.js';\nexport { default as sortedLastIndexOf } from './sortedLastIndexOf.js';\nexport { default as sortedUniq } from './sortedUniq.js';\nexport { default as sortedUniqBy } from './sortedUniqBy.js';\nexport { default as split } from './split.js';\nexport { default as spread } from './spread.js';\nexport { default as startCase } from './startCase.js';\nexport { default as startsWith } from './startsWith.js';\nexport { default as stubArray } from './stubArray.js';\nexport { default as stubFalse } from './stubFalse.js';\nexport { default as stubObject } from './stubObject.js';\nexport { default as stubString } from './stubString.js';\nexport { default as stubTrue } from './stubTrue.js';\nexport { default as subtract } from './subtract.js';\nexport { default as sum } from './sum.js';\nexport { default as sumBy } from './sumBy.js';\nexport { default as tail } from './tail.js';\nexport { default as take } from './take.js';\nexport { default as takeRight } from './takeRight.js';\nexport { default as takeRightWhile } from './takeRightWhile.js';\nexport { default as takeWhile } from './takeWhile.js';\nexport { default as tap } from './tap.js';\nexport { default as template } from './template.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as throttle } from './throttle.js';\nexport { default as thru } from './thru.js';\nexport { default as times } from './times.js';\nexport { default as toArray } from './toArray.js';\nexport { default as toFinite } from './toFinite.js';\nexport { default as toInteger } from './toInteger.js';\nexport { default as toIterator } from './toIterator.js';\nexport { default as toJSON } from './toJSON.js';\nexport { default as toLength } from './toLength.js';\nexport { default as toLower } from './toLower.js';\nexport { default as toNumber } from './toNumber.js';\nexport { default as toPairs } from './toPairs.js';\nexport { default as toPairsIn } from './toPairsIn.js';\nexport { default as toPath } from './toPath.js';\nexport { default as toPlainObject } from './toPlainObject.js';\nexport { default as toSafeInteger } from './toSafeInteger.js';\nexport { default as toString } from './toString.js';\nexport { default as toUpper } from './toUpper.js';\nexport { default as transform } from './transform.js';\nexport { default as trim } from './trim.js';\nexport { default as trimEnd } from './trimEnd.js';\nexport { default as trimStart } from './trimStart.js';\nexport { default as truncate } from './truncate.js';\nexport { default as unary } from './unary.js';\nexport { default as unescape } from './unescape.js';\nexport { default as union } from './union.js';\nexport { default as unionBy } from './unionBy.js';\nexport { default as unionWith } from './unionWith.js';\nexport { default as uniq } from './uniq.js';\nexport { default as uniqBy } from './uniqBy.js';\nexport { default as uniqWith } from './uniqWith.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as unset } from './unset.js';\nexport { default as unzip } from './unzip.js';\nexport { default as unzipWith } from './unzipWith.js';\nexport { default as update } from './update.js';\nexport { default as updateWith } from './updateWith.js';\nexport { default as upperCase } from './upperCase.js';\nexport { default as upperFirst } from './upperFirst.js';\nexport { default as value } from './value.js';\nexport { default as valueOf } from './valueOf.js';\nexport { default as values } from './values.js';\nexport { default as valuesIn } from './valuesIn.js';\nexport { default as without } from './without.js';\nexport { default as words } from './words.js';\nexport { default as wrap } from './wrap.js';\nexport { default as wrapperAt } from './wrapperAt.js';\nexport { default as wrapperChain } from './wrapperChain.js';\nexport { default as wrapperCommit } from './commit.js';\nexport { default as wrapperLodash } from './wrapperLodash.js';\nexport { default as wrapperNext } from './next.js';\nexport { default as wrapperPlant } from './plant.js';\nexport { default as wrapperReverse } from './wrapperReverse.js';\nexport { default as wrapperToIterator } from './toIterator.js';\nexport { default as wrapperValue } from './wrapperValue.js';\nexport { default as xor } from './xor.js';\nexport { default as xorBy } from './xorBy.js';\nexport { default as xorWith } from './xorWith.js';\nexport { default as zip } from './zip.js';\nexport { default as zipObject } from './zipObject.js';\nexport { default as zipObjectDeep } from './zipObjectDeep.js';\nexport { default as zipWith } from './zipWith.js';\nexport { default } from './lodash.default.js';\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","export * from 'zustand/vanilla';\nexport * from 'zustand/react';\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import type { StateCreator } from 'zustand'\n\nexport interface VisibilityState {\n open: Map<number, boolean>\n usedIds: Set<number>\n isOpen: (uuid: number) => boolean\n show: (uuid: number) => void\n hide: (uuid: number) => void\n hideAll: () => void\n checkUniqueness: (uuid: number) => boolean\n registerIds: (uuid: number) => boolean\n cleanup: (uuid: number) => void\n}\n\n/**\n * 创建可见性管理的 Zustand store 配置\n * 这是一个纯函数,返回 store 的配置对象\n * 使用函数形式延迟执行,避免模块初始化顺序问题\n */\nexport function createVisibilityStoreConfig(): StateCreator<VisibilityState, [], [], VisibilityState> {\n return (set, get) => ({\n open: new Map<number, boolean>(),\n usedIds: new Set<number>(),\n isOpen(uuid: number) {\n return get().open.get(uuid) ?? false\n },\n show(uuid: number) {\n set({ open: new Map(get().open).set(uuid, true) })\n },\n hide(uuid: number) {\n set({ open: new Map(get().open).set(uuid, false) })\n },\n hideAll() {\n set({ open: new Map<number, boolean>() })\n },\n checkUniqueness(uuid: number) {\n return !get().usedIds.has(uuid)\n },\n registerIds(uuid: number) {\n const { usedIds } = get()\n if (usedIds.has(uuid)) return false\n\n set({ usedIds: new Set(usedIds).add(uuid) })\n return true\n },\n cleanup(uuid: number) {\n const { open, usedIds } = get()\n const newOpen = new Map(open)\n const newUsedIds = new Set(usedIds)\n newOpen.delete(uuid)\n newUsedIds.delete(uuid)\n set({ open: newOpen, usedIds: newUsedIds })\n },\n })\n}\n","/**\n * 生成唯一 ID 的函数\n * 使用时间戳 + 随机数 + 计数器的组合来确保唯一性\n */\nlet globalCounter = 0\n\nexport const generateId = (): number => {\n const timestamp = Date.now()\n const random = Math.floor(Math.random() * 1000)\n const counter = ++globalCounter % 1000\n\n // 组合:时间戳(毫秒) * 1000000 + 随机数 * 1000 + 计数器\n // 这样可以确保即使在同一毫秒内生成多个ID也不会重复\n return timestamp * 1000000 + random * 1000 + counter\n}\n","import type { StateStorage } from 'zustand/middleware'\n\n/**\n * 混合存储策略\n * - 优先从 SessionStorage 读取数据,防止多开页面时的数据冲突\n * - 写入时同时更新 SessionStorage 和 LocalStorage\n * - SessionStorage 不存在时,fallback 到 LocalStorage\n */\nexport const mixedStorage: StateStorage = {\n getItem(name) {\n return sessionStorage.getItem(name) ?? localStorage.getItem(name)\n },\n setItem(name, value) {\n sessionStorage.setItem(name, value)\n localStorage.setItem(name, value)\n },\n removeItem(name) {\n sessionStorage.removeItem(name)\n localStorage.removeItem(name)\n },\n}\n","export { createVisibilityStoreConfig, type VisibilityState } from './createVisibilityStore'\nexport { generateId } from './generateId'\nexport { mixedStorage } from './mixedStorage'\n","export const SSO_URL = 'https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1'\n\nexport const APP_ID_HEADER = 'App-ID'\n\nexport const FRONTEND_ROUTE_PREFIX = '/console/'\n\n/**\n * 权限系统模式枚举\n * - GAME_SCOPED: 游戏范围权限(角色权限包含游戏信息)\n * - GROUP_BASED: 基于项目组的权限(需要先选择项目组才能选择游戏)\n * - DIRECT_GAME: 直接游戏权限(不需要项目组,直接选择游戏)\n */\nexport enum PermissionMode {\n /** 游戏范围权限:角色权限包含游戏范围信息 */\n GAME_SCOPED = 'game_scoped',\n /** 基于项目组的权限:权限依赖项目组,需要先选择项目组才能选择游戏 */\n GROUP_BASED = 'group_based',\n /** 直接游戏权限:权限直接选择游戏,不需要项目组作为中间层 */\n DIRECT_GAME = 'direct_game',\n}\n\nexport const WILDCARD = '*'\n","import type { Locale } from '.'\n\nconst locale: Locale = {\n global: {\n noEntitlement: '无权限,请联系管理员',\n name: '名称',\n creationTime: '创建时间',\n operation: '操作',\n update: '更新',\n edit: '编辑',\n delete: '删除',\n selectAll: '全选',\n game: '游戏',\n user: '用户',\n role: '角色',\n username: '用户名',\n password: '密码',\n label: '标签',\n method: '方法',\n route: '路由',\n request: '请求',\n response: '响应',\n add: '添加',\n signIn: '登录',\n projectGroup: '项目组',\n view: '查看',\n back: '返回',\n },\n SignIn: {\n title: '登录方式',\n signInWithIDass: 'IDass 登录',\n unregistered: '您还未在平台注册,请联系管理员',\n welcome: '欢迎',\n },\n NotFound: {\n subTitle: '访问的页面不存在',\n buttonText: '返回首页',\n },\n FilterFormWrapper: {\n confirmText: '查询',\n resetText: '重置',\n },\n FormModal: {\n confirmText: '确认',\n cancelText: '取消',\n },\n GameSelect: {\n label: '当前游戏',\n placeholder: '请选择游戏',\n },\n RequireGame: {\n description: '请选择游戏',\n },\n UserDropdown: {\n signOutText: '登出',\n },\n User: {\n createTitle: '创建用户',\n createSuccessfully: '用户创建成功',\n updateTitle: '更新用户',\n updateSuccessfully: '用户更新成功',\n deleteTitle: '删除用户',\n deleteContent: '确定要删除用户 <%= user %> 吗?',\n deleteSuccessfully: '用户删除成功',\n },\n Role: {\n createTitle: '创建角色',\n createSuccessfully: '角色创建成功',\n updateTitle: '更新角色',\n updateSuccessfully: '角色更新成功',\n deleteTitle: '删除角色',\n deleteContent: '确定要删除角色 <%= role %> 吗?',\n deleteSuccessfully: '角色删除成功',\n },\n PermissionList: {\n failedDescription: '获取权限列表失败',\n baseSectionTitle: '平台基础权限',\n gameSectionTitle: '游戏权限',\n gameSectionDescription: '请先选择游戏',\n gameSelectPlaceholder: '请先选择游戏',\n removeText: '移除',\n addText: '添加游戏权限',\n },\n RoleDetail: {\n title: '角色详情',\n },\n InfiniteList: {\n loadingText: '加载中',\n reachEndText: '已经到底了',\n loadMoreText: '加载更多',\n },\n}\n\nexport default locale\n","import type { StateCreator } from 'zustand'\n\nimport { PermissionMode } from '@/constants'\nimport type { Locale } from '@/locale'\nimport zhCN from '@/locale/zh_CN'\n\nexport interface ContextSlice {\n locale: Locale\n permissionMode: PermissionMode // 权限模式\n useGameApiV2: boolean // 是否使用游戏 API V2 版本\n loginPath: string // 登录页路径\n isGlobalMode: boolean // 为 true 时,APP-ID header 始终使用 'global',否则为当前游戏 id\n gameScoped?: boolean // 数据是否按游戏划分范围,默认为 false\n sidebarWidth?: number // 侧边栏宽度\n sidebarCollapsible?: boolean // 侧边栏是否可折叠\n homePath: string // 首页地址\n apiBaseUrl?: string // 接口基础路径\n}\n\n/** ContextSlice 的默认值 */\nconst defaultContextSlice = {\n locale: zhCN,\n useGameApiV2: false,\n isGlobalMode: false,\n gameScoped: false,\n loginPath: '/sign_in',\n homePath: '/',\n permissionMode: PermissionMode.GAME_SCOPED,\n sidebarWidth: 250,\n} as const\n\nexport const createContextSlice: StateCreator<ContextSlice, [], [], ContextSlice> = () => ({\n ...defaultContextSlice,\n})\n","import type { StateCreator } from 'zustand'\n\nexport interface GameSlice {\n appId?: string | number\n setAppId: (id?: string | number) => void\n}\n\nexport const createGameSlice: StateCreator<GameSlice, [], [], GameSlice> = set => ({\n setAppId: id => set(() => ({ appId: id })),\n})\n","import type { StateCreator } from 'zustand'\n\nexport interface LayoutSlice {\n collapsed: boolean // 侧边栏是否折叠\n toggleCollapsed: () => void\n}\n\nexport const createLayoutSlice: StateCreator<LayoutSlice, [], [], LayoutSlice> = set => ({\n collapsed: false,\n toggleCollapsed: () => set(s => ({ collapsed: !s.collapsed })),\n})\n","import { isEqual } from 'lodash-es'\nimport type { StateCreator } from 'zustand'\n\n/**\n * 导航菜单状态接口\n */\nexport interface NavSlice {\n /** 当前展开的菜单项 key 数组 */\n openKeys: string[]\n /** 当前选中的菜单项 key 数组 */\n selectedKeys: string[]\n /** 设置展开的菜单项 */\n setOpenKeys: (keys: string[]) => void\n /** 设置选中的菜单项 */\n setSelectedKeys: (keys: string[]) => void\n}\n\n/**\n * 创建导航菜单 slice\n * 使用 isEqual 进行深度比较,避免不必要的状态更新\n */\nexport const createNavSlice: StateCreator<NavSlice, [], [], NavSlice> = (set, get) => ({\n openKeys: [],\n setOpenKeys: keys => {\n const current = get()\n // 使用 isEqual 进行深度比较,避免不必要的状态更新\n // 这样可以减少不必要的重渲染\n if (!isEqual(current.openKeys, keys)) {\n set({ openKeys: keys })\n }\n },\n selectedKeys: [],\n setSelectedKeys: keys => {\n const current = get()\n // 使用 isEqual 进行深度比较,避免不必要的状态更新\n if (!isEqual(current.selectedKeys, keys)) {\n set({ selectedKeys: keys })\n }\n },\n})\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","import { jwtDecode } from 'jwt-decode'\nimport type { StateCreator } from 'zustand'\n\n/**\n * JWT Token 解码后的用户信息\n */\nexport interface UserInfo {\n authorityId: string\n exp: number\n}\n\nexport interface TokenSlice {\n /** JWT Token */\n token?: string\n user: UserInfo | null\n setToken: (token: string) => void\n clearToken: () => void\n}\n\nconst decodeToken = (token?: string): UserInfo | null => {\n if (!token) return null\n\n try {\n return jwtDecode<UserInfo>(token)\n } catch {\n return null\n }\n}\n\nexport const createTokenSlice: StateCreator<TokenSlice, [], [], TokenSlice> = set => ({\n token: undefined,\n user: null,\n setToken: token => set(() => ({ token, user: decodeToken(token) })),\n clearToken: () => set(() => ({ token: undefined, user: null })),\n})\n","import type { StateCreator, StoreApi } from 'zustand'\nimport { createStore } from 'zustand'\nimport { createJSONStorage, persist } from 'zustand/middleware'\n\nimport { mixedStorage } from '@/utils'\n\nimport { type ContextSlice, createContextSlice } from './context'\nimport { createGameSlice, type GameSlice } from './game'\nimport { createLayoutSlice, type LayoutSlice } from './layout'\nimport { createNavSlice, type NavSlice } from './nav'\nimport { createTokenSlice, type TokenSlice, type UserInfo } from './token'\n\nexport type ToolkitsState = {\n context: ContextSlice\n token: TokenSlice\n game: GameSlice\n layout: LayoutSlice\n nav: NavSlice\n clear: () => void\n}\n\n/**\n * 为嵌套结构的 store 创建 slice 适配器\n *\n * 由于 zustand 的标准做法是扁平组合多个 slice,而我们需要嵌套结构(如 `state.token.setToken()`),\n * 因此需要创建适配器来将全局的 `set/get` 转换为针对特定 slice 的 `set/get`。\n *\n * @template K - ToolkitsState 的 key,用于指定要适配的 slice\n * @param set - Zustand store 的全局 set 函数,用于更新整个 state\n * @param get - Zustand store 的全局 get 函数,用于获取整个 state\n * @param key - 要适配的 slice 的 key(如 'token', 'game', 'layout' 等)\n * @returns 返回适配后的 set 和 get 函数,可以直接用于创建对应的 slice\n *\n * @example\n * ```typescript\n * const adapter = createSliceAdapter(set, get, 'token')\n * const tokenSlice = createTokenSlice(adapter.set, adapter.get, store)\n * ```\n */\nfunction createSliceAdapter<K extends keyof ToolkitsState>(\n set: Parameters<StateCreator<ToolkitsState, [], [], ToolkitsState>>[0],\n get: Parameters<StateCreator<ToolkitsState, [], [], ToolkitsState>>[1],\n key: K,\n) {\n type SliceType = ToolkitsState[K]\n\n /**\n * 适配后的 set 函数,用于更新指定的 slice\n *\n * 该函数将 slice 级别的更新转换为全局 state 的更新:\n * - 当 `replace` 为 true 时,完全替换整个 slice\n * - 当 `partial` 为函数时,使用函数式更新\n * - 当 `partial` 为对象时,进行浅合并更新\n */\n const sliceSet: Parameters<StateCreator<SliceType, [], [], SliceType>>[0] = (partial, replace?) => {\n if (replace) {\n // 完全替换模式:获取更新后的值,然后替换整个 slice\n const update = typeof partial === 'function' ? partial(get()[key]) : partial\n set({ ...get(), [key]: update } as ToolkitsState, true)\n } else if (typeof partial === 'function') {\n // 函数式更新:使用当前 slice 状态计算新状态\n set((state): Partial<ToolkitsState> => {\n const updated = { ...state[key], ...partial(state[key]) }\n return { [key]: updated } as unknown as Partial<ToolkitsState>\n })\n } else {\n // 对象式更新:浅合并到当前 slice 状态\n set((state): Partial<ToolkitsState> => {\n const updated = { ...state[key], ...partial }\n return { [key]: updated } as unknown as Partial<ToolkitsState>\n })\n }\n }\n\n /**\n * 适配后的 get 函数,用于获取指定的 slice\n */\n const sliceGet: Parameters<StateCreator<SliceType, [], [], SliceType>>[1] = () => get()[key]\n\n return { set: sliceSet, get: sliceGet }\n}\n\nexport const createToolkitsStore = (initProps?: Partial<ContextSlice>) => {\n return createStore<ToolkitsState>()(\n persist(\n (set, get, store) => {\n /**\n * 统一创建 slice 的辅助函数\n *\n * 该函数封装了 slice 创建的逻辑,包括:\n * 1. 创建适配器(将全局 set/get 转换为 slice 级别的 set/get)\n * 2. 适配 store 类型(将全局 store 转换为 slice 级别的 store)\n * 3. 调用 slice creator 创建 slice\n *\n * @template K - ToolkitsState 的 key\n * @param key - slice 的 key\n * @param creator - slice 的创建函数(StateCreator)\n * @returns 创建好的 slice 实例\n */\n const createSlice = <K extends keyof ToolkitsState>(\n key: K,\n creator: StateCreator<ToolkitsState[K], [], [], ToolkitsState[K]>,\n ) => {\n const adapter = createSliceAdapter(set, get, key)\n // 将全局 store 适配为对应 slice 的 StoreApi(类型转换是安全的,因为实际运行时结构兼容)\n const sliceStore = store as unknown as StoreApi<ToolkitsState[K]>\n return creator(adapter.set, adapter.get, sliceStore)\n }\n\n const tokenSlice = createSlice('token', createTokenSlice)\n const gameSlice = createSlice('game', createGameSlice)\n const layoutSlice = createSlice('layout', createLayoutSlice)\n const navSlice = createSlice('nav', createNavSlice)\n const contextSlice = createSlice('context', createContextSlice)\n\n return {\n context: {\n ...contextSlice,\n ...initProps,\n },\n token: tokenSlice,\n game: gameSlice,\n layout: layoutSlice,\n nav: navSlice,\n clear: () => {\n get().token.clearToken()\n store.persist.clearStorage()\n },\n }\n },\n {\n name: 'ToolkitsStore',\n storage: createJSONStorage(() => mixedStorage),\n partialize: state => ({\n token: state.token.token,\n appId: state.game.appId,\n user: state.token.user,\n collapsed: state.layout.collapsed,\n openKeys: state.nav.openKeys,\n selectedKeys: state.nav.selectedKeys,\n }),\n merge: (persistedState, currentState) => {\n const { token, user, appId, collapsed, openKeys, selectedKeys } = persistedState as {\n token: string\n user: UserInfo\n appId: string\n collapsed: boolean\n openKeys?: string[]\n selectedKeys?: string[]\n }\n return {\n ...currentState,\n token: { ...currentState.token, token, user },\n game: { ...currentState.game, appId },\n layout: { ...currentState.layout, collapsed: collapsed ?? currentState.layout.collapsed },\n nav: {\n ...currentState.nav,\n openKeys: openKeys ?? currentState.nav.openKeys,\n selectedKeys: selectedKeys ?? currentState.nav.selectedKeys,\n },\n }\n },\n },\n ),\n )\n}\n","import { App } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { createContext, useContext, useRef } from 'react'\nimport { useStore } from 'zustand'\n\nimport type { ToolkitsState } from '@/stores'\nimport { createToolkitsStore } from '@/stores'\nimport type { ContextSlice } from '@/stores/context'\n\ntype ToolkitsStore = ReturnType<typeof createToolkitsStore>\n\nconst ToolkitsContext = createContext<ToolkitsStore | null>(null)\n\n// 重载函数签名:支持有 selector 和无 selector 两种调用方式\nexport function useToolkitsStore(): ToolkitsState\nexport function useToolkitsStore<T>(selector: (state: ToolkitsState) => T): T\nexport function useToolkitsStore<T>(selector?: (state: ToolkitsState) => T) {\n const store = useContext(ToolkitsContext)\n if (!store) {\n const componentStack = new Error().stack\n const componentName = componentStack?.split('\\n')[2]?.trim() || 'Unknown'\n throw new Error(\n `Missing ToolkitsProvider in the tree. Component \"${componentName}\" must be wrapped with <ToolkitsProvider>. Please ensure ToolkitsProvider is rendered above this component in the component tree.`,\n )\n }\n\n return useStore(store, selector ?? (state => state as T))\n}\n\nexport type ToolkitsProviderProps = PropsWithChildren<Partial<ContextSlice>>\n\nconst ToolkitsProvider: FC<ToolkitsProviderProps> = props => {\n const { children, ...restProps } = props\n const storeRef = useRef<ToolkitsStore | undefined>(undefined)\n const parentStore = useContext(ToolkitsContext)\n\n if (!storeRef.current) {\n // 从父级 store 中提取 ContextSlice 相关的属性\n const parentContext = parentStore?.getState().context ?? {}\n\n // restProps 会覆盖父级的对应属性\n storeRef.current = createToolkitsStore({ ...parentContext, ...restProps })\n }\n\n if (!storeRef.current.getState().context.loginPath) {\n throw new Error('ToolkitsProvider: 请配置 \"loginPath\"')\n }\n\n return (\n <ToolkitsContext.Provider value={storeRef.current}>\n <App>{children}</App>\n </ToolkitsContext.Provider>\n )\n}\n\nif (process.env.NODE_ENV !== 'production') {\n ToolkitsProvider.displayName = 'ToolkitsProvider'\n}\n\nexport default ToolkitsProvider\n","export type { ToolkitsProviderProps } from './ToolkitsProvider'\nexport { default as ToolkitsProvider, useToolkitsStore } from './ToolkitsProvider'\n","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 {\n context: { locale },\n } = useToolkitsStore()\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","export type Locale = {\n global: {\n noEntitlement: string\n name: string\n creationTime: string\n operation: string\n update: string\n edit: string\n delete: string\n selectAll: string\n game: string\n user: string\n role: string\n username: string\n password: string\n label: string\n method: string\n route: string\n request: string\n response: string\n add: string\n signIn: string\n projectGroup: string\n view: string\n back: string\n }\n SignIn: {\n title: string\n signInWithIDass: string\n unregistered: string\n welcome: string\n }\n NotFound: {\n subTitle: string\n buttonText: string\n }\n FilterFormWrapper: {\n confirmText: string\n resetText: string\n }\n FormModal: {\n confirmText: string\n cancelText: string\n }\n GameSelect: {\n label: string\n placeholder: string\n }\n RequireGame: {\n description: string\n }\n UserDropdown: {\n signOutText: string\n }\n User: {\n createTitle: string\n createSuccessfully: string\n updateTitle: string\n updateSuccessfully: string\n deleteTitle: string\n deleteContent: string\n deleteSuccessfully: string\n }\n Role: {\n createTitle: string\n createSuccessfully: string\n updateTitle: string\n updateSuccessfully: string\n deleteTitle: string\n deleteContent: string\n deleteSuccessfully: string\n }\n PermissionList: {\n failedDescription: string\n baseSectionTitle: string\n gameSectionTitle: string\n gameSectionDescription: string\n gameSelectPlaceholder: string\n removeText: string\n addText: string\n }\n RoleDetail: {\n title: string\n }\n InfiniteList: {\n loadingText: string\n reachEndText: string\n loadMoreText: string\n }\n}\n\nexport { useTranslation } from './hooks'\n","export class Subscribable<TListener extends Function> {\n protected listeners = new Set<TListener>()\n\n constructor() {\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","/**\n * {@link TimeoutManager} does not support passing arguments to the callback.\n *\n * `(_: void)` is the argument type inferred by TypeScript's default typings for\n * `setTimeout(cb, number)`.\n * If we don't accept a single void argument, then\n * `new Promise(resolve => timeoutManager.setTimeout(resolve, N))` is a type error.\n */\nexport type TimeoutCallback = (_: void) => void\n\n/**\n * Wrapping `setTimeout` is awkward from a typing perspective because platform\n * typings may extend the return type of `setTimeout`. For example, NodeJS\n * typings add `NodeJS.Timeout`; but a non-default `timeoutManager` may not be\n * able to return such a type.\n */\nexport type ManagedTimerId = number | { [Symbol.toPrimitive]: () => number }\n\n/**\n * Backend for timer functions.\n */\nexport type TimeoutProvider<TTimerId extends ManagedTimerId = ManagedTimerId> =\n {\n readonly setTimeout: (callback: TimeoutCallback, delay: number) => TTimerId\n readonly clearTimeout: (timeoutId: TTimerId | undefined) => void\n\n readonly setInterval: (callback: TimeoutCallback, delay: number) => TTimerId\n readonly clearInterval: (intervalId: TTimerId | undefined) => void\n }\n\nexport const defaultTimeoutProvider: TimeoutProvider<\n ReturnType<typeof setTimeout>\n> = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId),\n}\n\n/**\n * Allows customization of how timeouts are created.\n *\n * @tanstack/query-core makes liberal use of timeouts to implement `staleTime`\n * and `gcTime`. The default TimeoutManager provider uses the platform's global\n * `setTimeout` implementation, which is known to have scalability issues with\n * thousands of timeouts on the event loop.\n *\n * If you hit this limitation, consider providing a custom TimeoutProvider that\n * coalesces timeouts.\n */\nexport class TimeoutManager implements Omit<TimeoutProvider, 'name'> {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider: TimeoutProvider<any> = defaultTimeoutProvider\n #providerCalled = false\n\n setTimeoutProvider<TTimerId extends ManagedTimerId>(\n provider: TimeoutProvider<TTimerId>,\n ): void {\n if (process.env.NODE_ENV !== 'production') {\n if (this.#providerCalled && provider !== this.#provider) {\n // After changing providers, `clearTimeout` will not work as expected for\n // timeouts from the previous provider.\n //\n // Since they may allocate the same timeout ID, clearTimeout may cancel an\n // arbitrary different timeout, or unexpected no-op.\n //\n // We could protect against this by mixing the timeout ID bits\n // deterministically with some per-provider bits.\n //\n // We could internally queue `setTimeout` calls to `TimeoutManager` until\n // some API call to set the initial provider.\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider },\n )\n }\n }\n\n this.#provider = provider\n if (process.env.NODE_ENV !== 'production') {\n this.#providerCalled = false\n }\n }\n\n setTimeout(callback: TimeoutCallback, delay: number): ManagedTimerId {\n if (process.env.NODE_ENV !== 'production') {\n this.#providerCalled = true\n }\n return this.#provider.setTimeout(callback, delay)\n }\n\n clearTimeout(timeoutId: ManagedTimerId | undefined): void {\n this.#provider.clearTimeout(timeoutId)\n }\n\n setInterval(callback: TimeoutCallback, delay: number): ManagedTimerId {\n if (process.env.NODE_ENV !== 'production') {\n this.#providerCalled = true\n }\n return this.#provider.setInterval(callback, delay)\n }\n\n clearInterval(intervalId: ManagedTimerId | undefined): void {\n this.#provider.clearInterval(intervalId)\n }\n}\n\nexport const timeoutManager = new TimeoutManager()\n\n/**\n * In many cases code wants to delay to the next event loop tick; this is not\n * mediated by {@link timeoutManager}.\n *\n * This function is provided to make auditing the `tanstack/query-core` for\n * incorrect use of system `setTimeout` easier.\n */\nexport function systemSetTimeoutZero(callback: TimeoutCallback): void {\n setTimeout(callback, 0)\n}\n","import { timeoutManager } from './timeoutManager'\nimport type {\n DefaultError,\n Enabled,\n FetchStatus,\n MutationKey,\n MutationStatus,\n QueryFunction,\n QueryKey,\n QueryOptions,\n StaleTime,\n StaleTimeFunction,\n} from './types'\nimport type { Mutation } from './mutation'\nimport type { FetchOptions, Query } from './query'\n\n// TYPES\n\ntype DropLast<T extends ReadonlyArray<unknown>> = T extends readonly [\n ...infer R,\n unknown,\n]\n ? readonly [...R]\n : never\n\ntype TuplePrefixes<T extends ReadonlyArray<unknown>> = T extends readonly []\n ? readonly []\n : TuplePrefixes<DropLast<T>> | T\n\nexport interface QueryFilters<TQueryKey extends QueryKey = QueryKey> {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: TQueryKey | TuplePrefixes<TQueryKey>\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (\n mutation: Mutation<TData, TError, TVariables, TOnMutateResult>,\n ) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: TuplePrefixes<MutationKey>\n /**\n * Filter by mutation status\n */\n status?: MutationStatus\n}\n\nexport type Updater<TInput, TOutput> = TOutput | ((input: TInput) => TOutput)\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in globalThis\n\nexport function noop(): void\nexport function noop(): undefined\nexport function noop() {}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as (_: TInput) => TOutput)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function resolveStaleTime<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n staleTime:\n | undefined\n | StaleTimeFunction<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): StaleTime | undefined {\n return typeof staleTime === 'function' ? staleTime(query) : staleTime\n}\n\nexport function resolveEnabled<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n enabled: undefined | Enabled<TQueryFnData, TError, TData, TQueryKey>,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n): boolean | undefined {\n return typeof enabled === 'function' ? enabled(query) : enabled\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, status, predicate, mutationKey } = filters\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (status && mutation.state.status !== status) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: Pick<QueryOptions<any, any, any, any>, 'queryKeyHashFn'>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query & mutation keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashKey(queryKey: QueryKey | MutationKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]))\n }\n\n return false\n}\n\nconst hasOwn = Object.prototype.hasOwnProperty\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b\n\n const aItems = array ? a : Object.keys(a)\n const aSize = aItems.length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? new Array(bSize) : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key: any = array ? i : bItems[i]\n const aItem = a[key]\n const bItem = b[key]\n\n if (aItem === bItem) {\n copy[key] = aItem\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++\n continue\n }\n\n if (\n aItem === null ||\n bItem === null ||\n typeof aItem !== 'object' ||\n typeof bItem !== 'object'\n ) {\n copy[key] = bItem\n continue\n }\n\n const v = replaceEqualDeep(aItem, bItem)\n copy[key] = v\n if (v === aItem) equalItems++\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n}\n\n/**\n * Shallow compare objects.\n */\nexport function shallowEqualObjects<T extends Record<string, any>>(\n a: T,\n b: T | undefined,\n): boolean {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown): value is Array<unknown> {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Record<PropertyKey, unknown> {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has no constructor\n const ctor = o.constructor\n if (ctor === undefined) {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Handles Objects created by Object.create(<arbitrary prototype>)\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout)\n })\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data) as TData\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== 'production') {\n try {\n return replaceEqualDeep(prevData, data)\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`,\n )\n\n // Prevent the replaceEqualDeep from being called again down below.\n throw error\n }\n }\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n\nexport function keepPreviousData<T>(\n previousData: T | undefined,\n): T | undefined {\n return previousData\n}\n\nexport function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {\n const newItems = [...items, item]\n return max && newItems.length > max ? newItems.slice(1) : newItems\n}\n\nexport function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {\n const newItems = [item, ...items]\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems\n}\n\nexport const skipToken = Symbol()\nexport type SkipToken = typeof skipToken\n\nexport function ensureQueryFn<\n TQueryFnData = unknown,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: {\n queryFn?: QueryFunction<TQueryFnData, TQueryKey> | SkipToken\n queryHash?: string\n },\n fetchOptions?: FetchOptions<TQueryFnData>,\n): QueryFunction<TQueryFnData, TQueryKey> {\n if (process.env.NODE_ENV !== 'production') {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`,\n )\n }\n }\n\n // if we attempt to retry a fetch that was triggered from an initialPromise\n // when we don't have a queryFn yet, we can't retry, so we just return the already rejected initialPromise\n // if an observer has already mounted, we will be able to retry with that queryFn\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise!\n }\n\n if (!options.queryFn || options.queryFn === skipToken) {\n return () =>\n Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`))\n }\n\n return options.queryFn\n}\n\nexport function shouldThrowError<T extends (...args: Array<any>) => boolean>(\n throwOnError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwOnError function to override throwing behavior on a per-error basis\n if (typeof throwOnError === 'function') {\n return throwOnError(...params)\n }\n\n return !!throwOnError\n}\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n const changed = this.#focused !== focused\n if (changed) {\n this.#focused = focused\n this.onFocus()\n }\n }\n\n onFocus(): void {\n const isFocused = this.isFocused()\n this.listeners.forEach((listener) => {\n listener(isFocused)\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n","/**\n * Thenable types which matches React's types for promises\n *\n * React seemingly uses `.status`, `.value` and `.reason` properties on a promises to optimistically unwrap data from promises\n *\n * @see https://github.com/facebook/react/blob/main/packages/shared/ReactTypes.js#L112-L138\n * @see https://github.com/facebook/react/blob/4f604941569d2e8947ce1460a0b2997e835f37b9/packages/react-debug-tools/src/ReactDebugHooks.js#L224-L227\n */\n\nimport { noop } from './utils'\n\ninterface Fulfilled<T> {\n status: 'fulfilled'\n value: T\n}\ninterface Rejected {\n status: 'rejected'\n reason: unknown\n}\ninterface Pending<T> {\n status: 'pending'\n\n /**\n * Resolve the promise with a value.\n * Will remove the `resolve` and `reject` properties from the promise.\n */\n resolve: (value: T) => void\n /**\n * Reject the promise with a reason.\n * Will remove the `resolve` and `reject` properties from the promise.\n */\n reject: (reason: unknown) => void\n}\n\nexport type FulfilledThenable<T> = Promise<T> & Fulfilled<T>\nexport type RejectedThenable<T> = Promise<T> & Rejected\nexport type PendingThenable<T> = Promise<T> & Pending<T>\n\nexport type Thenable<T> =\n | FulfilledThenable<T>\n | RejectedThenable<T>\n | PendingThenable<T>\n\nexport function pendingThenable<T>(): PendingThenable<T> {\n let resolve: Pending<T>['resolve']\n let reject: Pending<T>['reject']\n // this could use `Promise.withResolvers()` in the future\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n }) as PendingThenable<T>\n\n thenable.status = 'pending'\n thenable.catch(() => {\n // prevent unhandled rejection errors\n })\n\n function finalize(data: Fulfilled<T> | Rejected) {\n Object.assign(thenable, data)\n\n // clear pending props props to avoid calling them twice\n delete (thenable as Partial<PendingThenable<T>>).resolve\n delete (thenable as Partial<PendingThenable<T>>).reject\n }\n\n thenable.resolve = (value) => {\n finalize({\n status: 'fulfilled',\n value,\n })\n\n resolve(value)\n }\n thenable.reject = (reason) => {\n finalize({\n status: 'rejected',\n reason,\n })\n\n reject(reason)\n }\n\n return thenable\n}\n\n/**\n * This function takes a Promise-like input and detects whether the data\n * is synchronously available or not.\n *\n * It does not inspect .status, .value or .reason properties of the promise,\n * as those are not always available, and the .status of React's promises\n * should not be considered part of the public API.\n */\nexport function tryResolveSync(promise: Promise<unknown> | Thenable<unknown>) {\n let data: unknown\n\n promise\n .then((result) => {\n data = result\n return result\n }, noop)\n // .catch can be unavailable on certain kinds of thenable's\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ?.catch(noop)\n\n if (data !== undefined) {\n return { data }\n }\n\n return undefined\n}\n","// TYPES\n\nimport { systemSetTimeoutZero } from './timeoutManager'\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends Array<unknown>> = (...args: T) => void\n\ntype ScheduleFunction = (callback: () => void) => void\n\nexport const defaultScheduler: ScheduleFunction = systemSetTimeoutZero\n\nexport function createNotifyManager() {\n let queue: Array<NotifyCallback> = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n let scheduleFn = defaultScheduler\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleFn(() => {\n notifyFn(callback)\n })\n }\n }\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n return {\n batch: <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: <T extends Array<unknown>>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn: NotifyFunction) => {\n notifyFn = fn\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n },\n setScheduler: (fn: ScheduleFunction) => {\n scheduleFn = fn\n },\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (online: boolean) => void\ntype SetupFn = (setOnline: Listener) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable<Listener> {\n #online = true\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true)\n const offlineListener = () => onOnline(false)\n // Listen to online\n window.addEventListener('online', onlineListener, false)\n window.addEventListener('offline', offlineListener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', onlineListener)\n window.removeEventListener('offline', offlineListener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup(this.setOnline.bind(this))\n }\n\n setOnline(online: boolean): void {\n const changed = this.#online !== online\n\n if (changed) {\n this.#online = online\n this.listeners.forEach((listener) => {\n listener(online)\n })\n }\n }\n\n isOnline(): boolean {\n return this.#online\n }\n}\n\nexport const onlineManager = new OnlineManager()\n","import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { pendingThenable } from './thenable'\nimport { isServer, sleep } from './utils'\nimport type { Thenable } from './thenable'\nimport type { CancelOptions, DefaultError, NetworkMode } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n initialPromise?: Promise<TData>\n onCancel?: (error: TError) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n canRun: () => boolean\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n canStart: () => boolean\n start: () => Promise<TData>\n status: () => 'pending' | 'resolved' | 'rejected'\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError extends Error {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n super('CancelledError')\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\n/**\n * @deprecated Use instanceof `CancelledError` instead.\n */\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let continueFn: ((value?: unknown) => void) | undefined\n\n const thenable = pendingThenable<TData>()\n\n const isResolved = () =>\n (thenable.status as Thenable<TData>['status']) !== 'pending'\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions) as TError\n reject(error)\n\n config.onCancel?.(error)\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const canContinue = () =>\n focusManager.isFocused() &&\n (config.networkMode === 'always' || onlineManager.isOnline()) &&\n config.canRun()\n\n const canStart = () => canFetch(config.networkMode) && config.canRun()\n\n const resolve = (value: any) => {\n if (!isResolved()) {\n continueFn?.()\n thenable.resolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved()) {\n continueFn?.()\n thenable.reject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value)\n }\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved()) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved()) {\n return\n }\n\n let promiseOrValue: any\n\n // we can re-use config.initialPromise on the first call of run()\n const initialPromise =\n failureCount === 0 ? config.initialPromise : undefined\n\n // Execute query\n try {\n promiseOrValue = initialPromise ?? config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved()) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? (isServer ? 0 : 3)\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n return canContinue() ? undefined : pause()\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.()\n return thenable\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n // Start loop\n if (canStart()) {\n run()\n } else {\n pause().then(run)\n }\n return thenable\n },\n }\n}\n","import {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport { CancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\nimport type { QueryCache } from './queryCache'\nimport type { QueryClient } from './queryClient'\nimport type {\n CancelOptions,\n DefaultError,\n FetchStatus,\n InitialDataFunction,\n OmitKeyof,\n QueryFunctionContext,\n QueryKey,\n QueryMeta,\n QueryOptions,\n QueryStatus,\n SetDataOptions,\n StaleTime,\n} from './types'\nimport type { QueryObserver } from './queryObserver'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n client: QueryClient\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n client: QueryClient\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n query: Query,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions<TData = unknown> {\n cancelRefetch?: boolean\n meta?: FetchMeta\n initialPromise?: Promise<TData>\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #client: QueryClient\n #retryer?: Retryer<TData>\n observers: Array<QueryObserver<any, any, any, any, any>>\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.setOptions(config.options)\n this.observers = []\n this.#client = config.client\n this.#cache = this.#client.getQueryCache()\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = getDefaultState(this.options)\n this.state = config.state ?? this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n get promise(): Promise<TData> | undefined {\n return this.#retryer?.promise\n }\n\n setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (this.state && this.state.data === undefined) {\n const defaultState = getDefaultState(this.options)\n if (defaultState.data !== undefined) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt),\n )\n this.#initialState = defaultState\n }\n }\n }\n\n protected optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#retryer?.promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false,\n )\n }\n\n isDisabled(): boolean {\n if (this.getObserversCount() > 0) {\n return !this.isActive()\n }\n // if a query has no observers, it should still be considered disabled if it never attempted a fetch\n return (\n this.options.queryFn === skipToken ||\n this.state.dataUpdateCount + this.state.errorUpdateCount === 0\n )\n }\n\n isStatic(): boolean {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) =>\n resolveStaleTime(observer.options.staleTime, this) === 'static',\n )\n }\n\n return false\n }\n\n isStale(): boolean {\n // check observers first, their `isStale` has the source of truth\n // calculated with `isStaleByTime` and it takes `enabled` into account\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale,\n )\n }\n\n return this.state.data === undefined || this.state.isInvalidated\n }\n\n isStaleByTime(staleTime: StaleTime = 0): boolean {\n // no data is always stale\n if (this.state.data === undefined) {\n return true\n }\n // static is never stale\n if (staleTime === 'static') {\n return false\n }\n // if the query is invalidated, it is stale\n if (this.state.isInvalidated) {\n return true\n }\n\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n }\n\n onFocus(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer)\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n async fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions<TQueryFnData>,\n ): Promise<TData> {\n if (\n this.state.fetchStatus !== 'idle' &&\n // If the promise in the retyer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== 'rejected'\n ) {\n if (this.state.data !== undefined && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetch\n this.cancel({ silent: true })\n } else if (this.#retryer) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer.continueRetry()\n // Return current promise if we are already fetching\n return this.#retryer.promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn)\n if (observer) {\n this.setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n // Create fetch function\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions)\n\n // Create query function context\n const createQueryFnContext = (): QueryFunctionContext<TQueryKey> => {\n const queryFnContext: OmitKeyof<\n QueryFunctionContext<TQueryKey>,\n 'signal'\n > = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta,\n }\n addSignalProperty(queryFnContext)\n return queryFnContext as QueryFunctionContext<TQueryKey>\n }\n\n const queryFnContext = createQueryFnContext()\n\n this.#abortSignalConsumed = false\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this as unknown as Query,\n )\n }\n\n return queryFn(queryFnContext)\n }\n\n // Trigger behavior hook\n const createFetchContext = (): FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n > => {\n const context: OmitKeyof<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n return context as FetchContext<TQueryFnData, TError, TData, TQueryKey>\n }\n\n const context = createFetchContext()\n\n this.options.behavior?.onFetch(context, this as unknown as Query)\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise as\n | Promise<TData>\n | undefined,\n fn: context.fetchFn as () => Promise<TData>,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: 'idle' as const,\n })\n }\n abortController.abort()\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true,\n })\n\n try {\n const data = await this.#retryer.start()\n // this is more of a runtime guard\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (data === undefined) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n throw new Error(`${this.queryHash} data is undefined`)\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n return data\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n // silent cancellation implies a new fetch is going to be started,\n // so we piggyback onto that promise\n return this.#retryer.promise\n } else if (error.revert) {\n // transform error into reverted state data\n // if the initial fetch was cancelled, we have no data, so we have\n // to get reject with a CancelledError\n if (this.state.data === undefined) {\n throw error\n }\n return this.state.data\n }\n }\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n\n throw error // rethrow the error for further handling\n } finally {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null,\n }\n case 'success':\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...(!action.manual && {\n fetchStatus: 'idle' as const,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n // If fetching ends successfully, we don't need revertState as a fallback anymore.\n // For manual updates, capture the state to revert to it in case of a cancellation.\n this.#revertState = action.manual ? newState : undefined\n\n return newState\n case 'error':\n const error = action.error\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nexport function fetchState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n data: TData | undefined,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? 'fetching' : 'paused',\n ...(data === undefined &&\n ({\n error: null,\n status: 'pending',\n } as const)),\n } as const\n}\n\nfunction successState<TData>(data: TData | undefined, dataUpdatedAt?: number) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success' as const,\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = data !== undefined\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? (initialDataUpdatedAt ?? Date.now()) : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n","import { focusManager } from './focusManager'\nimport { notifyManager } from './notifyManager'\nimport { fetchState } from './query'\nimport { Subscribable } from './subscribable'\nimport { pendingThenable } from './thenable'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { timeoutManager } from './timeoutManager'\nimport type { ManagedTimerId } from './timeoutManager'\nimport type { FetchOptions, Query, QueryState } from './query'\nimport type { QueryClient } from './queryClient'\nimport type { PendingThenable, Thenable } from './thenable'\nimport type {\n DefaultError,\n DefaultedQueryObserverOptions,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\ninterface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #currentThenable: Thenable<TData>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ManagedTimerId\n #refetchIntervalId?: ManagedTimerId\n #currentRefetchInterval?: number | false\n #trackedProps = new Set<keyof QueryObserverResult>()\n\n constructor(\n client: QueryClient,\n public options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.#selectError = null\n this.#currentThenable = pendingThenable()\n\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n } else {\n this.updateResult()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (\n this.options.enabled !== undefined &&\n typeof this.options.enabled !== 'boolean' &&\n typeof this.options.enabled !== 'function' &&\n typeof resolveEnabled(this.options.enabled, this.#currentQuery) !==\n 'boolean'\n ) {\n throw new Error(\n 'Expected enabled to be a boolean or a callback that returns a boolean',\n )\n }\n\n this.#updateQuery()\n this.#currentQuery.setOptions(this.options)\n\n if (\n prevOptions._defaulted &&\n !shallowEqualObjects(this.options, prevOptions)\n ) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.updateResult()\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n resolveEnabled(this.options.enabled, this.#currentQuery) !==\n resolveEnabled(prevOptions.enabled, this.#currentQuery) ||\n resolveStaleTime(this.options.staleTime, this.#currentQuery) !==\n resolveStaleTime(prevOptions.staleTime, this.#currentQuery))\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n resolveEnabled(this.options.enabled, this.#currentQuery) !==\n resolveEnabled(prevOptions.enabled, this.#currentQuery) ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n const result = this.createResult(query, options)\n\n if (shouldAssignObserverCurrentProperties(this, result)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult every time\n // an observer reads an optimistic value.\n\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.#currentResult = result\n this.#currentResultOptions = this.options\n this.#currentResultState = this.#currentQuery.state\n }\n return result\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n onPropTracked?: (key: keyof QueryObserverResult) => void,\n ): QueryObserverResult<TData, TError> {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key as keyof QueryObserverResult)\n onPropTracked?.(key as keyof QueryObserverResult)\n if (key === 'promise') {\n this.trackProp('data')\n if (\n !this.options.experimental_prefetchInRender &&\n this.#currentThenable.status === 'pending'\n ) {\n this.#currentThenable.reject(\n new Error(\n 'experimental_prefetchInRender feature flag is not enabled',\n ),\n )\n }\n }\n return Reflect.get(target, key)\n },\n })\n }\n\n trackProp(key: keyof QueryObserverResult) {\n this.#trackedProps.add(key)\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: Omit<ObserverFetchOptions, 'initialPromise'>,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery,\n )\n\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return\n }\n\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime)\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.#currentQuery)\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n resolveEnabled(this.options.enabled, this.#currentQuery) === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let newState = { ...state }\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options),\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n newState.fetchStatus = 'idle'\n }\n }\n\n let { error, errorUpdatedAt, status } = newState\n\n // Per default, use query data\n data = newState.data as unknown as TData\n let skipSelect = false\n\n // use placeholderData if needed\n if (\n options.placeholderData !== undefined &&\n data === undefined &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n // we have to skip select when reading this memoization\n // because prevResult.data is already \"selected\"\n skipSelect = true\n } else {\n // compute placeholderData\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n }\n\n if (placeholderData !== undefined) {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n // Select data if needed\n // this also runs placeholderData through the select function\n if (options.select && data !== undefined && !skipSelect) {\n // Memoize select result\n if (\n prevResult &&\n data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(data as any)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = newState.fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n const hasData = data !== undefined\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount:\n newState.dataUpdateCount > queryInitialState.dataUpdateCount ||\n newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false,\n }\n\n const nextResult = result as QueryObserverResult<TData, TError>\n\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable: PendingThenable<TData>) => {\n if (nextResult.status === 'error') {\n thenable.reject(nextResult.error)\n } else if (nextResult.data !== undefined) {\n thenable.resolve(nextResult.data)\n }\n }\n\n /**\n * Create a new thenable and result promise when the results have changed\n */\n const recreateThenable = () => {\n const pending =\n (this.#currentThenable =\n nextResult.promise =\n pendingThenable())\n\n finalizeThenableIfPossible(pending)\n }\n\n const prevThenable = this.#currentThenable\n switch (prevThenable.status) {\n case 'pending':\n // Finalize the previous thenable if it was pending\n // and we are still observing the same query\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable)\n }\n break\n case 'fulfilled':\n if (\n nextResult.status === 'error' ||\n nextResult.data !== prevThenable.value\n ) {\n recreateThenable()\n }\n break\n case 'rejected':\n if (\n nextResult.status !== 'error' ||\n nextResult.error !== prevThenable.reason\n ) {\n recreateThenable()\n }\n break\n }\n }\n\n return nextResult\n }\n\n updateResult(): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.#currentResult = nextResult\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n const notifyOnChangePropsValue =\n typeof notifyOnChangeProps === 'function'\n ? notifyOnChangeProps()\n : notifyOnChangeProps\n\n if (\n notifyOnChangePropsValue === 'all' ||\n (!notifyOnChangePropsValue && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps,\n )\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n\n return changed && includedProps.has(typedKey)\n })\n }\n\n this.#notify({ listeners: shouldNotifyListeners() })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: { listeners: boolean }): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n resolveEnabled(options.enabled, query) !== false &&\n query.state.data === undefined &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.data !== undefined &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (\n resolveEnabled(options.enabled, query) !== false &&\n resolveStaleTime(options.staleTime, query) !== 'static'\n ) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n (query !== prevQuery ||\n resolveEnabled(prevOptions.enabled, query) === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n resolveEnabled(options.enabled, query) !== false &&\n query.isStaleByTime(resolveStaleTime(options.staleTime, query))\n )\n}\n\n// this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\nfunction shouldAssignObserverCurrentProperties<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n optimisticResult: QueryObserverResult<TData, TError>,\n) {\n // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true\n }\n\n // basically, just keep previous properties if nothing changed\n return false\n}\n","import { addToEnd, addToStart, ensureQueryFn } from './utils'\nimport type { QueryBehavior } from './query'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n OmitKeyof,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<TQueryFnData, TError, TData, TPageParam>(\n pages?: number,\n): QueryBehavior<TQueryFnData, TError, InfiniteData<TData, TPageParam>> {\n return {\n onFetch: (context, query) => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let result: InfiniteData<unknown> = { pages: [], pageParams: [] }\n let currentPage = 0\n\n const fetchFn = async () => {\n let cancelled = false\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n const queryFn = ensureQueryFn(context.options, context.fetchOptions)\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (param == null && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const createQueryFnContext = () => {\n const queryFnContext: OmitKeyof<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n addSignalProperty(queryFnContext)\n return queryFnContext as QueryFunctionContext<QueryKey, unknown>\n }\n\n const queryFnContext = createQueryFnContext()\n\n const page = await queryFn(queryFnContext)\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n // fetch next / previous page?\n if (direction && oldPages.length) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n } else {\n const remainingPages = pages ?? oldPages.length\n\n // Fetch all pages\n do {\n const param =\n currentPage === 0\n ? (oldPageParams[0] ?? options.initialPageParam)\n : getNextPageParam(options, result)\n if (currentPage > 0 && param == null) {\n break\n }\n result = await fetchPage(result, param)\n currentPage++\n } while (currentPage < remainingPages)\n }\n\n return result\n }\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn as any,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal,\n },\n query,\n )\n }\n } else {\n context.fetchFn = fetchFn\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return pages.length > 0\n ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n : undefined\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return pages.length > 0\n ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams)\n : undefined\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return getNextPageParam(options, data) != null\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return getPreviousPageParam(options, data) != null\n}\n","import { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type { Subscribable } from './subscribable'\nimport type {\n DefaultError,\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverBaseResult,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryFnData, TPageParam>,\n TQueryKey\n> {\n // Type override\n subscribe!: Subscribable<\n InfiniteQueryObserverListener<TData, TError>\n >['subscribe']\n\n // Type override\n getCurrentResult!: ReplaceReturnType<\n QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryFnData, TPageParam>,\n TQueryKey\n >['getCurrentResult'],\n InfiniteQueryObserverResult<TData, TError>\n >\n\n // Type override\n protected fetch!: ReplaceReturnType<\n QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryFnData, TPageParam>,\n TQueryKey\n >['fetch'],\n Promise<InfiniteQueryObserverResult<TData, TError>>\n >\n\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): void {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior(),\n })\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<\n TQueryFnData,\n TError,\n InfiniteData<TQueryFnData, TPageParam>,\n TQueryKey\n >,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const parentResult = super.createResult(query, options)\n\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult\n const fetchDirection = state.fetchMeta?.fetchMore?.direction\n\n const isFetchNextPageError = isError && fetchDirection === 'forward'\n const isFetchingNextPage = isFetching && fetchDirection === 'forward'\n\n const isFetchPreviousPageError = isError && fetchDirection === 'backward'\n const isFetchingPreviousPage = isFetching && fetchDirection === 'backward'\n\n const result: InfiniteQueryObserverBaseResult<TData, TError> = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError:\n isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n\n return result as InfiniteQueryObserverResult<TData, TError>\n }\n}\n\ntype ReplaceReturnType<\n TFunction extends (...args: Array<any>) => unknown,\n TReturn,\n> = (...args: Parameters<TFunction>) => TReturn\n","import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationFunctionContext,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\nimport type { QueryClient } from './queryClient'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TOnMutateResult> {\n client: QueryClient\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n state?: MutationState<TData, TError, TVariables, TOnMutateResult>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> {\n context: TOnMutateResult | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TOnMutateResult> {\n type: 'pending'\n isPaused: boolean\n variables?: TVariables\n context?: TOnMutateResult\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TOnMutateResult> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TOnMutateResult>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TOnMutateResult>\n options!: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n readonly mutationId: number\n\n #client: QueryClient\n #observers: Array<\n MutationObserver<TData, TError, TVariables, TOnMutateResult>\n >\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(\n config: MutationConfig<TData, TError, TVariables, TOnMutateResult>,\n ) {\n super()\n\n this.#client = config.client\n this.mutationId = config.mutationId\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>,\n ): void {\n this.options = options\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const onContinue = () => {\n this.#dispatch({ type: 'continue' })\n }\n\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey,\n } satisfies MutationFunctionContext\n\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n\n return this.options.mutationFn(variables, mutationFnContext)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this),\n })\n\n const restored = this.state.status === 'pending'\n const isPaused = !this.#retryer.canStart()\n\n try {\n if (restored) {\n // Dispatch continue action to unpause restored mutation\n onContinue()\n } else {\n this.#dispatch({ type: 'pending', variables, isPaused })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext,\n )\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n isPaused,\n })\n }\n }\n const data = await this.#retryer.start()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context!,\n mutationFnContext,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext,\n )\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n } finally {\n this.#mutationCache.runNext(this)\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TOnMutateResult>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TOnMutateResult>,\n ): MutationState<TData, TError, TVariables, TOnMutateResult> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TOnMutateResult,\n>(): MutationState<TData, TError, TVariables, TOnMutateResult> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n","import { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport { hashKey, shallowEqualObjects } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type {\n DefaultError,\n MutateOptions,\n MutationFunctionContext,\n MutationObserverOptions,\n MutationObserverResult,\n} from './types'\nimport type { Action, Mutation } from './mutation'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TOnMutateResult> = (\n result: MutationObserverResult<TData, TError, TVariables, TOnMutateResult>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TOnMutateResult = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TOnMutateResult>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TOnMutateResult\n > = undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TOnMutateResult>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TOnMutateResult>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<\n TData,\n TError,\n TVariables,\n TOnMutateResult\n >,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options: MutationObserverOptions<\n TData,\n TError,\n TVariables,\n TOnMutateResult\n >,\n ) {\n const prevOptions = this.options as\n | MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>\n | undefined\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n\n if (\n prevOptions?.mutationKey &&\n this.options.mutationKey &&\n hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)\n ) {\n this.reset()\n } else if (this.#currentMutation?.state.status === 'pending') {\n this.#currentMutation.setOptions(this.options)\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(\n action: Action<TData, TError, TVariables, TOnMutateResult>,\n ): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TOnMutateResult\n > {\n return this.#currentResult\n }\n\n reset(): void {\n // reset needs to remove the observer from the mutation because there is no way to \"get it back\"\n // another mutate call will yield a new mutation!\n this.#currentMutation?.removeObserver(this)\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TOnMutateResult>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TOnMutateResult>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TOnMutateResult>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TOnMutateResult>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables!\n const onMutateResult = this.#currentResult.context\n\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey,\n } satisfies MutationFunctionContext\n\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n variables,\n onMutateResult,\n context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n","/* istanbul ignore file */\n\nexport { focusManager } from './focusManager'\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate,\n} from './hydration'\nexport { InfiniteQueryObserver } from './infiniteQueryObserver'\nexport { MutationCache } from './mutationCache'\nexport type { MutationCacheNotifyEvent } from './mutationCache'\nexport { MutationObserver } from './mutationObserver'\nexport { defaultScheduler, notifyManager } from './notifyManager'\nexport { onlineManager } from './onlineManager'\nexport { QueriesObserver } from './queriesObserver'\nexport { QueryCache } from './queryCache'\nexport type { QueryCacheNotifyEvent } from './queryCache'\nexport { QueryClient } from './queryClient'\nexport { QueryObserver } from './queryObserver'\nexport { CancelledError, isCancelledError } from './retryer'\nexport {\n timeoutManager,\n type ManagedTimerId,\n type TimeoutCallback,\n type TimeoutProvider,\n} from './timeoutManager'\nexport {\n hashKey,\n isServer,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceEqualDeep,\n shouldThrowError,\n skipToken,\n} from './utils'\nexport type { MutationFilters, QueryFilters, SkipToken, Updater } from './utils'\n\nexport { streamedQuery as experimental_streamedQuery } from './streamedQuery'\n\n// Types\nexport type {\n DehydratedState,\n DehydrateOptions,\n HydrateOptions,\n} from './hydration'\nexport { Mutation } from './mutation'\nexport type { MutationState } from './mutation'\nexport type { QueriesObserverOptions } from './queriesObserver'\nexport { Query } from './query'\nexport type { QueryState } from './query'\nexport * from './types'\n","//# sourceMappingURL=types.js.map","'use client'\nimport * as React from 'react'\n\nimport type { QueryClient } from '@tanstack/query-core'\n\nexport const QueryClientContext = React.createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = React.useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: React.ReactNode\n}\n\nexport const QueryClientProvider = ({\n client,\n children,\n}: QueryClientProviderProps): React.JSX.Element => {\n React.useEffect(() => {\n client.mount()\n return () => {\n client.unmount()\n }\n }, [client])\n\n return (\n <QueryClientContext.Provider value={client}>\n {children}\n </QueryClientContext.Provider>\n )\n}\n","'use client'\nimport * as React from 'react'\n\nconst IsRestoringContext = React.createContext(false)\n\nexport const useIsRestoring = () => React.useContext(IsRestoringContext)\nexport const IsRestoringProvider = IsRestoringContext.Provider\n","'use client'\nimport * as React from 'react'\n\n// CONTEXT\nexport type QueryErrorResetFunction = () => void\nexport type QueryErrorIsResetFunction = () => boolean\nexport type QueryErrorClearResetFunction = () => void\n\nexport interface QueryErrorResetBoundaryValue {\n clearReset: QueryErrorClearResetFunction\n isReset: QueryErrorIsResetFunction\n reset: QueryErrorResetFunction\n}\n\nfunction createValue(): QueryErrorResetBoundaryValue {\n let isReset = false\n return {\n clearReset: () => {\n isReset = false\n },\n reset: () => {\n isReset = true\n },\n isReset: () => {\n return isReset\n },\n }\n}\n\nconst QueryErrorResetBoundaryContext = React.createContext(createValue())\n\n// HOOK\n\nexport const useQueryErrorResetBoundary = () =>\n React.useContext(QueryErrorResetBoundaryContext)\n\n// COMPONENT\n\nexport type QueryErrorResetBoundaryFunction = (\n value: QueryErrorResetBoundaryValue,\n) => React.ReactNode\n\nexport interface QueryErrorResetBoundaryProps {\n children: QueryErrorResetBoundaryFunction | React.ReactNode\n}\n\nexport const QueryErrorResetBoundary = ({\n children,\n}: QueryErrorResetBoundaryProps) => {\n const [value] = React.useState(() => createValue())\n return (\n <QueryErrorResetBoundaryContext.Provider value={value}>\n {typeof children === 'function' ? children(value) : children}\n </QueryErrorResetBoundaryContext.Provider>\n )\n}\n","'use client'\nimport * as React from 'react'\nimport { shouldThrowError } from '@tanstack/query-core'\nimport type {\n DefaultedQueryObserverOptions,\n Query,\n QueryKey,\n QueryObserverResult,\n ThrowOnError,\n} from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\n\nexport const ensurePreventErrorBoundaryRetry = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n if (\n options.suspense ||\n options.throwOnError ||\n options.experimental_prefetchInRender\n ) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false\n }\n }\n}\n\nexport const useClearResetErrorBoundary = (\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset()\n }, [errorResetBoundary])\n}\n\nexport const getHasError = <\n TData,\n TError,\n TQueryFnData,\n TQueryData,\n TQueryKey extends QueryKey,\n>({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense,\n}: {\n result: QueryObserverResult<TData, TError>\n errorResetBoundary: QueryErrorResetBoundaryValue\n throwOnError: ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey>\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey> | undefined\n suspense: boolean | undefined\n}) => {\n return (\n result.isError &&\n !errorResetBoundary.isReset() &&\n !result.isFetching &&\n query &&\n ((suspense && result.data === undefined) ||\n shouldThrowError(throwOnError, [result.error, query]))\n )\n}\n","import type {\n DefaultError,\n DefaultedQueryObserverOptions,\n Query,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary'\n\nexport const defaultThrowOnError = <\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n _error: TError,\n query: Query<TQueryFnData, TError, TData, TQueryKey>,\n) => query.state.data === undefined\n\nexport const ensureSuspenseTimers = (\n defaultedOptions: DefaultedQueryObserverOptions<any, any, any, any, any>,\n) => {\n if (defaultedOptions.suspense) {\n // Handle staleTime to ensure minimum 1000ms in Suspense mode\n // This prevents unnecessary refetching when components remount after suspending\n const MIN_SUSPENSE_TIME_MS = 1000\n\n const clamp = (value: number | 'static' | undefined) =>\n value === 'static'\n ? value\n : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS)\n\n const originalStaleTime = defaultedOptions.staleTime\n defaultedOptions.staleTime =\n typeof originalStaleTime === 'function'\n ? (...args) => clamp(originalStaleTime(...args))\n : clamp(originalStaleTime)\n\n if (typeof defaultedOptions.gcTime === 'number') {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS,\n )\n }\n }\n}\n\nexport const willFetch = (\n result: QueryObserverResult<any, any>,\n isRestoring: boolean,\n) => result.isLoading && result.isFetching && !isRestoring\n\nexport const shouldSuspend = (\n defaultedOptions:\n | DefaultedQueryObserverOptions<any, any, any, any, any>\n | undefined,\n result: QueryObserverResult<any, any>,\n) => defaultedOptions?.suspense && result.isPending\n\nexport const fetchOptimistic = <\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n defaultedOptions: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n errorResetBoundary: QueryErrorResetBoundaryValue,\n) =>\n observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset()\n })\n","'use client'\nimport * as React from 'react'\n\nimport { isServer, noop, notifyManager } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary,\n} from './errorBoundaryUtils'\nimport { useIsRestoring } from './IsRestoringProvider'\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch,\n} from './suspense'\nimport type {\n QueryClient,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { UseBaseQueryOptions } from './types'\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: UseBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n queryClient?: QueryClient,\n): QueryObserverResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof options !== 'object' || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object',\n )\n }\n }\n\n const isRestoring = useIsRestoring()\n const errorResetBoundary = useQueryErrorResetBoundary()\n const client = useQueryClient(queryClient)\n const defaultedOptions = client.defaultQueryOptions(options)\n\n ;(client.getDefaultOptions().queries as any)?._experimental_beforeQuery?.(\n defaultedOptions,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`,\n )\n }\n }\n\n // Make sure results are optimistically set in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring\n ? 'isRestoring'\n : 'optimistic'\n\n ensureSuspenseTimers(defaultedOptions)\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary)\n\n useClearResetErrorBoundary(errorResetBoundary)\n\n // this needs to be invoked before creating the Observer because that can create a cache entry\n const isNewCacheEntry = !client\n .getQueryCache()\n .get(defaultedOptions.queryHash)\n\n const [observer] = React.useState(\n () =>\n new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(\n client,\n defaultedOptions,\n ),\n )\n\n // note: this must be called before useSyncExternalStore\n const result = observer.getOptimisticResult(defaultedOptions)\n\n const shouldSubscribe = !isRestoring && options.subscribed !== false\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe\n ? observer.subscribe(notifyManager.batchCalls(onStoreChange))\n : noop\n\n // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n observer.updateResult()\n\n return unsubscribe\n },\n [observer, shouldSubscribe],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n React.useEffect(() => {\n observer.setOptions(defaultedOptions)\n }, [defaultedOptions, observer])\n\n // Handle suspense\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n }\n\n // Handle error boundary\n if (\n getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client\n .getQueryCache()\n .get<\n TQueryFnData,\n TError,\n TQueryData,\n TQueryKey\n >(defaultedOptions.queryHash),\n suspense: defaultedOptions.suspense,\n })\n ) {\n throw result.error\n }\n\n ;(client.getDefaultOptions().queries as any)?._experimental_afterQuery?.(\n defaultedOptions,\n result,\n )\n\n if (\n defaultedOptions.experimental_prefetchInRender &&\n !isServer &&\n willFetch(result, isRestoring)\n ) {\n const promise = isNewCacheEntry\n ? // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n : // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n\n promise?.catch(noop).finally(() => {\n // `.updateResult()` will trigger `.#currentThenable` to finalize\n observer.updateResult()\n })\n }\n\n // Handle result property usage tracking\n return !defaultedOptions.notifyOnChangeProps\n ? observer.trackResult(result)\n : result\n}\n","'use client'\nimport { QueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n NoInfer,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\nimport type {\n DefinedUseQueryResult,\n UseQueryOptions,\n UseQueryResult,\n} from './types'\nimport type {\n DefinedInitialDataOptions,\n UndefinedInitialDataOptions,\n} from './queryOptions'\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): DefinedUseQueryResult<NoInfer<TData>, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryResult<NoInfer<TData>, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseQueryResult<NoInfer<TData>, TError>\n\nexport function useQuery(options: UseQueryOptions, queryClient?: QueryClient) {\n return useBaseQuery(options, QueryObserver, queryClient)\n}\n","'use client'\nimport * as React from 'react'\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport type { DefaultError, QueryClient } from '@tanstack/query-core'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TOnMutateResult = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TOnMutateResult> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TOnMutateResult>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TOnMutateResult>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwOnError, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n","'use client'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type {\n DefaultError,\n InfiniteData,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n DefinedUseInfiniteQueryResult,\n UseInfiniteQueryOptions,\n UseInfiniteQueryResult,\n} from './types'\nimport type {\n DefinedInitialDataInfiniteOptions,\n UndefinedInitialDataInfiniteOptions,\n} from './infiniteQueryOptions'\n\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: DefinedInitialDataInfiniteOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): DefinedUseInfiniteQueryResult<TData, TError>\n\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UndefinedInitialDataInfiniteOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseInfiniteQueryResult<TData, TError>\n\nexport function useInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseInfiniteQueryResult<TData, TError>\n\nexport function useInfiniteQuery(\n options: UseInfiniteQueryOptions,\n queryClient?: QueryClient,\n) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n )\n}\n","/* istanbul ignore file */\n\n// Re-export core\nexport * from '@tanstack/query-core'\n\n// React Query\nexport * from './types'\nexport { useQueries } from './useQueries'\nexport type { QueriesResults, QueriesOptions } from './useQueries'\nexport { useQuery } from './useQuery'\nexport { useSuspenseQuery } from './useSuspenseQuery'\nexport { useSuspenseInfiniteQuery } from './useSuspenseInfiniteQuery'\nexport { useSuspenseQueries } from './useSuspenseQueries'\nexport type {\n SuspenseQueriesResults,\n SuspenseQueriesOptions,\n} from './useSuspenseQueries'\nexport { usePrefetchQuery } from './usePrefetchQuery'\nexport { usePrefetchInfiniteQuery } from './usePrefetchInfiniteQuery'\nexport { queryOptions } from './queryOptions'\nexport type {\n DefinedInitialDataOptions,\n UndefinedInitialDataOptions,\n UnusedSkipTokenOptions,\n} from './queryOptions'\nexport { infiniteQueryOptions } from './infiniteQueryOptions'\nexport type {\n DefinedInitialDataInfiniteOptions,\n UndefinedInitialDataInfiniteOptions,\n UnusedSkipTokenInfiniteOptions,\n} from './infiniteQueryOptions'\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient,\n} from './QueryClientProvider'\nexport type { QueryClientProviderProps } from './QueryClientProvider'\nexport type { QueryErrorResetBoundaryProps } from './QueryErrorResetBoundary'\nexport { HydrationBoundary } from './HydrationBoundary'\nexport type { HydrationBoundaryProps } from './HydrationBoundary'\nexport type {\n QueryErrorClearResetFunction,\n QueryErrorIsResetFunction,\n QueryErrorResetBoundaryFunction,\n QueryErrorResetFunction,\n} from './QueryErrorResetBoundary'\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary,\n} from './QueryErrorResetBoundary'\nexport { useIsFetching } from './useIsFetching'\nexport { useIsMutating, useMutationState } from './useMutationState'\nexport { useMutation } from './useMutation'\nexport { mutationOptions } from './mutationOptions'\nexport { useInfiniteQuery } from './useInfiniteQuery'\nexport { useIsRestoring, IsRestoringProvider } from './IsRestoringProvider'\n","import type {NormalizedOptions} from '../types/options.js';\nimport type {KyRequest} from '../types/request.js';\nimport type {KyResponse} from '../types/response.js';\n\nexport class HTTPError<T = unknown> extends Error {\n\tpublic response: KyResponse<T>;\n\tpublic request: KyRequest;\n\tpublic options: NormalizedOptions;\n\n\tconstructor(response: Response, request: Request, options: NormalizedOptions) {\n\t\tconst code = (response.status || response.status === 0) ? response.status : '';\n\t\tconst title = response.statusText ?? '';\n\t\tconst status = `${code} ${title}`.trim();\n\t\tconst reason = status ? `status code ${status}` : 'an unknown error';\n\n\t\tsuper(`Request failed with ${reason}: ${request.method} ${request.url}`);\n\n\t\tthis.name = 'HTTPError';\n\t\tthis.response = response;\n\t\tthis.request = request;\n\t\tthis.options = options;\n\t}\n}\n","/**\nWrapper for non-Error values that were thrown.\n\nIn JavaScript, any value can be thrown (not just Error instances). This class wraps such values to ensure consistent error handling.\n*/\nexport class NonError extends Error {\n\toverride name = 'NonError';\n\treadonly value: unknown;\n\n\tconstructor(value: unknown) {\n\t\tlet message = 'Non-error value was thrown';\n\n\t\t// Intentionally minimal as this error is just an edge-case.\n\t\ttry {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tmessage = value;\n\t\t\t} else if (value && typeof value === 'object' && 'message' in value && typeof value.message === 'string') {\n\t\t\t\tmessage = value.message;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Use default message if accessing properties throws\n\t\t}\n\n\t\tsuper(message);\n\n\t\tthis.value = value;\n\t}\n}\n","import type {ForceRetryOptions} from '../core/constants.js';\nimport {NonError} from './NonError.js';\n\n/**\nInternal error used to signal a forced retry from afterResponse hooks.\nThis is thrown when a user returns ky.retry() from an afterResponse hook.\n*/\nexport class ForceRetryError extends Error {\n\toverride name = 'ForceRetryError' as const;\n\tcustomDelay: number | undefined;\n\tcode: string | undefined;\n\tcustomRequest: Request | undefined;\n\n\tconstructor(options?: ForceRetryOptions) {\n\t\t// Runtime protection: wrap non-Error causes in NonError\n\t\t// TypeScript type is Error for guidance, but JS users can pass anything\n\t\tconst cause = options?.cause\n\t\t\t? (options.cause instanceof Error ? options.cause : new NonError(options.cause))\n\t\t\t: undefined;\n\n\t\tsuper(\n\t\t\toptions?.code ? `Forced retry: ${options.code}` : 'Forced retry',\n\t\t\tcause ? {cause} : undefined,\n\t\t);\n\n\t\tthis.customDelay = options?.delay;\n\t\tthis.code = options?.code;\n\t\tthis.customRequest = options?.request;\n\t}\n}\n","import type {Expect, Equal} from '@type-challenges/utils';\nimport {type HttpMethod, type KyOptionsRegistry} from '../types/options.js';\n\nexport const supportsRequestStreams = (() => {\n\tlet duplexAccessed = false;\n\tlet hasContentType = false;\n\tconst supportsReadableStream = typeof globalThis.ReadableStream === 'function';\n\tconst supportsRequest = typeof globalThis.Request === 'function';\n\n\tif (supportsReadableStream && supportsRequest) {\n\t\ttry {\n\t\t\thasContentType = new globalThis.Request('https://empty.invalid', {\n\t\t\t\tbody: new globalThis.ReadableStream(),\n\t\t\t\tmethod: 'POST',\n\t\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\t\tget duplex() {\n\t\t\t\t\tduplexAccessed = true;\n\t\t\t\t\treturn 'half';\n\t\t\t\t},\n\t\t\t}).headers.has('Content-Type');\n\t\t} catch (error) {\n\t\t\t// QQBrowser on iOS throws \"unsupported BodyInit type\" error (see issue #581)\n\t\t\tif (error instanceof Error && error.message === 'unsupported BodyInit type') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn duplexAccessed && !hasContentType;\n})();\n\nexport const supportsAbortController = typeof globalThis.AbortController === 'function';\nexport const supportsAbortSignal = typeof globalThis.AbortSignal === 'function' && typeof globalThis.AbortSignal.any === 'function';\nexport const supportsResponseStreams = typeof globalThis.ReadableStream === 'function';\nexport const supportsFormData = typeof globalThis.FormData === 'function';\n\nexport const requestMethods = ['get', 'post', 'put', 'patch', 'head', 'delete'] as const;\n\nconst validate = <T extends Array<true>>() => undefined as unknown as T;\nvalidate<[\n\tExpect<Equal<typeof requestMethods[number], HttpMethod>>,\n]>();\n\nexport const responseTypes = {\n\tjson: 'application/json',\n\ttext: 'text/*',\n\tformData: 'multipart/form-data',\n\tarrayBuffer: '*/*',\n\tblob: '*/*',\n\t// Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).\n\t// We still feature-check at runtime before exposing the shortcut.\n\tbytes: '*/*',\n} as const;\n\n// The maximum value of a 32bit int (see issue #117)\nexport const maxSafeTimeout = 2_147_483_647;\n\n// Size in bytes of a typical form boundary, used to help estimate upload size\nexport const usualFormBoundarySize = new TextEncoder().encode('------WebKitFormBoundaryaxpyiPgbbPti10Rw').length;\n\nexport const stop = Symbol('stop');\n\n/**\nOptions for forcing a retry via `ky.retry()`.\n*/\nexport type ForceRetryOptions = {\n\t/**\n\tCustom delay in milliseconds before retrying.\n\n\tIf not provided, uses the default retry delay calculation based on `retry.delay` configuration.\n\n\t**Note:** Custom delays bypass jitter and `backoffLimit`. This is intentional, as custom delays often come from server responses (e.g., `Retry-After` headers) and should be respected exactly as specified.\n\t*/\n\tdelay?: number;\n\n\t/**\n\tError code for the retry.\n\n\tThis machine-readable identifier will be included in the error message passed to `beforeRetry` hooks, allowing you to distinguish between different types of forced retries.\n\n\t@example\n\t```\n\treturn ky.retry({code: 'RATE_LIMIT'});\n\t// Resulting error message: 'Forced retry: RATE_LIMIT'\n\t```\n\t*/\n\tcode?: string;\n\n\t/**\n\tOriginal error that caused the retry.\n\n\tThis allows you to preserve the error chain when forcing a retry based on caught exceptions. The error will be set as the `cause` of the `ForceRetryError`, enabling proper error chain traversal.\n\n\t@example\n\t```\n\ttry {\n\t\tconst data = await response.clone().json();\n\t\tvalidateBusinessLogic(data);\n\t} catch (error) {\n\t\treturn ky.retry({\n\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\tcause: error // Preserves original error in chain\n\t\t});\n\t}\n\t```\n\t*/\n\tcause?: Error;\n\n\t/**\n\tCustom request to use for the retry.\n\n\tThis allows you to modify or completely replace the request during a forced retry. The custom request becomes the starting point for the retry - `beforeRetry` hooks can still further modify it if needed.\n\n\t**Note:** The custom request's `signal` will be replaced with Ky's managed signal to handle timeouts and user-provided abort signals correctly. If the original request body has been consumed, you must provide a new body or clone the request before consuming.\n\n\t@example\n\t```\n\t// Fallback to a different endpoint\n\treturn ky.retry({\n\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\tmethod: request.method,\n\t\t\theaders: request.headers,\n\t\t}),\n\t\tcode: 'BACKUP_ENDPOINT'\n\t});\n\n\t// Retry with refreshed authentication token\n\tconst data = await response.clone().json();\n\treturn ky.retry({\n\t\trequest: new Request(request, {\n\t\t\theaders: {\n\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t}\n\t\t}),\n\t\tcode: 'TOKEN_REFRESHED'\n\t});\n\t```\n\t*/\n\trequest?: Request;\n};\n\n/**\nMarker returned by ky.retry() to signal a forced retry from afterResponse hooks.\n*/\nexport class RetryMarker {\n\tconstructor(public options?: ForceRetryOptions) {}\n}\n\n/**\nForce a retry from an `afterResponse` hook.\n\nThis allows you to retry a request based on the response content, even if the response has a successful status code. The retry will respect the `retry.limit` option and skip the `shouldRetry` check. The forced retry is observable in `beforeRetry` hooks, where the error will be a `ForceRetryError`.\n\n@param options - Optional configuration for the retry.\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tafterResponse: [\n\t\t\tasync (request, options, response) => {\n\t\t\t\t// Retry based on response body content\n\t\t\t\tif (response.status === 200) {\n\t\t\t\t\tconst data = await response.clone().json();\n\n\t\t\t\t\t// Simple retry with default delay\n\t\t\t\t\tif (data.error?.code === 'TEMPORARY_ERROR') {\n\t\t\t\t\t\treturn ky.retry();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with custom delay from API response\n\t\t\t\t\tif (data.error?.code === 'RATE_LIMIT') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tdelay: data.error.retryAfter * 1000,\n\t\t\t\t\t\t\tcode: 'RATE_LIMIT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with a modified request (e.g., fallback endpoint)\n\t\t\t\t\tif (data.error?.code === 'FALLBACK_TO_BACKUP') {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request('https://backup-api.com/endpoint', {\n\t\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'BACKUP_ENDPOINT'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with refreshed authentication\n\t\t\t\t\tif (data.error?.code === 'TOKEN_REFRESH' && data.newToken) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\trequest: new Request(request, {\n\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t...Object.fromEntries(request.headers),\n\t\t\t\t\t\t\t\t\t'Authorization': `Bearer ${data.newToken}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcode: 'TOKEN_REFRESHED'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retry with cause to preserve error chain\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvalidateResponse(data);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn ky.retry({\n\t\t\t\t\t\t\tcode: 'VALIDATION_FAILED',\n\t\t\t\t\t\t\tcause: error\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\t// Observable in beforeRetry hooks\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.message}`);\n\t\t\t\t\t// Example output: \"Forced retry #1: Forced retry: RATE_LIMIT\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n\nconst response = await api.get('https://example.com/api');\n```\n*/\nexport const retry = (options?: ForceRetryOptions) => new RetryMarker(options);\n\nexport const kyOptionKeys: KyOptionsRegistry = {\n\tjson: true,\n\tparseJson: true,\n\tstringifyJson: true,\n\tsearchParams: true,\n\tprefixUrl: true,\n\tretry: true,\n\ttimeout: true,\n\thooks: true,\n\tthrowHttpErrors: true,\n\tonDownloadProgress: true,\n\tonUploadProgress: true,\n\tfetch: true,\n\tcontext: true,\n};\n\n// Vendor-specific fetch options that should always be passed to fetch()\n// even if they appear on the Request object due to vendor patching.\n// See: https://github.com/sindresorhus/ky/issues/541\nexport const vendorSpecificOptions = {\n\tnext: true, // Next.js cache revalidation (revalidate, tags)\n} as const;\n\n// Standard RequestInit options that should NOT be passed separately to fetch()\n// because they're already applied to the Request object.\n// Note: `dispatcher` and `priority` are NOT included here - they're fetch-only\n// options that the Request constructor doesn't accept, so they need to be passed\n// separately to fetch().\nexport const requestOptionsRegistry = {\n\tmethod: true,\n\theaders: true,\n\tbody: true,\n\tmode: true,\n\tcredentials: true,\n\tcache: true,\n\tredirect: true,\n\treferrer: true,\n\treferrerPolicy: true,\n\tintegrity: true,\n\tkeepalive: true,\n\tsignal: true,\n\twindow: true,\n\tduplex: true,\n} as const;\n","import type {Options} from '../types/options.js';\nimport {usualFormBoundarySize} from '../core/constants.js';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getBodySize = (body?: BodyInit | null): number => {\n\tif (!body) {\n\t\treturn 0;\n\t}\n\n\tif (body instanceof FormData) {\n\t\t// This is an approximation, as FormData size calculation is not straightforward\n\t\tlet size = 0;\n\n\t\tfor (const [key, value] of body) {\n\t\t\tsize += usualFormBoundarySize;\n\t\t\tsize += new TextEncoder().encode(`Content-Disposition: form-data; name=\"${key}\"`).length;\n\t\t\tsize += typeof value === 'string'\n\t\t\t\t? new TextEncoder().encode(value).length\n\t\t\t\t: value.size;\n\t\t}\n\n\t\treturn size;\n\t}\n\n\tif (body instanceof Blob) {\n\t\treturn body.size;\n\t}\n\n\tif (body instanceof ArrayBuffer) {\n\t\treturn body.byteLength;\n\t}\n\n\tif (typeof body === 'string') {\n\t\treturn new TextEncoder().encode(body).length;\n\t}\n\n\tif (body instanceof URLSearchParams) {\n\t\treturn new TextEncoder().encode(body.toString()).length;\n\t}\n\n\tif ('byteLength' in body) {\n\t\treturn (body).byteLength;\n\t}\n\n\tif (typeof body === 'object' && body !== null) {\n\t\ttry {\n\t\t\tconst jsonString = JSON.stringify(body);\n\t\t\treturn new TextEncoder().encode(jsonString).length;\n\t\t} catch {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\treturn 0; // Default case, unable to determine size\n};\n\nconst withProgress = (stream: ReadableStream<Uint8Array>, totalBytes: number, onProgress: Options['onDownloadProgress'] | Options['onUploadProgress']): ReadableStream<Uint8Array> => {\n\tlet previousChunk: Uint8Array | undefined;\n\tlet transferredBytes = 0;\n\n\treturn stream.pipeThrough(new TransformStream<Uint8Array, Uint8Array>({\n\t\ttransform(currentChunk, controller) {\n\t\t\tcontroller.enqueue(currentChunk);\n\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\n\t\t\t\tlet percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes;\n\t\t\t\t// Avoid reporting 100% progress before the stream is actually finished (in case totalBytes is inaccurate)\n\t\t\t\tif (percent >= 1) {\n\t\t\t\t\t// Epsilon is used here to get as close as possible to 100% without reaching it.\n\t\t\t\t\t// If we were to use 0.99 here, percent could potentially go backwards.\n\t\t\t\t\tpercent = 1 - Number.EPSILON;\n\t\t\t\t}\n\n\t\t\t\tonProgress?.({percent, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\n\t\t\tpreviousChunk = currentChunk;\n\t\t},\n\t\tflush() {\n\t\t\tif (previousChunk) {\n\t\t\t\ttransferredBytes += previousChunk.byteLength;\n\t\t\t\tonProgress?.({percent: 1, totalBytes: Math.max(totalBytes, transferredBytes), transferredBytes}, previousChunk);\n\t\t\t}\n\t\t},\n\t}));\n};\n\nexport const streamResponse = (response: Response, onDownloadProgress: Options['onDownloadProgress']) => {\n\tif (!response.body) {\n\t\treturn response;\n\t}\n\n\tif (response.status === 204) {\n\t\treturn new Response(\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tstatus: response.status,\n\t\t\t\tstatusText: response.statusText,\n\t\t\t\theaders: response.headers,\n\t\t\t},\n\t\t);\n\t}\n\n\tconst totalBytes = Math.max(0, Number(response.headers.get('content-length')) || 0);\n\n\treturn new Response(\n\t\twithProgress(response.body, totalBytes, onDownloadProgress),\n\t\t{\n\t\t\tstatus: response.status,\n\t\t\tstatusText: response.statusText,\n\t\t\theaders: response.headers,\n\t\t},\n\t);\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const streamRequest = (request: Request, onUploadProgress: Options['onUploadProgress'], originalBody?: BodyInit | null) => {\n\tif (!request.body) {\n\t\treturn request;\n\t}\n\n\t// Use original body for size calculation since request.body is already a stream\n\tconst totalBytes = getBodySize(originalBody ?? request.body);\n\n\treturn new Request(request, {\n\t\t// @ts-expect-error - Types are outdated.\n\t\tduplex: 'half',\n\t\tbody: withProgress(request.body, totalBytes, onUploadProgress),\n\t});\n};\n","// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isObject = (value: unknown): value is object => value !== null && typeof value === 'object';\n","import type {KyHeadersInit, Options} from '../types/options.js';\nimport type {Hooks} from '../types/hooks.js';\nimport {supportsAbortSignal} from '../core/constants.js';\nimport {isObject} from './is.js';\n\nexport const validateAndMerge = (...sources: Array<Partial<Options> | undefined>): Partial<Options> => {\n\tfor (const source of sources) {\n\t\tif ((!isObject(source) || Array.isArray(source)) && source !== undefined) {\n\t\t\tthrow new TypeError('The `options` argument must be an object');\n\t\t}\n\t}\n\n\treturn deepMerge({}, ...sources);\n};\n\nexport const mergeHeaders = (source1: KyHeadersInit = {}, source2: KyHeadersInit = {}) => {\n\tconst result = new globalThis.Headers(source1 as RequestInit['headers']);\n\tconst isHeadersInstance = source2 instanceof globalThis.Headers;\n\tconst source = new globalThis.Headers(source2 as RequestInit['headers']);\n\n\tfor (const [key, value] of source.entries()) {\n\t\tif ((isHeadersInstance && value === 'undefined') || value === undefined) {\n\t\t\tresult.delete(key);\n\t\t} else {\n\t\t\tresult.set(key, value);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nfunction newHookValue<K extends keyof Hooks>(original: Hooks, incoming: Hooks, property: K): Required<Hooks>[K] {\n\treturn (Object.hasOwn(incoming, property) && incoming[property] === undefined)\n\t\t? []\n\t\t: deepMerge<Required<Hooks>[K]>(original[property] ?? [], incoming[property] ?? []);\n}\n\nexport const mergeHooks = (original: Hooks = {}, incoming: Hooks = {}): Required<Hooks> => (\n\t{\n\t\tbeforeRequest: newHookValue(original, incoming, 'beforeRequest'),\n\t\tbeforeRetry: newHookValue(original, incoming, 'beforeRetry'),\n\t\tafterResponse: newHookValue(original, incoming, 'afterResponse'),\n\t\tbeforeError: newHookValue(original, incoming, 'beforeError'),\n\t}\n);\n\nconst appendSearchParameters = (target: any, source: any): URLSearchParams => {\n\tconst result = new URLSearchParams();\n\n\tfor (const input of [target, source]) {\n\t\tif (input === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (input instanceof URLSearchParams) {\n\t\t\tfor (const [key, value] of input.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t}\n\t\t} else if (Array.isArray(input)) {\n\t\t\tfor (const pair of input) {\n\t\t\t\tif (!Array.isArray(pair) || pair.length !== 2) {\n\t\t\t\t\tthrow new TypeError('Array search parameters must be provided in [[key, value], ...] format');\n\t\t\t\t}\n\n\t\t\t\tresult.append(String(pair[0]), String(pair[1]));\n\t\t\t}\n\t\t} else if (isObject(input)) {\n\t\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\tresult.append(key, String(value));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// String\n\t\t\tconst parameters = new URLSearchParams(input);\n\t\t\tfor (const [key, value] of parameters.entries()) {\n\t\t\t\tresult.append(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n};\n\n// TODO: Make this strongly-typed (no `any`).\nexport const deepMerge = <T>(...sources: Array<Partial<T> | undefined>): T => {\n\tlet returnValue: any = {};\n\tlet headers = {};\n\tlet hooks = {};\n\tlet searchParameters: any;\n\tconst signals: AbortSignal[] = [];\n\n\tfor (const source of sources) {\n\t\tif (Array.isArray(source)) {\n\t\t\tif (!Array.isArray(returnValue)) {\n\t\t\t\treturnValue = [];\n\t\t\t}\n\n\t\t\treturnValue = [...returnValue, ...source];\n\t\t} else if (isObject(source)) {\n\t\t\tfor (let [key, value] of Object.entries(source)) {\n\t\t\t\t// Special handling for AbortSignal instances\n\t\t\t\tif (key === 'signal' && value instanceof globalThis.AbortSignal) {\n\t\t\t\t\tsignals.push(value);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Special handling for context - shallow merge only\n\t\t\t\tif (key === 'context') {\n\t\t\t\t\tif (value !== undefined && value !== null && (!isObject(value) || Array.isArray(value))) {\n\t\t\t\t\t\tthrow new TypeError('The `context` option must be an object');\n\t\t\t\t\t}\n\n\t\t\t\t\t// Shallow merge: always create a new object to prevent mutation bugs\n\t\t\t\t\treturnValue = {\n\t\t\t\t\t\t...returnValue,\n\t\t\t\t\t\tcontext: (value === undefined || value === null)\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: {...returnValue.context, ...value},\n\t\t\t\t\t};\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Special handling for searchParams\n\t\t\t\tif (key === 'searchParams') {\n\t\t\t\t\tif (value === undefined || value === null) {\n\t\t\t\t\t\t// Explicit undefined or null removes searchParams\n\t\t\t\t\t\tsearchParameters = undefined;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// First source: keep as-is to preserve type (string/object/URLSearchParams)\n\t\t\t\t\t\t// Subsequent sources: merge and convert to URLSearchParams\n\t\t\t\t\t\tsearchParameters = searchParameters === undefined ? value : appendSearchParameters(searchParameters, value);\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (isObject(value) && key in returnValue) {\n\t\t\t\t\tvalue = deepMerge(returnValue[key], value);\n\t\t\t\t}\n\n\t\t\t\treturnValue = {...returnValue, [key]: value};\n\t\t\t}\n\n\t\t\tif (isObject((source as any).hooks)) {\n\t\t\t\thooks = mergeHooks(hooks, (source as any).hooks);\n\t\t\t\treturnValue.hooks = hooks;\n\t\t\t}\n\n\t\t\tif (isObject((source as any).headers)) {\n\t\t\t\theaders = mergeHeaders(headers, (source as any).headers);\n\t\t\t\treturnValue.headers = headers;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (searchParameters !== undefined) {\n\t\treturnValue.searchParams = searchParameters;\n\t}\n\n\tif (signals.length > 0) {\n\t\tif (signals.length === 1) {\n\t\t\treturnValue.signal = signals[0];\n\t\t} else if (supportsAbortSignal) {\n\t\t\treturnValue.signal = AbortSignal.any(signals);\n\t\t} else {\n\t\t\t// When AbortSignal.any is not available, use the last signal\n\t\t\t// This maintains the previous behavior before signal merging was added\n\t\t\t// This can be remove when the `supportsAbortSignal` check is removed.`\n\t\t\treturnValue.signal = signals.at(-1);\n\t\t}\n\t}\n\n\tif (returnValue.context === undefined) {\n\t\treturnValue.context = {};\n\t}\n\n\treturn returnValue;\n};\n","import {requestMethods} from '../core/constants.js';\nimport type {HttpMethod} from '../types/options.js';\nimport type {RetryOptions} from '../types/retry.js';\n\nexport const normalizeRequestMethod = (input: string): string =>\n\trequestMethods.includes(input as HttpMethod) ? input.toUpperCase() : input;\n\nconst retryMethods = ['get', 'put', 'head', 'delete', 'options', 'trace'];\n\nconst retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];\n\nconst retryAfterStatusCodes = [413, 429, 503];\n\ntype InternalRetryOptions = Required<Omit<RetryOptions, 'shouldRetry'>> & Pick<RetryOptions, 'shouldRetry'>;\n\nconst defaultRetryOptions: InternalRetryOptions = {\n\tlimit: 2,\n\tmethods: retryMethods,\n\tstatusCodes: retryStatusCodes,\n\tafterStatusCodes: retryAfterStatusCodes,\n\tmaxRetryAfter: Number.POSITIVE_INFINITY,\n\tbackoffLimit: Number.POSITIVE_INFINITY,\n\tdelay: attemptCount => 0.3 * (2 ** (attemptCount - 1)) * 1000,\n\tjitter: undefined,\n\tretryOnTimeout: false,\n};\n\nexport const normalizeRetryOptions = (retry: number | RetryOptions = {}): InternalRetryOptions => {\n\tif (typeof retry === 'number') {\n\t\treturn {\n\t\t\t...defaultRetryOptions,\n\t\t\tlimit: retry,\n\t\t};\n\t}\n\n\tif (retry.methods && !Array.isArray(retry.methods)) {\n\t\tthrow new Error('retry.methods must be an array');\n\t}\n\n\tif (retry.statusCodes && !Array.isArray(retry.statusCodes)) {\n\t\tthrow new Error('retry.statusCodes must be an array');\n\t}\n\n\treturn {\n\t\t...defaultRetryOptions,\n\t\t...retry,\n\t};\n};\n","import type {KyRequest} from '../types/request.js';\n\nexport class TimeoutError extends Error {\n\tpublic request: KyRequest;\n\n\tconstructor(request: Request) {\n\t\tsuper(`Request timed out: ${request.method} ${request.url}`);\n\t\tthis.name = 'TimeoutError';\n\t\tthis.request = request;\n\t}\n}\n","import {TimeoutError} from '../errors/TimeoutError.js';\n\nexport type TimeoutOptions = {\n\ttimeout: number;\n\tfetch: typeof fetch;\n};\n\n// `Promise.race()` workaround (#91)\nexport default async function timeout(\n\trequest: Request,\n\tinit: RequestInit,\n\tabortController: AbortController | undefined,\n\toptions: TimeoutOptions,\n): Promise<Response> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tif (abortController) {\n\t\t\t\tabortController.abort();\n\t\t\t}\n\n\t\t\treject(new TimeoutError(request));\n\t\t}, options.timeout);\n\n\t\tvoid options\n\t\t\t.fetch(request, init)\n\t\t\t.then(resolve)\n\t\t\t.catch(reject)\n\t\t\t.then(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t});\n}\n","// https://github.com/sindresorhus/delay/tree/ab98ae8dfcb38e1593286c94d934e70d14a4e111\n\nimport {type InternalOptions} from '../types/options.js';\n\nexport type DelayOptions = {\n\tsignal?: InternalOptions['signal'];\n};\n\nexport default async function delay(\n\tms: number,\n\t{signal}: DelayOptions,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal) {\n\t\t\tsignal.throwIfAborted();\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tfunction abortHandler() {\n\t\t\tclearTimeout(timeoutId);\n\t\t\treject(signal!.reason as Error);\n\t\t}\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsignal?.removeEventListener('abort', abortHandler);\n\t\t\tresolve();\n\t\t}, ms);\n\t});\n}\n","import {kyOptionKeys, requestOptionsRegistry, vendorSpecificOptions} from '../core/constants.js';\nimport type {SearchParamsOption} from '../types/options.js';\n\nexport const findUnknownOptions = (\n\trequest: Request,\n\toptions: Record<string, unknown>,\n): Record<string, unknown> => {\n\tconst unknownOptions: Record<string, unknown> = {};\n\n\tfor (const key in options) {\n\t\t// Skip inherited properties\n\t\tif (!Object.hasOwn(options, key)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// An option is passed to fetch() if:\n\t\t// 1. It's not a standard RequestInit option (not in requestOptionsRegistry)\n\t\t// 2. It's not a ky-specific option (not in kyOptionKeys)\n\t\t// 3. Either:\n\t\t// a. It's not on the Request object, OR\n\t\t// b. It's a vendor-specific option that should always be passed (in vendorSpecificOptions)\n\t\tif (!(key in requestOptionsRegistry) && !(key in kyOptionKeys) && (!(key in request) || key in vendorSpecificOptions)) {\n\t\t\tunknownOptions[key] = options[key];\n\t\t}\n\t}\n\n\treturn unknownOptions;\n};\n\nexport const hasSearchParameters = (search: SearchParamsOption): boolean => {\n\tif (search === undefined) {\n\t\treturn false;\n\t}\n\n\t// The `typeof array` still gives \"object\", so we need different checking for array.\n\tif (Array.isArray(search)) {\n\t\treturn search.length > 0;\n\t}\n\n\tif (search instanceof URLSearchParams) {\n\t\treturn search.size > 0;\n\t}\n\n\t// Record\n\tif (typeof search === 'object') {\n\t\treturn Object.keys(search).length > 0;\n\t}\n\n\tif (typeof search === 'string') {\n\t\treturn search.trim().length > 0;\n\t}\n\n\treturn Boolean(search);\n};\n","import {HTTPError} from '../errors/HTTPError.js';\nimport {TimeoutError} from '../errors/TimeoutError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\n\n/**\nType guard to check if an error is a Ky error (HTTPError or TimeoutError).\n\n@param error - The error to check\n@returns `true` if the error is a Ky error, `false` otherwise\n\n@example\n```\nimport ky, {isKyError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isKyError(error)) {\n\t\t// Handle Ky-specific errors\n\t\tconsole.log('Ky error occurred:', error.message);\n\t} else {\n\t\t// Handle other errors\n\t\tconsole.log('Unknown error:', error);\n\t}\n}\n```\n*/\nexport function isKyError(error: unknown): error is HTTPError | TimeoutError {\n\treturn isHTTPError(error) || isTimeoutError(error);\n}\n\n/**\nType guard to check if an error is an HTTPError.\n\n@param error - The error to check\n@returns `true` if the error is an HTTPError, `false` otherwise\n\n@example\n```\nimport ky, {isHTTPError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data');\n} catch (error) {\n\tif (isHTTPError(error)) {\n\t\tconsole.log('HTTP error status:', error.response.status);\n\t}\n}\n```\n*/\nexport function isHTTPError<T = unknown>(error: unknown): error is HTTPError<T> {\n\treturn error instanceof HTTPError || ((error as any)?.name === HTTPError.name);\n}\n\n/**\nType guard to check if an error is a TimeoutError.\n\n@param error - The error to check\n@returns `true` if the error is a TimeoutError, `false` otherwise\n\n@example\n```\nimport ky, {isTimeoutError} from 'ky';\ntry {\n\tconst response = await ky.get('/api/data', { timeout: 1000 });\n} catch (error) {\n\tif (isTimeoutError(error)) {\n\t\tconsole.log('Request timed out:', error.request.url);\n\t}\n}\n```\n*/\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n\treturn error instanceof TimeoutError || ((error as any)?.name === TimeoutError.name);\n}\n\n/**\nType guard to check if an error is a ForceRetryError.\n\n@param error - The error to check\n@returns `true` if the error is a ForceRetryError, `false` otherwise\n\n@example\n```\nimport ky, {isForceRetryError} from 'ky';\n\nconst api = ky.extend({\n\thooks: {\n\t\tbeforeRetry: [\n\t\t\t({error, retryCount}) => {\n\t\t\t\tif (isForceRetryError(error)) {\n\t\t\t\t\tconsole.log(`Forced retry #${retryCount}: ${error.code}`);\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n});\n```\n*/\nexport function isForceRetryError(error: unknown): error is ForceRetryError {\n\treturn error instanceof ForceRetryError || ((error as any)?.name === ForceRetryError.name);\n}\n","import {HTTPError} from '../errors/HTTPError.js';\nimport {NonError} from '../errors/NonError.js';\nimport {ForceRetryError} from '../errors/ForceRetryError.js';\nimport type {\n\tInput,\n\tInternalOptions,\n\tNormalizedOptions,\n\tOptions,\n\tSearchParamsInit,\n\tSearchParamsOption,\n} from '../types/options.js';\nimport {type ResponsePromise} from '../types/ResponsePromise.js';\nimport {streamRequest, streamResponse} from '../utils/body.js';\nimport {mergeHeaders, mergeHooks} from '../utils/merge.js';\nimport {normalizeRequestMethod, normalizeRetryOptions} from '../utils/normalize.js';\nimport timeout, {type TimeoutOptions} from '../utils/timeout.js';\nimport delay from '../utils/delay.js';\nimport {type ObjectEntries} from '../utils/types.js';\nimport {findUnknownOptions, hasSearchParameters} from '../utils/options.js';\nimport {isHTTPError, isTimeoutError} from '../utils/type-guards.js';\nimport {\n\tmaxSafeTimeout,\n\tresponseTypes,\n\tstop,\n\tRetryMarker,\n\tsupportsAbortController,\n\tsupportsAbortSignal,\n\tsupportsFormData,\n\tsupportsResponseStreams,\n\tsupportsRequestStreams,\n} from './constants.js';\n\nexport class Ky {\n\tstatic create(input: Input, options: Options): ResponsePromise {\n\t\tconst ky = new Ky(input, options);\n\n\t\tconst function_ = async (): Promise<Response> => {\n\t\t\tif (typeof ky.#options.timeout === 'number' && ky.#options.timeout > maxSafeTimeout) {\n\t\t\t\tthrow new RangeError(`The \\`timeout\\` option cannot be greater than ${maxSafeTimeout}`);\n\t\t\t}\n\n\t\t\t// Delay the fetch so that body method shortcuts can set the Accept header\n\t\t\tawait Promise.resolve();\n\t\t\t// Before using ky.request, _fetch clones it and saves the clone for future retries to use.\n\t\t\t// If retry is not needed, close the cloned request's ReadableStream for memory safety.\n\t\t\tlet response = await ky.#fetch();\n\n\t\t\tfor (const hook of ky.#options.hooks.afterResponse) {\n\t\t\t\t// Clone the response before passing to hook so we can cancel it if needed\n\t\t\t\tconst clonedResponse = ky.#decorateResponse(response.clone());\n\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tconst modifiedResponse = await hook(\n\t\t\t\t\tky.request,\n\t\t\t\t\tky.#getNormalizedOptions(),\n\t\t\t\t\tclonedResponse,\n\t\t\t\t\t{retryCount: ky.#retryCount},\n\t\t\t\t);\n\n\t\t\t\tif (modifiedResponse instanceof globalThis.Response) {\n\t\t\t\t\tresponse = modifiedResponse;\n\t\t\t\t}\n\n\t\t\t\tif (modifiedResponse instanceof RetryMarker) {\n\t\t\t\t\t// Cancel both the cloned response passed to the hook and the current response\n\t\t\t\t\t// to prevent resource leaks (especially important in Deno/Bun)\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\tclonedResponse.body?.cancel(),\n\t\t\t\t\t\tresponse.body?.cancel(),\n\t\t\t\t\t]);\n\t\t\t\t\tthrow new ForceRetryError(modifiedResponse.options);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tky.#decorateResponse(response);\n\n\t\t\tif (!response.ok && (\n\t\t\t\ttypeof ky.#options.throwHttpErrors === 'function'\n\t\t\t\t\t? ky.#options.throwHttpErrors(response.status)\n\t\t\t\t\t: ky.#options.throwHttpErrors\n\t\t\t)) {\n\t\t\t\tlet error = new HTTPError(response, ky.request, ky.#getNormalizedOptions());\n\n\t\t\t\tfor (const hook of ky.#options.hooks.beforeError) {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\terror = await hook(error, {retryCount: ky.#retryCount});\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\t// If `onDownloadProgress` is passed, it uses the stream API internally\n\t\t\tif (ky.#options.onDownloadProgress) {\n\t\t\t\tif (typeof ky.#options.onDownloadProgress !== 'function') {\n\t\t\t\t\tthrow new TypeError('The `onDownloadProgress` option must be a function');\n\t\t\t\t}\n\n\t\t\t\tif (!supportsResponseStreams) {\n\t\t\t\t\tthrow new Error('Streams are not supported in your environment. `ReadableStream` is missing.');\n\t\t\t\t}\n\n\t\t\t\treturn streamResponse(response.clone(), ky.#options.onDownloadProgress);\n\t\t\t}\n\n\t\t\treturn response;\n\t\t};\n\n\t\t// Always wrap in #retry to catch forced retries from afterResponse hooks\n\t\t// Method retriability is checked in #calculateRetryDelay for non-forced retries\n\t\tconst result = ky.#retry(function_)\n\t\t\t.finally(async () => {\n\t\t\t\tconst originalRequest = ky.#originalRequest;\n\t\t\t\tconst cleanupPromises = [];\n\n\t\t\t\tif (originalRequest && !originalRequest.bodyUsed) {\n\t\t\t\t\tcleanupPromises.push(originalRequest.body?.cancel());\n\t\t\t\t}\n\n\t\t\t\tif (!ky.request.bodyUsed) {\n\t\t\t\t\tcleanupPromises.push(ky.request.body?.cancel());\n\t\t\t\t}\n\n\t\t\t\tawait Promise.all(cleanupPromises);\n\t\t\t}) as ResponsePromise;\n\n\t\tfor (const [type, mimeType] of Object.entries(responseTypes) as ObjectEntries<typeof responseTypes>) {\n\t\t\t// Only expose `.bytes()` when the environment implements it.\n\t\t\tif (\n\t\t\t\ttype === 'bytes'\n\t\t\t\t&& typeof (globalThis.Response?.prototype as unknown as {bytes?: unknown})?.bytes !== 'function'\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tresult[type] = async () => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\t\tky.request.headers.set('accept', ky.request.headers.get('accept') || mimeType);\n\n\t\t\t\tconst response = await result;\n\n\t\t\t\tif (type === 'json') {\n\t\t\t\t\tif (response.status === 204) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\tconst text = await response.text();\n\t\t\t\t\tif (text === '') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.parseJson) {\n\t\t\t\t\t\treturn options.parseJson(text);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn JSON.parse(text);\n\t\t\t\t}\n\n\t\t\t\treturn response[type]();\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tstatic #normalizeSearchParams(searchParams: SearchParamsOption): SearchParamsOption {\n\t\t// Filter out undefined values from plain objects\n\t\tif (searchParams && typeof searchParams === 'object' && !Array.isArray(searchParams) && !(searchParams instanceof URLSearchParams)) {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries(searchParams).filter(([, value]) => value !== undefined),\n\t\t\t);\n\t\t}\n\n\t\treturn searchParams;\n\t}\n\n\tpublic request: Request;\n\t#abortController?: AbortController;\n\t#retryCount = 0;\n\t// eslint-disable-next-line @typescript-eslint/prefer-readonly -- False positive: #input is reassigned on line 202\n\t#input: Input;\n\treadonly #options: InternalOptions;\n\t#originalRequest?: Request;\n\treadonly #userProvidedAbortSignal?: AbortSignal;\n\t#cachedNormalizedOptions: NormalizedOptions | undefined;\n\n\t// eslint-disable-next-line complexity\n\tconstructor(input: Input, options: Options = {}) {\n\t\tthis.#input = input;\n\n\t\tthis.#options = {\n\t\t\t...options,\n\t\t\theaders: mergeHeaders((this.#input as Request).headers, options.headers),\n\t\t\thooks: mergeHooks(\n\t\t\t\t{\n\t\t\t\t\tbeforeRequest: [],\n\t\t\t\t\tbeforeRetry: [],\n\t\t\t\t\tbeforeError: [],\n\t\t\t\t\tafterResponse: [],\n\t\t\t\t},\n\t\t\t\toptions.hooks,\n\t\t\t),\n\t\t\tmethod: normalizeRequestMethod(options.method ?? (this.#input as Request).method ?? 'GET'),\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n\t\t\tprefixUrl: String(options.prefixUrl || ''),\n\t\t\tretry: normalizeRetryOptions(options.retry),\n\t\t\tthrowHttpErrors: options.throwHttpErrors ?? true,\n\t\t\ttimeout: options.timeout ?? 10_000,\n\t\t\tfetch: options.fetch ?? globalThis.fetch.bind(globalThis),\n\t\t\tcontext: options.context ?? {},\n\t\t};\n\n\t\tif (typeof this.#input !== 'string' && !(this.#input instanceof URL || this.#input instanceof globalThis.Request)) {\n\t\t\tthrow new TypeError('`input` must be a string, URL, or Request');\n\t\t}\n\n\t\tif (this.#options.prefixUrl && typeof this.#input === 'string') {\n\t\t\tif (this.#input.startsWith('/')) {\n\t\t\t\tthrow new Error('`input` must not begin with a slash when using `prefixUrl`');\n\t\t\t}\n\n\t\t\tif (!this.#options.prefixUrl.endsWith('/')) {\n\t\t\t\tthis.#options.prefixUrl += '/';\n\t\t\t}\n\n\t\t\tthis.#input = this.#options.prefixUrl + this.#input;\n\t\t}\n\n\t\tif (supportsAbortController && supportsAbortSignal) {\n\t\t\tthis.#userProvidedAbortSignal = this.#options.signal ?? (this.#input as Request).signal;\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#userProvidedAbortSignal ? AbortSignal.any([this.#userProvidedAbortSignal, this.#abortController.signal]) : this.#abortController.signal;\n\t\t}\n\n\t\tif (supportsRequestStreams) {\n\t\t\t// @ts-expect-error - Types are outdated.\n\t\t\tthis.#options.duplex = 'half';\n\t\t}\n\n\t\tif (this.#options.json !== undefined) {\n\t\t\tthis.#options.body = this.#options.stringifyJson?.(this.#options.json) ?? JSON.stringify(this.#options.json);\n\t\t\tthis.#options.headers.set('content-type', this.#options.headers.get('content-type') ?? 'application/json');\n\t\t}\n\n\t\t// To provide correct form boundary, Content-Type header should be deleted when creating Request from another Request with FormData/URLSearchParams body\n\t\t// Only delete if user didn't explicitly provide a custom content-type\n\t\tconst userProvidedContentType = options.headers && new globalThis.Headers(options.headers as HeadersInit).has('content-type');\n\t\tif (\n\t\t\tthis.#input instanceof globalThis.Request\n\t\t\t&& ((supportsFormData && this.#options.body instanceof globalThis.FormData) || this.#options.body instanceof URLSearchParams)\n\t\t\t&& !userProvidedContentType\n\t\t) {\n\t\t\tthis.#options.headers.delete('content-type');\n\t\t}\n\n\t\tthis.request = new globalThis.Request(this.#input, this.#options);\n\n\t\tif (hasSearchParameters(this.#options.searchParams)) {\n\t\t\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\t\t\tconst textSearchParams = typeof this.#options.searchParams === 'string'\n\t\t\t\t? this.#options.searchParams.replace(/^\\?/, '')\n\t\t\t\t: new URLSearchParams(Ky.#normalizeSearchParams(this.#options.searchParams) as unknown as SearchParamsInit).toString();\n\t\t\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\t\t\tconst searchParams = '?' + textSearchParams;\n\t\t\tconst url = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, searchParams);\n\n\t\t\t// Recreate request with the updated URL. We already have all options in this.#options, including duplex.\n\t\t\tthis.request = new globalThis.Request(url, this.#options as RequestInit);\n\t\t}\n\n\t\t// If `onUploadProgress` is passed, it uses the stream API internally\n\t\tif (this.#options.onUploadProgress) {\n\t\t\tif (typeof this.#options.onUploadProgress !== 'function') {\n\t\t\t\tthrow new TypeError('The `onUploadProgress` option must be a function');\n\t\t\t}\n\n\t\t\tif (!supportsRequestStreams) {\n\t\t\t\tthrow new Error('Request streams are not supported in your environment. The `duplex` option for `Request` is not available.');\n\t\t\t}\n\n\t\t\tthis.request = this.#wrapRequestWithUploadProgress(this.request, this.#options.body ?? undefined);\n\t\t}\n\t}\n\n\t#calculateDelay(): number {\n\t\tconst retryDelay = this.#options.retry.delay(this.#retryCount);\n\n\t\tlet jitteredDelay = retryDelay;\n\t\tif (this.#options.retry.jitter === true) {\n\t\t\tjitteredDelay = Math.random() * retryDelay;\n\t\t} else if (typeof this.#options.retry.jitter === 'function') {\n\t\t\tjitteredDelay = this.#options.retry.jitter(retryDelay);\n\n\t\t\tif (!Number.isFinite(jitteredDelay) || jitteredDelay < 0) {\n\t\t\t\tjitteredDelay = retryDelay;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this.#options.retry.backoffLimit, jitteredDelay);\n\t}\n\n\tasync #calculateRetryDelay(error: unknown) {\n\t\tthis.#retryCount++;\n\n\t\tif (this.#retryCount > this.#options.retry.limit) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// Wrap non-Error throws to ensure consistent error handling\n\t\tconst errorObject = error instanceof Error ? error : new NonError(error);\n\n\t\t// Handle forced retry from afterResponse hook - skip method check and shouldRetry\n\t\tif (errorObject instanceof ForceRetryError) {\n\t\t\treturn errorObject.customDelay ?? this.#calculateDelay();\n\t\t}\n\n\t\t// Check if method is retriable for non-forced retries\n\t\tif (!this.#options.retry.methods.includes(this.request.method.toLowerCase())) {\n\t\t\tthrow error;\n\t\t}\n\n\t\t// User-provided shouldRetry function takes precedence over all other checks\n\t\tif (this.#options.retry.shouldRetry !== undefined) {\n\t\t\tconst result = await this.#options.retry.shouldRetry({error: errorObject, retryCount: this.#retryCount});\n\n\t\t\t// Strict boolean checking - only exact true/false are handled specially\n\t\t\tif (result === false) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (result === true) {\n\t\t\t\t// Force retry - skip all other validation and return delay\n\t\t\t\treturn this.#calculateDelay();\n\t\t\t}\n\n\t\t\t// If undefined or any other value, fall through to default behavior\n\t\t}\n\n\t\t// Default timeout behavior\n\t\tif (isTimeoutError(error) && !this.#options.retry.retryOnTimeout) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (isHTTPError(error)) {\n\t\t\tif (!this.#options.retry.statusCodes.includes(error.response.status)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tconst retryAfter = error.response.headers.get('Retry-After')\n\t\t\t\t?? error.response.headers.get('RateLimit-Reset')\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Retry-After') // Symfony-based services\n\t\t\t\t?? error.response.headers.get('X-RateLimit-Reset') // GitHub\n\t\t\t\t?? error.response.headers.get('X-Rate-Limit-Reset'); // Twitter\n\t\t\tif (retryAfter && this.#options.retry.afterStatusCodes.includes(error.response.status)) {\n\t\t\t\tlet after = Number(retryAfter) * 1000;\n\t\t\t\tif (Number.isNaN(after)) {\n\t\t\t\t\tafter = Date.parse(retryAfter) - Date.now();\n\t\t\t\t} else if (after >= Date.parse('2024-01-01')) {\n\t\t\t\t\t// A large number is treated as a timestamp (fixed threshold protects against clock skew)\n\t\t\t\t\tafter -= Date.now();\n\t\t\t\t}\n\n\t\t\t\tconst max = this.#options.retry.maxRetryAfter ?? after;\n\t\t\t\t// Don't apply jitter when server provides explicit retry timing\n\t\t\t\treturn after < max ? after : max;\n\t\t\t}\n\n\t\t\tif (error.response.status === 413) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn this.#calculateDelay();\n\t}\n\n\t#decorateResponse(response: Response): Response {\n\t\tif (this.#options.parseJson) {\n\t\t\tresponse.json = async () => this.#options.parseJson!(await response.text());\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync #retry<T extends (...arguments_: any) => Promise<any>>(function_: T): Promise<ReturnType<T> | Response | void> {\n\t\ttry {\n\t\t\treturn await function_();\n\t\t} catch (error) {\n\t\t\tconst ms = Math.min(await this.#calculateRetryDelay(error), maxSafeTimeout);\n\t\t\tif (this.#retryCount < 1) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\t// Only use user-provided signal for delay, not our internal abortController\n\t\t\tawait delay(ms, this.#userProvidedAbortSignal ? {signal: this.#userProvidedAbortSignal} : {});\n\n\t\t\t// Apply custom request from forced retry before beforeRetry hooks\n\t\t\t// Ensure the custom request has the correct managed signal for timeouts and user aborts\n\t\t\tif (error instanceof ForceRetryError && error.customRequest) {\n\t\t\t\tconst managedRequest = this.#options.signal\n\t\t\t\t\t? new globalThis.Request(error.customRequest, {signal: this.#options.signal})\n\t\t\t\t\t: new globalThis.Request(error.customRequest);\n\n\t\t\t\tthis.#assignRequest(managedRequest);\n\t\t\t}\n\n\t\t\tfor (const hook of this.#options.hooks.beforeRetry) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tconst hookResult = await hook({\n\t\t\t\t\trequest: this.request,\n\t\t\t\t\toptions: this.#getNormalizedOptions(),\n\t\t\t\t\terror: error as Error,\n\t\t\t\t\tretryCount: this.#retryCount,\n\t\t\t\t});\n\n\t\t\t\tif (hookResult instanceof globalThis.Request) {\n\t\t\t\t\tthis.#assignRequest(hookResult);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// If a Response is returned, use it and skip the retry\n\t\t\t\tif (hookResult instanceof globalThis.Response) {\n\t\t\t\t\treturn hookResult;\n\t\t\t\t}\n\n\t\t\t\t// If `stop` is returned from the hook, the retry process is stopped\n\t\t\t\tif (hookResult === stop) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.#retry(function_);\n\t\t}\n\t}\n\n\tasync #fetch(): Promise<Response> {\n\t\t// Reset abortController if it was aborted (happens on timeout retry)\n\t\tif (this.#abortController?.signal.aborted) {\n\t\t\tthis.#abortController = new globalThis.AbortController();\n\t\t\tthis.#options.signal = this.#userProvidedAbortSignal ? AbortSignal.any([this.#userProvidedAbortSignal, this.#abortController.signal]) : this.#abortController.signal;\n\t\t\t// Recreate request with new signal\n\t\t\tthis.request = new globalThis.Request(this.request, {signal: this.#options.signal});\n\t\t}\n\n\t\tfor (const hook of this.#options.hooks.beforeRequest) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tconst result = await hook(\n\t\t\t\tthis.request,\n\t\t\t\tthis.#getNormalizedOptions(),\n\t\t\t\t{retryCount: this.#retryCount},\n\t\t\t);\n\n\t\t\tif (result instanceof Response) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tif (result instanceof globalThis.Request) {\n\t\t\t\tthis.#assignRequest(result);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tconst nonRequestOptions = findUnknownOptions(this.request, this.#options);\n\n\t\t// Cloning is done here to prepare in advance for retries\n\t\tthis.#originalRequest = this.request;\n\t\tthis.request = this.#originalRequest.clone();\n\n\t\tif (this.#options.timeout === false) {\n\t\t\treturn this.#options.fetch(this.#originalRequest, nonRequestOptions);\n\t\t}\n\n\t\treturn timeout(this.#originalRequest, nonRequestOptions, this.#abortController, this.#options as TimeoutOptions);\n\t}\n\n\t#getNormalizedOptions(): NormalizedOptions {\n\t\tif (!this.#cachedNormalizedOptions) {\n\t\t\tconst {hooks, ...normalizedOptions} = this.#options;\n\t\t\tthis.#cachedNormalizedOptions = Object.freeze(normalizedOptions) as NormalizedOptions;\n\t\t}\n\n\t\treturn this.#cachedNormalizedOptions;\n\t}\n\n\t#assignRequest(request: Request): void {\n\t\tthis.#cachedNormalizedOptions = undefined;\n\t\tthis.request = this.#wrapRequestWithUploadProgress(request);\n\t}\n\n\t#wrapRequestWithUploadProgress(request: Request, originalBody?: BodyInit): Request {\n\t\tif (!this.#options.onUploadProgress || !request.body) {\n\t\t\treturn request;\n\t\t}\n\n\t\treturn streamRequest(request, this.#options.onUploadProgress, originalBody ?? this.#options.body ?? undefined);\n\t}\n}\n","/*! MIT License © Sindre Sorhus */\n\nimport {Ky} from './core/Ky.js';\nimport {requestMethods, stop, retry} from './core/constants.js';\nimport type {KyInstance} from './types/ky.js';\nimport type {Input, Options} from './types/options.js';\nimport {validateAndMerge} from './utils/merge.js';\nimport {type Mutable} from './utils/types.js';\n\nconst createInstance = (defaults?: Partial<Options>): KyInstance => {\n\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\tconst ky: Partial<Mutable<KyInstance>> = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options));\n\n\tfor (const method of requestMethods) {\n\t\t// eslint-disable-next-line @typescript-eslint/promise-function-async\n\t\tky[method] = (input: Input, options?: Options) => Ky.create(input, validateAndMerge(defaults, options, {method}));\n\t}\n\n\tky.create = (newDefaults?: Partial<Options>) => createInstance(validateAndMerge(newDefaults));\n\tky.extend = (newDefaults?: Partial<Options> | ((parentDefaults: Partial<Options>) => Partial<Options>)) => {\n\t\tif (typeof newDefaults === 'function') {\n\t\t\tnewDefaults = newDefaults(defaults ?? {});\n\t\t}\n\n\t\treturn createInstance(validateAndMerge(defaults, newDefaults));\n\t};\n\n\tky.stop = stop;\n\tky.retry = retry;\n\n\treturn ky as KyInstance;\n};\n\nconst ky = createInstance();\n\nexport default ky;\n\nexport type {KyInstance} from './types/ky.js';\n\nexport type {\n\tInput,\n\tOptions,\n\tNormalizedOptions,\n\tRetryOptions,\n\tShouldRetryState,\n\tSearchParamsOption,\n\tProgress,\n} from './types/options.js';\n\nexport type {\n\tHooks,\n\tBeforeRequestHook,\n\tBeforeRequestState,\n\tBeforeRetryHook,\n\tBeforeRetryState,\n\tBeforeErrorHook,\n\tBeforeErrorState,\n\tAfterResponseHook,\n\tAfterResponseState,\n} from './types/hooks.js';\n\nexport type {ResponsePromise} from './types/ResponsePromise.js';\nexport type {KyRequest} from './types/request.js';\nexport type {KyResponse} from './types/response.js';\nexport {HTTPError} from './errors/HTTPError.js';\nexport {TimeoutError} from './errors/TimeoutError.js';\nexport {ForceRetryError} from './errors/ForceRetryError.js';\nexport {\n\tisKyError,\n\tisHTTPError,\n\tisTimeoutError,\n\tisForceRetryError,\n} from './utils/type-guards.js';\n\n// Intentionally not exporting this for now as it's just an implementation detail and we don't want to commit to a certain API yet at least.\n// export {NonError} from './errors/NonError.js';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { App } from 'antd'\nimport ky, { type KyInstance, type Options as KyOptions } from 'ky'\nimport { useMemo } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { APP_ID_HEADER } from '@/constants'\n\n// 响应成功状态码常量\nconst SUCCESS_RESPONSE_CODES = [0, 1, 200] as const\n\n// HTTP 状态码常量\nconst HTTP_STATUS = {\n OK: 200,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n UNREGISTERED: 412,\n} as const\n\n// 请求超时时间(毫秒)\nconst REQUEST_TIMEOUT = 30000\n\n// 成功响应状态码字段类型\ntype StatusField = 'code' | 'status' | 'errno'\n\n// 状态码检查配置\ninterface StatusCheckConfig {\n field: StatusField\n value: unknown\n allowedCodes: readonly number[]\n}\n\n// 响应类型\nexport type ResponseType = 'json' | 'blob' | 'text' | 'arrayBuffer' | 'formData'\n\n// 通用请求选项接口\ninterface RequestOptions extends KyOptions {\n responseType?: ResponseType\n}\n\n// useKy Hook 配置选项\nexport interface UseKyOptions {\n baseURL?: string\n}\n\n// HTTP客户端方法接口 - 支持泛型响应类型\ninterface KyMethods {\n get: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n post: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n put: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n delete: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n patch: <T = any>(url: string, data?: any, options?: RequestOptions) => Promise<T>\n options: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n head: <T = any>(url: string, options?: RequestOptions) => Promise<T>\n request: <T = any>(options: RequestOptions & { url: string }) => Promise<T>\n instance: KyInstance\n}\n\n// 错误消息提取工具函数\nconst extractErrorMessage = (data: any): string => {\n if (!data || typeof data !== 'object') {\n return 'Unknown error'\n }\n\n return data.msg || data.message || data.error || 'Unknown error'\n}\n\n/**\n * 检查单个状态码字段是否成功\n * @param config 状态码检查配置\n * @returns 是否成功\n */\nconst isStatusCodeSuccess = (config: StatusCheckConfig): boolean => {\n const { value, allowedCodes } = config\n\n if (value === undefined || value === null) {\n return false\n }\n\n if (typeof value !== 'number') {\n return false\n }\n\n return allowedCodes.includes(value)\n}\n\n/**\n * 判断响应是否成功\n * @param data 响应数据\n * @param status HTTP状态码\n * @returns 是否成功\n */\nconst isSuccessResponse = (data: any, status: number): boolean => {\n // 如果HTTP状态码不在2xx范围,直接返回失败\n if (status < HTTP_STATUS.OK || status >= 300) {\n return false\n }\n\n // 如果没有响应数据或不是对象,认为成功(可能是空响应)\n if (!data || typeof data !== 'object') {\n return true\n }\n\n // 定义状态码检查配置\n const statusChecks: StatusCheckConfig[] = [\n { field: 'code', value: data.code, allowedCodes: SUCCESS_RESPONSE_CODES },\n { field: 'status', value: data.status, allowedCodes: SUCCESS_RESPONSE_CODES },\n { field: 'errno', value: data.errno, allowedCodes: SUCCESS_RESPONSE_CODES },\n ]\n\n // 检查是否有任何业务状态码字段存在且表示成功\n const hasBusinessStatusCode = statusChecks.some(config => config.value !== undefined && config.value !== null)\n\n // 如果存在业务状态码字段,则必须检查它们是否都表示成功\n if (hasBusinessStatusCode) {\n return statusChecks.every(\n config => config.value === undefined || config.value === null || isStatusCodeSuccess(config),\n )\n }\n\n // 如果没有业务状态码字段,HTTP 2xx 就认为成功\n return true\n}\n\n/**\n * 根据响应类型处理响应数据\n * @param response 响应对象\n * @param responseType 响应类型\n * @returns 处理后的响应数据\n */\nconst processResponseByType = async (response: Response, responseType?: ResponseType): Promise<any> => {\n switch (responseType) {\n case 'text':\n return response.text()\n case 'arrayBuffer':\n return response.arrayBuffer()\n case 'formData':\n return response.formData()\n case 'json':\n return response.json()\n default:\n return response\n }\n}\n\n/**\n * HTTP客户端Hook (基于 Ky) - 内部使用版本\n * @param config 配置选项\n * @returns HTTP客户端方法集合\n */\nexport const useKy = (config?: UseKyOptions): KyMethods => {\n const { baseURL } = config || {}\n const { notification } = App.useApp()\n const navigate = useNavigate()\n\n const {\n token: { token },\n context: { isGlobalMode, loginPath, apiBaseUrl },\n game: { appId },\n clear,\n } = useToolkitsStore()\n\n // 处理未授权错误\n const handleUnauthorized = () => {\n clear()\n navigate(loginPath)\n }\n\n // 处理未注册错误\n const handleUnregistered = () => {\n clear()\n if (loginPath) {\n // 添加未注册参数到登录页 URL\n const url = new URL(loginPath, window.location.origin)\n url.searchParams.set('unregistered', 'true')\n navigate(url.toString())\n }\n }\n\n // 处理禁止访问错误\n const handleForbidden = () => {\n notification.error({\n title: '访问被禁止',\n description: '您没有权限访问此资源。',\n })\n }\n\n // 创建响应处理函数\n const createResponseHandler = (responseType?: ResponseType) => {\n return async (_request: any, _options: any, response: Response): Promise<Response> => {\n // 非 JSON 类型直接交由调用方按响应类型读取\n if (\n responseType === 'blob' ||\n responseType === 'arrayBuffer' ||\n responseType === 'text' ||\n responseType === 'formData'\n ) {\n return response\n }\n\n // 默认 JSON\n let data: any\n try {\n data = await response.clone().json()\n } catch {\n // 非 JSON 或空响应体,直接返回原响应\n return response\n }\n\n if (isSuccessResponse(data, response.status)) {\n return new Response(JSON.stringify(data), {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n })\n }\n\n const errorMessage = extractErrorMessage(data)\n\n notification.error({\n title: 'Request failed',\n description: errorMessage,\n })\n\n const error = new Error(errorMessage)\n ;(error as any).response = response\n ;(error as any).data = data\n throw error\n }\n }\n\n // 处理HTTP状态码错误\n const handleHttpStatusError = (status: number, data: any) => {\n switch (status) {\n case HTTP_STATUS.UNAUTHORIZED:\n handleUnauthorized()\n break\n\n case HTTP_STATUS.UNREGISTERED:\n handleUnregistered()\n break\n\n case HTTP_STATUS.FORBIDDEN:\n handleForbidden()\n break\n\n default: {\n // 安全地提取错误消息\n const errorMessage = extractErrorMessage(data) || `HTTP ${status} Error`\n notification.error({\n title: 'Request failed',\n description: errorMessage,\n })\n break\n }\n }\n }\n\n // 创建ky实例\n const instance = useMemo(() => {\n return ky.create({\n prefixUrl: baseURL ?? apiBaseUrl,\n retry: 0,\n timeout: REQUEST_TIMEOUT,\n hooks: {\n beforeRequest: [\n request => {\n // 设置认证 headers\n if (token) {\n request.headers.set('Authorization', `Bearer ${token}`)\n }\n\n // 设置应用 ID headers\n if (!request.headers.has(APP_ID_HEADER)) {\n if (isGlobalMode || !appId) {\n request.headers.set(APP_ID_HEADER, 'global')\n } else {\n // 对 appId 进行 URL 编码以避免非 ASCII 字符导致的 XMLHttpRequest 错误\n request.headers.set(APP_ID_HEADER, encodeURIComponent(String(appId)))\n }\n }\n },\n ],\n beforeError: [\n async error => {\n const { response } = error\n\n if (response) {\n const status = response.status\n let data: any\n\n try {\n const contentType = response.headers.get('content-type') || ''\n if (contentType.includes('application/json') || contentType.startsWith('text/')) {\n data = await response.clone().json()\n }\n } catch {\n // 忽略 JSON 解析错误\n }\n\n handleHttpStatusError(status, data)\n } else {\n // 网络错误或请求超时等情况\n notification.error({\n title: 'Network Error',\n description: error.message || 'Network request failed',\n })\n }\n\n return error\n },\n ],\n },\n })\n }, [baseURL, token, isGlobalMode, appId, notification, loginPath, clear, apiBaseUrl])\n\n // 通用请求处理函数\n const makeRequest = async <T = any>(\n method: string,\n url: string,\n data?: any,\n requestOptions?: RequestOptions,\n ): Promise<T> => {\n const { responseType = 'json', ...kyOptions } = requestOptions || {}\n\n // 创建带有响应类型处理器的请求选项\n const finalOptions: KyOptions = {\n ...kyOptions,\n hooks: {\n ...kyOptions.hooks,\n afterResponse: [...(kyOptions.hooks?.afterResponse || []), createResponseHandler(responseType)],\n },\n }\n\n let response: Response\n\n if (data) {\n // 根据数据类型选择合适的方式传递 body\n // FormData: 让 ky 自动处理 multipart/form-data\n // URLSearchParams: 自动处理为 application/x-www-form-urlencoded\n // Blob/ArrayBuffer/string/TypedArray: 直接作为 body 传递\n // object/array: 使用 json 选项自动序列化\n if (\n data instanceof FormData ||\n data instanceof URLSearchParams ||\n data instanceof Blob ||\n typeof data === 'string' ||\n data instanceof ArrayBuffer ||\n ArrayBuffer.isView(data)\n ) {\n // 这些类型可以直接作为 body 传递\n response = await instance(url, { method, body: data as BodyInit, ...finalOptions })\n } else {\n // 对象和数组使用 json 选项,ky 会自动序列化并设置 Content-Type\n response = await instance(url, { method, json: data, ...finalOptions })\n }\n } else {\n response = await instance(url, { method, ...finalOptions })\n }\n\n // 根据响应类型返回相应数据\n return processResponseByType(response, responseType)\n }\n\n // HTTP方法\n const get = <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('GET', url, undefined, options)\n }\n\n const post = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('POST', url, data, options)\n }\n\n const put = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('PUT', url, data, options)\n }\n\n const del = <T = any>(url: string, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('DELETE', url, undefined, options)\n }\n\n const patch = <T = any>(url: string, data?: any, options?: RequestOptions): Promise<T> => {\n return makeRequest<T>('PATCH', url, data, options)\n }\n\n const options = <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return makeRequest<T>('OPTIONS', url, undefined, requestOptions)\n }\n\n const head = <T = any>(url: string, requestOptions?: RequestOptions): Promise<T> => {\n return makeRequest<T>('HEAD', url, undefined, requestOptions)\n }\n\n const request = <T = any>(requestOptions: RequestOptions & { url: string }): Promise<T> => {\n const { url, ...requestOpts } = requestOptions\n return makeRequest<T>(requestOpts.method || 'GET', url, undefined, requestOpts)\n }\n\n return {\n get,\n post,\n put,\n delete: del,\n patch,\n options,\n head,\n request,\n instance,\n }\n}\n","export { useKy } from './ky'\n","import type { PermissionMode } from './constants'\n\n// 查询键工厂 - 使用简单的对象和函数来生成查询键\nexport const queryKeys = {\n // 权限相关\n permissions: {\n check: (permissions: string[], mode: PermissionMode) => ['permissions', 'check', permissions, mode] as const,\n allPermissions: ['permissions', 'all'] as const,\n allPermissionsV2: ['permissions', 'allV2'] as const,\n },\n // 用户相关\n users: {\n all: ['users'] as const,\n detail: (id: string) => ['users', 'detail', id] as const,\n create: ['users', 'create'] as const,\n update: ['users', 'update'] as const,\n delete: ['users', 'delete'] as const,\n },\n // 角色相关\n roles: {\n all: ['roles'] as const,\n detail: (name: string, mode: PermissionMode) => ['roles', 'detail', name, mode] as const,\n create: (mode: PermissionMode) => ['roles', 'create', mode] as const,\n update: (mode: PermissionMode) => ['roles', 'update', mode] as const,\n delete: ['roles', 'delete'] as const,\n },\n // 菜单相关\n menus: {\n all: ['menus'] as const,\n navbar: (appId?: string) => ['menus', 'navbar', appId] as const,\n detail: (id: number) => ['menus', 'detail', id] as const,\n create: ['menus', 'create'] as const,\n update: ['menus', 'update'] as const,\n delete: ['menus', 'delete'] as const,\n },\n // 枚举相关\n enums: {\n gameGroups: ['enums', 'gameGroups'] as const,\n gameIds: (gameGroups: string[]) => ['enums', 'gameIds', gameGroups] as const,\n },\n // 游戏相关\n games: {\n all: ['games', 'all'] as const,\n },\n // 认证相关\n auth: {\n ticketLogin: (ticket: string | null) => ['auth', 'ticket-login', ticket] as const,\n },\n}\n\nexport type QueryKeys = typeof queryKeys\n","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, PermissionMode } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { JsonResponse, MenuListItem } from '@/types'\n\nexport function useAuth(code?: string | string[], config?: KyOptions) {\n const { post } = useKy()\n const permissionCodes: string[] = typeof code !== 'undefined' ? (typeof code === 'string' ? [code] : code) : []\n\n const { data, ...rest } = useQuery({\n queryKey: queryKeys.permissions.check(permissionCodes, PermissionMode.GAME_SCOPED),\n queryFn: () =>\n post<JsonResponse<Record<string, boolean> & { has_all?: boolean }>>(\n '/api/usystem/user/checkV2',\n {\n permissions: permissionCodes,\n },\n config,\n ),\n enabled: permissionCodes.length > 0,\n retry: false,\n select: response => response.data,\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 {\n context: { loginPath },\n game: { appId },\n } = useToolkitsStore()\n const { get } = useKy()\n\n return useQuery({\n queryKey: queryKeys.menus.navbar(appId ? String(appId) : undefined),\n queryFn: () =>\n get<JsonResponse<MenuListItem[]>>('/api/usystem/menu/navbar', {\n headers: { [APP_ID_HEADER]: appId ? encodeURIComponent(String(appId)) : 'global' },\n }),\n select: response => response.data,\n enabled: window.location.pathname !== loginPath,\n })\n}\n\nexport const useGames = () => {\n const {\n context: { useGameApiV2, gameScoped },\n } = useToolkitsStore()\n const { get } = 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 (useGameApiV2) {\n const response = await get<JsonResponse<{ list: Game[] }>>('/api/game/list', requestConfig)\n return response.data?.list ?? []\n }\n\n const response = await get<JsonResponse<Game[]>>('/api/usystem/game/all', requestConfig)\n return response.data ?? []\n },\n enabled: gameScoped === true,\n retry: false,\n })\n}\n","import type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface AuthButtonProps extends ButtonProps {\n /** 权限码,支持单个或多个 */\n code?: string | string[]\n /** 加载时是否显示 loading 状态 */\n showLoading?: boolean\n /** 请求配置 */\n config?: KyOptions\n}\n\n/**\n * 授权按钮组件\n * 根据权限码自动控制按钮的启用/禁用状态\n * - 有权限:正常显示可点击按钮\n * - 无权限:显示禁用按钮并带有提示\n * - 加载中:显示加载状态\n */\nconst AuthButton: FC<PropsWithChildren<AuthButtonProps>> = props => {\n const { children, code, showLoading, disabled, config, ...restProps } = props\n const codes = code ? (Array.isArray(code) ? code : [code]) : []\n const { data, isLoading } = useAuth(codes, config)\n const { t } = useTranslation()\n\n // 判断是否有权限\n const hasPermission = data && (typeof data === 'boolean' || Object.values(data).some(Boolean))\n\n // 计算最终的禁用状态和加载状态\n const isButtonDisabled = disabled || !hasPermission || (isLoading && !showLoading)\n const isButtonLoading = isLoading && showLoading\n\n // 判断是否需要显示 tooltip(任何禁用状态都显示)\n const shouldShowTooltip = isButtonDisabled\n\n const buttonNode = (\n <Button disabled={isButtonDisabled} loading={isButtonLoading} {...restProps}>\n {children}\n </Button>\n )\n\n if (shouldShowTooltip) {\n return (\n <Tooltip defaultOpen={false} title={t('global.noEntitlement')}>\n {buttonNode}\n </Tooltip>\n )\n }\n\n return buttonNode\n}\n\nexport default AuthButton\n","export type { AuthButtonProps } from './AuthButton'\nexport { default as AuthButton } from './AuthButton'\n","import { createContext } from 'react';\nconst IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// 36 Hex to reduce the size of the file\nexport default {\n aliceblue: '9ehhb',\n antiquewhite: '9sgk7',\n aqua: '1ekf',\n aquamarine: '4zsno',\n azure: '9eiv3',\n beige: '9lhp8',\n bisque: '9zg04',\n black: '0',\n blanchedalmond: '9zhe5',\n blue: '73',\n blueviolet: '5e31e',\n brown: '6g016',\n burlywood: '8ouiv',\n cadetblue: '3qba8',\n chartreuse: '4zshs',\n chocolate: '87k0u',\n coral: '9yvyo',\n cornflowerblue: '3xael',\n cornsilk: '9zjz0',\n crimson: '8l4xo',\n cyan: '1ekf',\n darkblue: '3v',\n darkcyan: 'rkb',\n darkgoldenrod: '776yz',\n darkgray: '6mbhl',\n darkgreen: 'jr4',\n darkgrey: '6mbhl',\n darkkhaki: '7ehkb',\n darkmagenta: '5f91n',\n darkolivegreen: '3bzfz',\n darkorange: '9yygw',\n darkorchid: '5z6x8',\n darkred: '5f8xs',\n darksalmon: '9441m',\n darkseagreen: '5lwgf',\n darkslateblue: '2th1n',\n darkslategray: '1ugcv',\n darkslategrey: '1ugcv',\n darkturquoise: '14up',\n darkviolet: '5rw7n',\n deeppink: '9yavn',\n deepskyblue: '11xb',\n dimgray: '442g9',\n dimgrey: '442g9',\n dodgerblue: '16xof',\n firebrick: '6y7tu',\n floralwhite: '9zkds',\n forestgreen: '1cisi',\n fuchsia: '9y70f',\n gainsboro: '8m8kc',\n ghostwhite: '9pq0v',\n goldenrod: '8j4f4',\n gold: '9zda8',\n gray: '50i2o',\n green: 'pa8',\n greenyellow: '6senj',\n grey: '50i2o',\n honeydew: '9eiuo',\n hotpink: '9yrp0',\n indianred: '80gnw',\n indigo: '2xcoy',\n ivory: '9zldc',\n khaki: '9edu4',\n lavenderblush: '9ziet',\n lavender: '90c8q',\n lawngreen: '4vk74',\n lemonchiffon: '9zkct',\n lightblue: '6s73a',\n lightcoral: '9dtog',\n lightcyan: '8s1rz',\n lightgoldenrodyellow: '9sjiq',\n lightgray: '89jo3',\n lightgreen: '5nkwg',\n lightgrey: '89jo3',\n lightpink: '9z6wx',\n lightsalmon: '9z2ii',\n lightseagreen: '19xgq',\n lightskyblue: '5arju',\n lightslategray: '4nwk9',\n lightslategrey: '4nwk9',\n lightsteelblue: '6wau6',\n lightyellow: '9zlcw',\n lime: '1edc',\n limegreen: '1zcxe',\n linen: '9shk6',\n magenta: '9y70f',\n maroon: '4zsow',\n mediumaquamarine: '40eju',\n mediumblue: '5p',\n mediumorchid: '79qkz',\n mediumpurple: '5r3rv',\n mediumseagreen: '2d9ip',\n mediumslateblue: '4tcku',\n mediumspringgreen: '1di2',\n mediumturquoise: '2uabw',\n mediumvioletred: '7rn9h',\n midnightblue: 'z980',\n mintcream: '9ljp6',\n mistyrose: '9zg0x',\n moccasin: '9zfzp',\n navajowhite: '9zest',\n navy: '3k',\n oldlace: '9wq92',\n olive: '50hz4',\n olivedrab: '472ub',\n orange: '9z3eo',\n orangered: '9ykg0',\n orchid: '8iu3a',\n palegoldenrod: '9bl4a',\n palegreen: '5yw0o',\n paleturquoise: '6v4ku',\n palevioletred: '8k8lv',\n papayawhip: '9zi6t',\n peachpuff: '9ze0p',\n peru: '80oqn',\n pink: '9z8wb',\n plum: '8nba5',\n powderblue: '6wgdi',\n purple: '4zssg',\n rebeccapurple: '3zk49',\n red: '9y6tc',\n rosybrown: '7cv4f',\n royalblue: '2jvtt',\n saddlebrown: '5fmkz',\n salmon: '9rvci',\n sandybrown: '9jn1c',\n seagreen: '1tdnb',\n seashell: '9zje6',\n sienna: '6973h',\n silver: '7ir40',\n skyblue: '5arjf',\n slateblue: '45e4t',\n slategray: '4e100',\n slategrey: '4e100',\n snow: '9zke2',\n springgreen: '1egv',\n steelblue: '2r1kk',\n tan: '87yx8',\n teal: 'pds',\n thistle: '8ggk8',\n tomato: '9yqfb',\n turquoise: '2j4r4',\n violet: '9b10u',\n wheat: '9ld4j',\n white: '9zldr',\n whitesmoke: '9lhpx',\n yellow: '9zl6o',\n yellowgreen: '61fzm'\n};","import presetColors from \"./presetColors\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n isValid = true;\n\n /**\n * Red, R in RGB\n */\n r = 0;\n\n /**\n * Green, G in RGB\n */\n g = 0;\n\n /**\n * Blue, B in RGB\n */\n b = 0;\n\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n a = 1;\n\n // HSV privates\n _h;\n _s;\n _l;\n _v;\n\n // intermediate variables to calculate HSL/HSV\n _max;\n _min;\n _brightness;\n constructor(input) {\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n } else {\n // From preset color\n const presetColor = presetColors[trimStr.toLowerCase()];\n if (presetColor) {\n this.fromHexString(\n // Convert 36 hex to 16 hex\n parseInt(presetColor, 36).toString(16).padStart(6, '0'));\n }\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","export {};","export * from \"./FastColor\";\nexport * from \"./types\";","import { FastColor } from '@ant-design/fast-color';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nconst darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new FastColor(color);\n const hsv = pColor.toHsv();\n for (let i = lightColorCount; i > 0; i -= 1) {\n const c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (let i = 1; i <= darkColorCount; i += 1) {\n const c = new FastColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n });\n patterns.push(c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({\n index,\n amount\n }) => new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString());\n }\n return patterns.map(c => c.toHexString());\n}","// Generated by script. Do NOT modify!\n\nexport const presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport const red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport const volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport const orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport const gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport const yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport const lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport const green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport const cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport const blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport const geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport const purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport const magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport const grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport const gray = grey;\nexport const presetPalettes = {\n red,\n volcano,\n orange,\n gold,\n yellow,\n lime,\n green,\n cyan,\n blue,\n geekblue,\n purple,\n magenta,\n grey\n};\nexport const redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport const volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport const orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport const goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport const yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport const limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport const greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport const cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport const blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport const geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport const purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport const magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport const greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport const presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","export {};","export { default as generate } from \"./generate\";\nexport * from \"./presets\";\nexport * from \"./types\";","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nconst APPEND_ORDER = 'data-rc-order';\nconst APPEND_PRIORITY = 'data-rc-priority';\nconst MARK_KEY = `rc-util-key`;\nconst containerCache = new Map();\nfunction getMark({\n mark\n} = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(node => node.tagName === 'STYLE');\n}\nexport function injectCSS(css, option = {}) {\n if (!canUseDom()) {\n return null;\n }\n const {\n csp,\n prepend,\n priority = 0\n } = option;\n const mergedOrder = getOrder(prepend);\n const isPrependQueue = mergedOrder === 'prependQueue';\n const styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, `${priority}`);\n }\n if (csp?.nonce) {\n styleNode.nonce = csp?.nonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(option);\n const {\n firstChild\n } = container;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n const existStyle = (option.styles || findStyles(container)).filter(node => {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n const nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key, option = {}) {\n let {\n styles\n } = option;\n styles ||= findStyles(getContainer(option));\n return styles.find(node => node.getAttribute(getMark(option)) === key);\n}\nexport function removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n if (existNode) {\n const container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n const cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n const placeholderStyle = injectCSS('', option);\n const {\n parentNode\n } = placeholderStyle;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key, originOption = {}) {\n const container = getContainer(originOption);\n const styles = findStyles(container);\n const option = {\n ...originOption,\n styles\n };\n\n // Sync real parent\n syncRealContainer(container, option);\n const existNode = findExistNode(key, option);\n if (existNode) {\n if (option.csp?.nonce && existNode.nonce !== option.csp?.nonce) {\n existNode.nonce = option.csp?.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n return ele?.getRootNode?.();\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nlet warned = {};\nconst preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport const preMessage = fn => {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'warning'), message);\n if (finalMessage) {\n console.error(`Warning: ${finalMessage}`);\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'note'), message);\n if (finalMessage) {\n console.warn(`Note: ${finalMessage}`);\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"@rc-component/util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"@rc-component/util/es/Dom/shadow\";\nimport { warningOnce } from \"@rc-component/util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, (match, g) => g.toUpperCase());\n}\nexport function warning(valid, message) {\n warningOnce(valid, `[@ant-design/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs)\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport const iconStyles = `\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n vertical-align: inherit;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nexport const useInsertStyles = eleRef => {\n const {\n csp,\n prefixCls,\n layer\n } = useContext(IconContext);\n let mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = `@layer ${layer} {\\n${mergedStyleStr}\\n}`;\n }\n useEffect(() => {\n const ele = eleRef.current;\n const shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nconst twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors({\n primaryColor,\n secondaryColor\n}) {\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return {\n ...twoToneColorPalette\n };\n}\nconst IconBase = props => {\n const {\n icon,\n className,\n onClick,\n style,\n primaryColor,\n secondaryColor,\n ...restProps\n } = props;\n const svgRef = React.useRef(null);\n let colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), `icon should be icon definiton, but got ${icon}`);\n if (!isIconDefinition(icon)) {\n return null;\n }\n let target = icon;\n if (target && typeof target.icon === 'function') {\n target = {\n ...target,\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n };\n }\n return generate(target.icon, `svg-${target.name}`, {\n className,\n onClick,\n style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n ...restProps,\n ref: svgRef\n });\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return ReactIcon.setTwoToneColors({\n primaryColor,\n secondaryColor\n });\n}\nexport function getTwoToneColor() {\n const colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nconst Icon = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // affect outter <i>...</i>\n className,\n // affect inner <svg>...</svg>\n icon,\n spin,\n rotate,\n tabIndex,\n onClick,\n // other\n twoToneColor,\n ...restProps\n } = props;\n const {\n prefixCls = 'anticon',\n rootClassName\n } = React.useContext(Context);\n const classString = clsx(rootClassName, prefixCls, {\n [`${prefixCls}-${icon.name}`]: !!icon.name,\n [`${prefixCls}-spin`]: !!spin || icon.name === 'loading'\n }, className);\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n const svgStyle = rotate ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`\n } : undefined;\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nif (process.env.NODE_ENV !== 'production') {\n Icon.displayName = 'AntdIcon';\n}\nexport default Icon;","// This icon file is generated automatically.\nvar LoginOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 01520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 01270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 010 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z\" } }] }, \"name\": \"login\", \"theme\": \"outlined\" };\nexport default LoginOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoginOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoginOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst LoginOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LoginOutlinedSvg\n}));\n\n/**![login](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik01MjEuNyA4MmMtMTUyLjUtLjQtMjg2LjcgNzguNS0zNjMuNCAxOTcuNy0zLjQgNS4zLjQgMTIuMyA2LjcgMTIuM2g3MC4zYzQuOCAwIDkuMy0yLjEgMTIuMy01LjggNy04LjUgMTQuNS0xNi43IDIyLjQtMjQuNSAzMi42LTMyLjUgNzAuNS01OC4xIDExMi43LTc1LjkgNDMuNi0xOC40IDkwLTI3LjggMTM3LjktMjcuOCA0Ny45IDAgOTQuMyA5LjMgMTM3LjkgMjcuOCA0Mi4yIDE3LjggODAuMSA0My40IDExMi43IDc1LjkgMzIuNiAzMi41IDU4LjEgNzAuNCA3NiAxMTIuNUM4NjUuNyA0MTcuOCA4NzUgNDY0LjEgODc1IDUxMmMwIDQ3LjktOS40IDk0LjItMjcuOCAxMzcuOC0xNy44IDQyLjEtNDMuNCA4MC03NiAxMTIuNXMtNzAuNSA1OC4xLTExMi43IDc1LjlBMzUyLjggMzUyLjggMCAwMTUyMC42IDg2NmMtNDcuOSAwLTk0LjMtOS40LTEzNy45LTI3LjhBMzUzLjg0IDM1My44NCAwIDAxMjcwIDc2Mi4zYy03LjktNy45LTE1LjMtMTYuMS0yMi40LTI0LjUtMy0zLjctNy42LTUuOC0xMi4zLTUuOEgxNjVjLTYuMyAwLTEwLjIgNy02LjcgMTIuM0MyMzQuOSA4NjMuMiAzNjguNSA5NDIgNTIwLjYgOTQyYzIzNi4yIDAgNDI4LTE5MC4xIDQzMC40LTQyNS42Qzk1My40IDI3Ny4xIDc2MS4zIDgyLjYgNTIxLjcgODJ6TTM5NS4wMiA2MjR2LTc2aC0zMTRjLTQuNCAwLTgtMy42LTgtOHYtNTZjMC00LjQgMy42LTggOC04aDMxNHYtNzZjMC02LjcgNy44LTEwLjUgMTMtNi4zbDE0MS45IDExMmE4IDggMCAwMTAgMTIuNmwtMTQxLjkgMTEyYy01LjIgNC4xLTEzIC40LTEzLTYuM3oiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(LoginOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LoginOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar LogoutOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z\" } }] }, \"name\": \"logout\", \"theme\": \"outlined\" };\nexport default LogoutOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LogoutOutlinedSvg from \"@ant-design/icons-svg/es/asn/LogoutOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst LogoutOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LogoutOutlinedSvg\n}));\n\n/**![logout](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2OCA3MzJoLTcwLjNjLTQuOCAwLTkuMyAyLjEtMTIuMyA1LjgtNyA4LjUtMTQuNSAxNi43LTIyLjQgMjQuNWEzNTMuODQgMzUzLjg0IDAgMDEtMTEyLjcgNzUuOUEzNTIuOCAzNTIuOCAwIDAxNTEyLjQgODY2Yy00Ny45IDAtOTQuMy05LjQtMTM3LjktMjcuOGEzNTMuODQgMzUzLjg0IDAgMDEtMTEyLjctNzUuOSAzNTMuMjggMzUzLjI4IDAgMDEtNzYtMTEyLjVDMTY3LjMgNjA2LjIgMTU4IDU1OS45IDE1OCA1MTJzOS40LTk0LjIgMjcuOC0xMzcuOGMxNy44LTQyLjEgNDMuNC04MCA3Ni0xMTIuNXM3MC41LTU4LjEgMTEyLjctNzUuOWM0My42LTE4LjQgOTAtMjcuOCAxMzcuOS0yNy44IDQ3LjkgMCA5NC4zIDkuMyAxMzcuOSAyNy44IDQyLjIgMTcuOCA4MC4xIDQzLjQgMTEyLjcgNzUuOSA3LjkgNy45IDE1LjMgMTYuMSAyMi40IDI0LjUgMyAzLjcgNy42IDUuOCAxMi4zIDUuOEg4NjhjNi4zIDAgMTAuMi03IDYuNy0xMi4zQzc5OCAxNjAuNSA2NjMuOCA4MS42IDUxMS4zIDgyIDI3MS43IDgyLjYgNzkuNiAyNzcuMSA4MiA1MTYuNCA4NC40IDc1MS45IDI3Ni4yIDk0MiA1MTIuNCA5NDJjMTUyLjEgMCAyODUuNy03OC44IDM2Mi4zLTE5Ny43IDMuNC01LjMtLjQtMTIuMy02LjctMTIuM3ptODguOS0yMjYuM0w4MTUgMzkzLjdjLTUuMy00LjItMTMtLjQtMTMgNi4zdjc2SDQ4OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMTR2NzZjMCA2LjcgNy44IDEwLjUgMTMgNi4zbDE0MS45LTExMmE4IDggMCAwMDAtMTIuNnoiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(LogoutOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LogoutOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MenuFoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z\" } }] }, \"name\": \"menu-fold\", \"theme\": \"outlined\" };\nexport default MenuFoldOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MenuFoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuFoldOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst MenuFoldOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MenuFoldOutlinedSvg\n}));\n\n/**![menu-fold](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTE1LjQgNTE4LjlMMjcxLjcgNjQyYzUuOCA0LjYgMTQuNC41IDE0LjQtNi45VjM4OC45YzAtNy40LTguNS0xMS41LTE0LjQtNi45TDExNS40IDUwNS4xYTguNzQgOC43NCAwIDAwMCAxMy44eiIgLz48L3N2Zz4=) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(MenuFoldOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MenuFoldOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MenuUnfoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z\" } }] }, \"name\": \"menu-unfold\", \"theme\": \"outlined\" };\nexport default MenuUnfoldOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MenuUnfoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuUnfoldOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst MenuUnfoldOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MenuUnfoldOutlinedSvg\n}));\n\n/**![menu-unfold](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTQyLjQgNjQyLjFMMjk4LjcgNTE5YTguODQgOC44NCAwIDAwMC0xMy45TDE0Mi40IDM4MS45Yy01LjgtNC42LTE0LjQtLjUtMTQuNCA2Ljl2MjQ2LjNhOC45IDguOSAwIDAwMTQuNCA3eiIgLz48L3N2Zz4=) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(MenuUnfoldOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MenuUnfoldOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MinusCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"minus-circle\", \"theme\": \"outlined\" };\nexport default MinusCircleOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MinusCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst MinusCircleOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MinusCircleOutlinedSvg\n}));\n\n/**![minus-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTY5NiA0ODBIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHoiIC8+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(MinusCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MinusCircleOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst PlusOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusOutlinedSvg\n}));\n\n/**![plus](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4MiAxNTJoNjBxOCAwIDggOHY3MDRxMCA4LTggOGgtNjBxLTggMC04LThWMTYwcTAtOCA4LTh6IiAvPjxwYXRoIGQ9Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiIgLz48L3N2Zz4=) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(PlusOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PlusOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UserAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"user-add\", \"theme\": \"outlined\" };\nexport default UserAddOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserAddOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserAddOutlinedSvg\n}));\n\n/**![user-add](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTY3OC4zIDY0Mi40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwMC0xMDMuNy02NS44Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjIgNTA1IDc1OS42IDQzMS43IDc1OS42IDM0OWMwLTEzNy0xMTAuOC0yNDgtMjQ3LjUtMjQ4UzI2NC43IDIxMiAyNjQuNyAzNDljMCA4Mi43IDQwLjQgMTU2IDEwMi42IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwMC04MC40IDExOS41QTM3My42IDM3My42IDAgMDAxMzcgODg4LjhhOCA4IDAgMDA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjI4LjIgNDMyLjIgNTk3IDUxMi4yIDU5N2M1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMDA4LjEuM3pNNTEyLjIgNTIxYy00NS44IDAtODguOS0xNy45LTEyMS40LTUwLjRBMTcxLjIgMTcxLjIgMCAwMTM0MC41IDM0OWMwLTQ1LjkgMTcuOS04OS4xIDUwLjMtMTIxLjZTNDY2LjMgMTc3IDUxMi4yIDE3N3M4OC45IDE3LjkgMTIxLjQgNTAuNEExNzEuMiAxNzEuMiAwIDAxNjgzLjkgMzQ5YzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MDMuMSA1NTggNTIxIDUxMi4yIDUyMXpNODgwIDc1OWgtODR2LTg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY4NGgtODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODR2ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODRoODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserAddOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserAddOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n}));\n\n/**![user](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC41IDc2My42YTM3NCAzNzQgMCAwMC04MC42LTExOS41IDM3NS42MyAzNzUuNjMgMCAwMC0xMTkuNS04MC42Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjUgNTE4IDc2MCA0NDQuNyA3NjAgMzYyYzAtMTM3LTExMS0yNDgtMjQ4LTI0OFMyNjQgMjI1IDI2NCAzNjJjMCA4Mi43IDQwLjUgMTU2IDEwMi44IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC44IDE4LjktODUgNDYtMTE5LjUgODAuNmEzNzUuNjMgMzc1LjYzIDAgMDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAwMTM2IDkwMS44YTggOCAwIDAwOCA4LjJoNjBjNC40IDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzMtMTQ5LjUgODcuOC0yMDQuMyA1Ni43LTU2LjcgMTMyLTg3LjkgMjEyLjItODcuOXMxNTUuNSAzMS4yIDIxMi4yIDg3LjlDNzc5IDc1Mi43IDgxMCA4MjUgODEyIDkwMi4yYy4xIDQuNCAzLjYgNy44IDggNy44aDYwYTggOCAwIDAwOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UsergroupAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\" } }] }, \"name\": \"usergroup-add\", \"theme\": \"outlined\" };\nexport default UsergroupAddOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UsergroupAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UsergroupAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UsergroupAddOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UsergroupAddOutlinedSvg\n}));\n\n/**![usergroup-add](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5MiA3NzJoLTgwdi04MGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2ODBoLTgwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDgwdjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTgwaDgwYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA0OTguNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC44LTEuNy0yMDMuMiA4OS4yLTIwMy4yIDIwMCAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwMDggOC4yaDU2LjFjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41IDI5LjQtMjkuNCA2NS40LTQ5LjggMTA0LjctNTkuNyAzLjgtMS4xIDYuNC00LjggNS45LTguOHpNODI0IDQ3MmMwLTEwOS40LTg3LjktMTk4LjMtMTk2LjktMjAwQzUxNi4zIDI3MC4zIDQyNCAzNjEuMiA0MjQgNDcyYzAgNjIuOCAyOSAxMTguOCA3NC4yIDE1NS41YTMwMC45NSAzMDAuOTUgMCAwMC04Ni40IDYwLjRDMzU3IDc0Mi42IDMyNiA4MTQuOCAzMjQgODkxLjhhOCA4IDAgMDA4IDguMmg1NmM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjVDNTA1LjggNjk1LjcgNTYzIDY3MiA2MjQgNjcyYzExMC40IDAgMjAwLTg5LjUgMjAwLTIwMHptLTEwOS41IDkwLjVDNjkwLjMgNTg2LjcgNjU4LjIgNjAwIDYyNCA2MDBzLTY2LjMtMTMuMy05MC41LTM3LjVhMTI3LjI2IDEyNy4yNiAwIDAxLTM3LjUtOTEuOGMuMy0zMi44IDEzLjQtNjQuNSAzNi4zLTg4IDI0LTI0LjYgNTYuMS0zOC4zIDkwLjQtMzguNyAzMy45LS4zIDY2LjggMTIuOSA5MSAzNi42IDI0LjggMjQuMyAzOC40IDU2LjggMzguNCA5MS40LS4xIDM0LjItMTMuNCA2Ni4zLTM3LjYgOTAuNXoiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UsergroupAddOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UsergroupAddOutlined';\n}\nexport default RefIcon;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nexport { default as AccountBookFilled } from \"./AccountBookFilled\";\nexport { default as AccountBookOutlined } from \"./AccountBookOutlined\";\nexport { default as AccountBookTwoTone } from \"./AccountBookTwoTone\";\nexport { default as AimOutlined } from \"./AimOutlined\";\nexport { default as AlertFilled } from \"./AlertFilled\";\nexport { default as AlertOutlined } from \"./AlertOutlined\";\nexport { default as AlertTwoTone } from \"./AlertTwoTone\";\nexport { default as AlibabaOutlined } from \"./AlibabaOutlined\";\nexport { default as AlignCenterOutlined } from \"./AlignCenterOutlined\";\nexport { default as AlignLeftOutlined } from \"./AlignLeftOutlined\";\nexport { default as AlignRightOutlined } from \"./AlignRightOutlined\";\nexport { default as AlipayCircleFilled } from \"./AlipayCircleFilled\";\nexport { default as AlipayCircleOutlined } from \"./AlipayCircleOutlined\";\nexport { default as AlipayOutlined } from \"./AlipayOutlined\";\nexport { default as AlipaySquareFilled } from \"./AlipaySquareFilled\";\nexport { default as AliwangwangFilled } from \"./AliwangwangFilled\";\nexport { default as AliwangwangOutlined } from \"./AliwangwangOutlined\";\nexport { default as AliyunOutlined } from \"./AliyunOutlined\";\nexport { default as AmazonCircleFilled } from \"./AmazonCircleFilled\";\nexport { default as AmazonOutlined } from \"./AmazonOutlined\";\nexport { default as AmazonSquareFilled } from \"./AmazonSquareFilled\";\nexport { default as AndroidFilled } from \"./AndroidFilled\";\nexport { default as AndroidOutlined } from \"./AndroidOutlined\";\nexport { default as AntCloudOutlined } from \"./AntCloudOutlined\";\nexport { default as AntDesignOutlined } from \"./AntDesignOutlined\";\nexport { default as ApartmentOutlined } from \"./ApartmentOutlined\";\nexport { default as ApiFilled } from \"./ApiFilled\";\nexport { default as ApiOutlined } from \"./ApiOutlined\";\nexport { default as ApiTwoTone } from \"./ApiTwoTone\";\nexport { default as AppleFilled } from \"./AppleFilled\";\nexport { default as AppleOutlined } from \"./AppleOutlined\";\nexport { default as AppstoreAddOutlined } from \"./AppstoreAddOutlined\";\nexport { default as AppstoreFilled } from \"./AppstoreFilled\";\nexport { default as AppstoreOutlined } from \"./AppstoreOutlined\";\nexport { default as AppstoreTwoTone } from \"./AppstoreTwoTone\";\nexport { default as AreaChartOutlined } from \"./AreaChartOutlined\";\nexport { default as ArrowDownOutlined } from \"./ArrowDownOutlined\";\nexport { default as ArrowLeftOutlined } from \"./ArrowLeftOutlined\";\nexport { default as ArrowRightOutlined } from \"./ArrowRightOutlined\";\nexport { default as ArrowUpOutlined } from \"./ArrowUpOutlined\";\nexport { default as ArrowsAltOutlined } from \"./ArrowsAltOutlined\";\nexport { default as AudioFilled } from \"./AudioFilled\";\nexport { default as AudioMutedOutlined } from \"./AudioMutedOutlined\";\nexport { default as AudioOutlined } from \"./AudioOutlined\";\nexport { default as AudioTwoTone } from \"./AudioTwoTone\";\nexport { default as AuditOutlined } from \"./AuditOutlined\";\nexport { default as BackwardFilled } from \"./BackwardFilled\";\nexport { default as BackwardOutlined } from \"./BackwardOutlined\";\nexport { default as BaiduOutlined } from \"./BaiduOutlined\";\nexport { default as BankFilled } from \"./BankFilled\";\nexport { default as BankOutlined } from \"./BankOutlined\";\nexport { default as BankTwoTone } from \"./BankTwoTone\";\nexport { default as BarChartOutlined } from \"./BarChartOutlined\";\nexport { default as BarcodeOutlined } from \"./BarcodeOutlined\";\nexport { default as BarsOutlined } from \"./BarsOutlined\";\nexport { default as BehanceCircleFilled } from \"./BehanceCircleFilled\";\nexport { default as BehanceOutlined } from \"./BehanceOutlined\";\nexport { default as BehanceSquareFilled } from \"./BehanceSquareFilled\";\nexport { default as BehanceSquareOutlined } from \"./BehanceSquareOutlined\";\nexport { default as BellFilled } from \"./BellFilled\";\nexport { default as BellOutlined } from \"./BellOutlined\";\nexport { default as BellTwoTone } from \"./BellTwoTone\";\nexport { default as BgColorsOutlined } from \"./BgColorsOutlined\";\nexport { default as BilibiliFilled } from \"./BilibiliFilled\";\nexport { default as BilibiliOutlined } from \"./BilibiliOutlined\";\nexport { default as BlockOutlined } from \"./BlockOutlined\";\nexport { default as BoldOutlined } from \"./BoldOutlined\";\nexport { default as BookFilled } from \"./BookFilled\";\nexport { default as BookOutlined } from \"./BookOutlined\";\nexport { default as BookTwoTone } from \"./BookTwoTone\";\nexport { default as BorderBottomOutlined } from \"./BorderBottomOutlined\";\nexport { default as BorderHorizontalOutlined } from \"./BorderHorizontalOutlined\";\nexport { default as BorderInnerOutlined } from \"./BorderInnerOutlined\";\nexport { default as BorderLeftOutlined } from \"./BorderLeftOutlined\";\nexport { default as BorderOuterOutlined } from \"./BorderOuterOutlined\";\nexport { default as BorderOutlined } from \"./BorderOutlined\";\nexport { default as BorderRightOutlined } from \"./BorderRightOutlined\";\nexport { default as BorderTopOutlined } from \"./BorderTopOutlined\";\nexport { default as BorderVerticleOutlined } from \"./BorderVerticleOutlined\";\nexport { default as BorderlessTableOutlined } from \"./BorderlessTableOutlined\";\nexport { default as BoxPlotFilled } from \"./BoxPlotFilled\";\nexport { default as BoxPlotOutlined } from \"./BoxPlotOutlined\";\nexport { default as BoxPlotTwoTone } from \"./BoxPlotTwoTone\";\nexport { default as BranchesOutlined } from \"./BranchesOutlined\";\nexport { default as BugFilled } from \"./BugFilled\";\nexport { default as BugOutlined } from \"./BugOutlined\";\nexport { default as BugTwoTone } from \"./BugTwoTone\";\nexport { default as BuildFilled } from \"./BuildFilled\";\nexport { default as BuildOutlined } from \"./BuildOutlined\";\nexport { default as BuildTwoTone } from \"./BuildTwoTone\";\nexport { default as BulbFilled } from \"./BulbFilled\";\nexport { default as BulbOutlined } from \"./BulbOutlined\";\nexport { default as BulbTwoTone } from \"./BulbTwoTone\";\nexport { default as CalculatorFilled } from \"./CalculatorFilled\";\nexport { default as CalculatorOutlined } from \"./CalculatorOutlined\";\nexport { default as CalculatorTwoTone } from \"./CalculatorTwoTone\";\nexport { default as CalendarFilled } from \"./CalendarFilled\";\nexport { default as CalendarOutlined } from \"./CalendarOutlined\";\nexport { default as CalendarTwoTone } from \"./CalendarTwoTone\";\nexport { default as CameraFilled } from \"./CameraFilled\";\nexport { default as CameraOutlined } from \"./CameraOutlined\";\nexport { default as CameraTwoTone } from \"./CameraTwoTone\";\nexport { default as CarFilled } from \"./CarFilled\";\nexport { default as CarOutlined } from \"./CarOutlined\";\nexport { default as CarTwoTone } from \"./CarTwoTone\";\nexport { default as CaretDownFilled } from \"./CaretDownFilled\";\nexport { default as CaretDownOutlined } from \"./CaretDownOutlined\";\nexport { default as CaretLeftFilled } from \"./CaretLeftFilled\";\nexport { default as CaretLeftOutlined } from \"./CaretLeftOutlined\";\nexport { default as CaretRightFilled } from \"./CaretRightFilled\";\nexport { default as CaretRightOutlined } from \"./CaretRightOutlined\";\nexport { default as CaretUpFilled } from \"./CaretUpFilled\";\nexport { default as CaretUpOutlined } from \"./CaretUpOutlined\";\nexport { default as CarryOutFilled } from \"./CarryOutFilled\";\nexport { default as CarryOutOutlined } from \"./CarryOutOutlined\";\nexport { default as CarryOutTwoTone } from \"./CarryOutTwoTone\";\nexport { default as CheckCircleFilled } from \"./CheckCircleFilled\";\nexport { default as CheckCircleOutlined } from \"./CheckCircleOutlined\";\nexport { default as CheckCircleTwoTone } from \"./CheckCircleTwoTone\";\nexport { default as CheckOutlined } from \"./CheckOutlined\";\nexport { default as CheckSquareFilled } from \"./CheckSquareFilled\";\nexport { default as CheckSquareOutlined } from \"./CheckSquareOutlined\";\nexport { default as CheckSquareTwoTone } from \"./CheckSquareTwoTone\";\nexport { default as ChromeFilled } from \"./ChromeFilled\";\nexport { default as ChromeOutlined } from \"./ChromeOutlined\";\nexport { default as CiCircleFilled } from \"./CiCircleFilled\";\nexport { default as CiCircleOutlined } from \"./CiCircleOutlined\";\nexport { default as CiCircleTwoTone } from \"./CiCircleTwoTone\";\nexport { default as CiOutlined } from \"./CiOutlined\";\nexport { default as CiTwoTone } from \"./CiTwoTone\";\nexport { default as ClearOutlined } from \"./ClearOutlined\";\nexport { default as ClockCircleFilled } from \"./ClockCircleFilled\";\nexport { default as ClockCircleOutlined } from \"./ClockCircleOutlined\";\nexport { default as ClockCircleTwoTone } from \"./ClockCircleTwoTone\";\nexport { default as CloseCircleFilled } from \"./CloseCircleFilled\";\nexport { default as CloseCircleOutlined } from \"./CloseCircleOutlined\";\nexport { default as CloseCircleTwoTone } from \"./CloseCircleTwoTone\";\nexport { default as CloseOutlined } from \"./CloseOutlined\";\nexport { default as CloseSquareFilled } from \"./CloseSquareFilled\";\nexport { default as CloseSquareOutlined } from \"./CloseSquareOutlined\";\nexport { default as CloseSquareTwoTone } from \"./CloseSquareTwoTone\";\nexport { default as CloudDownloadOutlined } from \"./CloudDownloadOutlined\";\nexport { default as CloudFilled } from \"./CloudFilled\";\nexport { default as CloudOutlined } from \"./CloudOutlined\";\nexport { default as CloudServerOutlined } from \"./CloudServerOutlined\";\nexport { default as CloudSyncOutlined } from \"./CloudSyncOutlined\";\nexport { default as CloudTwoTone } from \"./CloudTwoTone\";\nexport { default as CloudUploadOutlined } from \"./CloudUploadOutlined\";\nexport { default as ClusterOutlined } from \"./ClusterOutlined\";\nexport { default as CodeFilled } from \"./CodeFilled\";\nexport { default as CodeOutlined } from \"./CodeOutlined\";\nexport { default as CodeSandboxCircleFilled } from \"./CodeSandboxCircleFilled\";\nexport { default as CodeSandboxOutlined } from \"./CodeSandboxOutlined\";\nexport { default as CodeSandboxSquareFilled } from \"./CodeSandboxSquareFilled\";\nexport { default as CodeTwoTone } from \"./CodeTwoTone\";\nexport { default as CodepenCircleFilled } from \"./CodepenCircleFilled\";\nexport { default as CodepenCircleOutlined } from \"./CodepenCircleOutlined\";\nexport { default as CodepenOutlined } from \"./CodepenOutlined\";\nexport { default as CodepenSquareFilled } from \"./CodepenSquareFilled\";\nexport { default as CoffeeOutlined } from \"./CoffeeOutlined\";\nexport { default as ColumnHeightOutlined } from \"./ColumnHeightOutlined\";\nexport { default as ColumnWidthOutlined } from \"./ColumnWidthOutlined\";\nexport { default as CommentOutlined } from \"./CommentOutlined\";\nexport { default as CompassFilled } from \"./CompassFilled\";\nexport { default as CompassOutlined } from \"./CompassOutlined\";\nexport { default as CompassTwoTone } from \"./CompassTwoTone\";\nexport { default as CompressOutlined } from \"./CompressOutlined\";\nexport { default as ConsoleSqlOutlined } from \"./ConsoleSqlOutlined\";\nexport { default as ContactsFilled } from \"./ContactsFilled\";\nexport { default as ContactsOutlined } from \"./ContactsOutlined\";\nexport { default as ContactsTwoTone } from \"./ContactsTwoTone\";\nexport { default as ContainerFilled } from \"./ContainerFilled\";\nexport { default as ContainerOutlined } from \"./ContainerOutlined\";\nexport { default as ContainerTwoTone } from \"./ContainerTwoTone\";\nexport { default as ControlFilled } from \"./ControlFilled\";\nexport { default as ControlOutlined } from \"./ControlOutlined\";\nexport { default as ControlTwoTone } from \"./ControlTwoTone\";\nexport { default as CopyFilled } from \"./CopyFilled\";\nexport { default as CopyOutlined } from \"./CopyOutlined\";\nexport { default as CopyTwoTone } from \"./CopyTwoTone\";\nexport { default as CopyrightCircleFilled } from \"./CopyrightCircleFilled\";\nexport { default as CopyrightCircleOutlined } from \"./CopyrightCircleOutlined\";\nexport { default as CopyrightCircleTwoTone } from \"./CopyrightCircleTwoTone\";\nexport { default as CopyrightOutlined } from \"./CopyrightOutlined\";\nexport { default as CopyrightTwoTone } from \"./CopyrightTwoTone\";\nexport { default as CreditCardFilled } from \"./CreditCardFilled\";\nexport { default as CreditCardOutlined } from \"./CreditCardOutlined\";\nexport { default as CreditCardTwoTone } from \"./CreditCardTwoTone\";\nexport { default as CrownFilled } from \"./CrownFilled\";\nexport { default as CrownOutlined } from \"./CrownOutlined\";\nexport { default as CrownTwoTone } from \"./CrownTwoTone\";\nexport { default as CustomerServiceFilled } from \"./CustomerServiceFilled\";\nexport { default as CustomerServiceOutlined } from \"./CustomerServiceOutlined\";\nexport { default as CustomerServiceTwoTone } from \"./CustomerServiceTwoTone\";\nexport { default as DashOutlined } from \"./DashOutlined\";\nexport { default as DashboardFilled } from \"./DashboardFilled\";\nexport { default as DashboardOutlined } from \"./DashboardOutlined\";\nexport { default as DashboardTwoTone } from \"./DashboardTwoTone\";\nexport { default as DatabaseFilled } from \"./DatabaseFilled\";\nexport { default as DatabaseOutlined } from \"./DatabaseOutlined\";\nexport { default as DatabaseTwoTone } from \"./DatabaseTwoTone\";\nexport { default as DeleteColumnOutlined } from \"./DeleteColumnOutlined\";\nexport { default as DeleteFilled } from \"./DeleteFilled\";\nexport { default as DeleteOutlined } from \"./DeleteOutlined\";\nexport { default as DeleteRowOutlined } from \"./DeleteRowOutlined\";\nexport { default as DeleteTwoTone } from \"./DeleteTwoTone\";\nexport { default as DeliveredProcedureOutlined } from \"./DeliveredProcedureOutlined\";\nexport { default as DeploymentUnitOutlined } from \"./DeploymentUnitOutlined\";\nexport { default as DesktopOutlined } from \"./DesktopOutlined\";\nexport { default as DiffFilled } from \"./DiffFilled\";\nexport { default as DiffOutlined } from \"./DiffOutlined\";\nexport { default as DiffTwoTone } from \"./DiffTwoTone\";\nexport { default as DingdingOutlined } from \"./DingdingOutlined\";\nexport { default as DingtalkCircleFilled } from \"./DingtalkCircleFilled\";\nexport { default as DingtalkOutlined } from \"./DingtalkOutlined\";\nexport { default as DingtalkSquareFilled } from \"./DingtalkSquareFilled\";\nexport { default as DisconnectOutlined } from \"./DisconnectOutlined\";\nexport { default as DiscordFilled } from \"./DiscordFilled\";\nexport { default as DiscordOutlined } from \"./DiscordOutlined\";\nexport { default as DislikeFilled } from \"./DislikeFilled\";\nexport { default as DislikeOutlined } from \"./DislikeOutlined\";\nexport { default as DislikeTwoTone } from \"./DislikeTwoTone\";\nexport { default as DockerOutlined } from \"./DockerOutlined\";\nexport { default as DollarCircleFilled } from \"./DollarCircleFilled\";\nexport { default as DollarCircleOutlined } from \"./DollarCircleOutlined\";\nexport { default as DollarCircleTwoTone } from \"./DollarCircleTwoTone\";\nexport { default as DollarOutlined } from \"./DollarOutlined\";\nexport { default as DollarTwoTone } from \"./DollarTwoTone\";\nexport { default as DotChartOutlined } from \"./DotChartOutlined\";\nexport { default as DotNetOutlined } from \"./DotNetOutlined\";\nexport { default as DoubleLeftOutlined } from \"./DoubleLeftOutlined\";\nexport { default as DoubleRightOutlined } from \"./DoubleRightOutlined\";\nexport { default as DownCircleFilled } from \"./DownCircleFilled\";\nexport { default as DownCircleOutlined } from \"./DownCircleOutlined\";\nexport { default as DownCircleTwoTone } from \"./DownCircleTwoTone\";\nexport { default as DownOutlined } from \"./DownOutlined\";\nexport { default as DownSquareFilled } from \"./DownSquareFilled\";\nexport { default as DownSquareOutlined } from \"./DownSquareOutlined\";\nexport { default as DownSquareTwoTone } from \"./DownSquareTwoTone\";\nexport { default as DownloadOutlined } from \"./DownloadOutlined\";\nexport { default as DragOutlined } from \"./DragOutlined\";\nexport { default as DribbbleCircleFilled } from \"./DribbbleCircleFilled\";\nexport { default as DribbbleOutlined } from \"./DribbbleOutlined\";\nexport { default as DribbbleSquareFilled } from \"./DribbbleSquareFilled\";\nexport { default as DribbbleSquareOutlined } from \"./DribbbleSquareOutlined\";\nexport { default as DropboxCircleFilled } from \"./DropboxCircleFilled\";\nexport { default as DropboxOutlined } from \"./DropboxOutlined\";\nexport { default as DropboxSquareFilled } from \"./DropboxSquareFilled\";\nexport { default as EditFilled } from \"./EditFilled\";\nexport { default as EditOutlined } from \"./EditOutlined\";\nexport { default as EditTwoTone } from \"./EditTwoTone\";\nexport { default as EllipsisOutlined } from \"./EllipsisOutlined\";\nexport { default as EnterOutlined } from \"./EnterOutlined\";\nexport { default as EnvironmentFilled } from \"./EnvironmentFilled\";\nexport { default as EnvironmentOutlined } from \"./EnvironmentOutlined\";\nexport { default as EnvironmentTwoTone } from \"./EnvironmentTwoTone\";\nexport { default as EuroCircleFilled } from \"./EuroCircleFilled\";\nexport { default as EuroCircleOutlined } from \"./EuroCircleOutlined\";\nexport { default as EuroCircleTwoTone } from \"./EuroCircleTwoTone\";\nexport { default as EuroOutlined } from \"./EuroOutlined\";\nexport { default as EuroTwoTone } from \"./EuroTwoTone\";\nexport { default as ExceptionOutlined } from \"./ExceptionOutlined\";\nexport { default as ExclamationCircleFilled } from \"./ExclamationCircleFilled\";\nexport { default as ExclamationCircleOutlined } from \"./ExclamationCircleOutlined\";\nexport { default as ExclamationCircleTwoTone } from \"./ExclamationCircleTwoTone\";\nexport { default as ExclamationOutlined } from \"./ExclamationOutlined\";\nexport { default as ExpandAltOutlined } from \"./ExpandAltOutlined\";\nexport { default as ExpandOutlined } from \"./ExpandOutlined\";\nexport { default as ExperimentFilled } from \"./ExperimentFilled\";\nexport { default as ExperimentOutlined } from \"./ExperimentOutlined\";\nexport { default as ExperimentTwoTone } from \"./ExperimentTwoTone\";\nexport { default as ExportOutlined } from \"./ExportOutlined\";\nexport { default as EyeFilled } from \"./EyeFilled\";\nexport { default as EyeInvisibleFilled } from \"./EyeInvisibleFilled\";\nexport { default as EyeInvisibleOutlined } from \"./EyeInvisibleOutlined\";\nexport { default as EyeInvisibleTwoTone } from \"./EyeInvisibleTwoTone\";\nexport { default as EyeOutlined } from \"./EyeOutlined\";\nexport { default as EyeTwoTone } from \"./EyeTwoTone\";\nexport { default as FacebookFilled } from \"./FacebookFilled\";\nexport { default as FacebookOutlined } from \"./FacebookOutlined\";\nexport { default as FallOutlined } from \"./FallOutlined\";\nexport { default as FastBackwardFilled } from \"./FastBackwardFilled\";\nexport { default as FastBackwardOutlined } from \"./FastBackwardOutlined\";\nexport { default as FastForwardFilled } from \"./FastForwardFilled\";\nexport { default as FastForwardOutlined } from \"./FastForwardOutlined\";\nexport { default as FieldBinaryOutlined } from \"./FieldBinaryOutlined\";\nexport { default as FieldNumberOutlined } from \"./FieldNumberOutlined\";\nexport { default as FieldStringOutlined } from \"./FieldStringOutlined\";\nexport { default as FieldTimeOutlined } from \"./FieldTimeOutlined\";\nexport { default as FileAddFilled } from \"./FileAddFilled\";\nexport { default as FileAddOutlined } from \"./FileAddOutlined\";\nexport { default as FileAddTwoTone } from \"./FileAddTwoTone\";\nexport { default as FileDoneOutlined } from \"./FileDoneOutlined\";\nexport { default as FileExcelFilled } from \"./FileExcelFilled\";\nexport { default as FileExcelOutlined } from \"./FileExcelOutlined\";\nexport { default as FileExcelTwoTone } from \"./FileExcelTwoTone\";\nexport { default as FileExclamationFilled } from \"./FileExclamationFilled\";\nexport { default as FileExclamationOutlined } from \"./FileExclamationOutlined\";\nexport { default as FileExclamationTwoTone } from \"./FileExclamationTwoTone\";\nexport { default as FileFilled } from \"./FileFilled\";\nexport { default as FileGifOutlined } from \"./FileGifOutlined\";\nexport { default as FileImageFilled } from \"./FileImageFilled\";\nexport { default as FileImageOutlined } from \"./FileImageOutlined\";\nexport { default as FileImageTwoTone } from \"./FileImageTwoTone\";\nexport { default as FileJpgOutlined } from \"./FileJpgOutlined\";\nexport { default as FileMarkdownFilled } from \"./FileMarkdownFilled\";\nexport { default as FileMarkdownOutlined } from \"./FileMarkdownOutlined\";\nexport { default as FileMarkdownTwoTone } from \"./FileMarkdownTwoTone\";\nexport { default as FileOutlined } from \"./FileOutlined\";\nexport { default as FilePdfFilled } from \"./FilePdfFilled\";\nexport { default as FilePdfOutlined } from \"./FilePdfOutlined\";\nexport { default as FilePdfTwoTone } from \"./FilePdfTwoTone\";\nexport { default as FilePptFilled } from \"./FilePptFilled\";\nexport { default as FilePptOutlined } from \"./FilePptOutlined\";\nexport { default as FilePptTwoTone } from \"./FilePptTwoTone\";\nexport { default as FileProtectOutlined } from \"./FileProtectOutlined\";\nexport { default as FileSearchOutlined } from \"./FileSearchOutlined\";\nexport { default as FileSyncOutlined } from \"./FileSyncOutlined\";\nexport { default as FileTextFilled } from \"./FileTextFilled\";\nexport { default as FileTextOutlined } from \"./FileTextOutlined\";\nexport { default as FileTextTwoTone } from \"./FileTextTwoTone\";\nexport { default as FileTwoTone } from \"./FileTwoTone\";\nexport { default as FileUnknownFilled } from \"./FileUnknownFilled\";\nexport { default as FileUnknownOutlined } from \"./FileUnknownOutlined\";\nexport { default as FileUnknownTwoTone } from \"./FileUnknownTwoTone\";\nexport { default as FileWordFilled } from \"./FileWordFilled\";\nexport { default as FileWordOutlined } from \"./FileWordOutlined\";\nexport { default as FileWordTwoTone } from \"./FileWordTwoTone\";\nexport { default as FileZipFilled } from \"./FileZipFilled\";\nexport { default as FileZipOutlined } from \"./FileZipOutlined\";\nexport { default as FileZipTwoTone } from \"./FileZipTwoTone\";\nexport { default as FilterFilled } from \"./FilterFilled\";\nexport { default as FilterOutlined } from \"./FilterOutlined\";\nexport { default as FilterTwoTone } from \"./FilterTwoTone\";\nexport { default as FireFilled } from \"./FireFilled\";\nexport { default as FireOutlined } from \"./FireOutlined\";\nexport { default as FireTwoTone } from \"./FireTwoTone\";\nexport { default as FlagFilled } from \"./FlagFilled\";\nexport { default as FlagOutlined } from \"./FlagOutlined\";\nexport { default as FlagTwoTone } from \"./FlagTwoTone\";\nexport { default as FolderAddFilled } from \"./FolderAddFilled\";\nexport { default as FolderAddOutlined } from \"./FolderAddOutlined\";\nexport { default as FolderAddTwoTone } from \"./FolderAddTwoTone\";\nexport { default as FolderFilled } from \"./FolderFilled\";\nexport { default as FolderOpenFilled } from \"./FolderOpenFilled\";\nexport { default as FolderOpenOutlined } from \"./FolderOpenOutlined\";\nexport { default as FolderOpenTwoTone } from \"./FolderOpenTwoTone\";\nexport { default as FolderOutlined } from \"./FolderOutlined\";\nexport { default as FolderTwoTone } from \"./FolderTwoTone\";\nexport { default as FolderViewOutlined } from \"./FolderViewOutlined\";\nexport { default as FontColorsOutlined } from \"./FontColorsOutlined\";\nexport { default as FontSizeOutlined } from \"./FontSizeOutlined\";\nexport { default as ForkOutlined } from \"./ForkOutlined\";\nexport { default as FormOutlined } from \"./FormOutlined\";\nexport { default as FormatPainterFilled } from \"./FormatPainterFilled\";\nexport { default as FormatPainterOutlined } from \"./FormatPainterOutlined\";\nexport { default as ForwardFilled } from \"./ForwardFilled\";\nexport { default as ForwardOutlined } from \"./ForwardOutlined\";\nexport { default as FrownFilled } from \"./FrownFilled\";\nexport { default as FrownOutlined } from \"./FrownOutlined\";\nexport { default as FrownTwoTone } from \"./FrownTwoTone\";\nexport { default as FullscreenExitOutlined } from \"./FullscreenExitOutlined\";\nexport { default as FullscreenOutlined } from \"./FullscreenOutlined\";\nexport { default as FunctionOutlined } from \"./FunctionOutlined\";\nexport { default as FundFilled } from \"./FundFilled\";\nexport { default as FundOutlined } from \"./FundOutlined\";\nexport { default as FundProjectionScreenOutlined } from \"./FundProjectionScreenOutlined\";\nexport { default as FundTwoTone } from \"./FundTwoTone\";\nexport { default as FundViewOutlined } from \"./FundViewOutlined\";\nexport { default as FunnelPlotFilled } from \"./FunnelPlotFilled\";\nexport { default as FunnelPlotOutlined } from \"./FunnelPlotOutlined\";\nexport { default as FunnelPlotTwoTone } from \"./FunnelPlotTwoTone\";\nexport { default as GatewayOutlined } from \"./GatewayOutlined\";\nexport { default as GifOutlined } from \"./GifOutlined\";\nexport { default as GiftFilled } from \"./GiftFilled\";\nexport { default as GiftOutlined } from \"./GiftOutlined\";\nexport { default as GiftTwoTone } from \"./GiftTwoTone\";\nexport { default as GithubFilled } from \"./GithubFilled\";\nexport { default as GithubOutlined } from \"./GithubOutlined\";\nexport { default as GitlabFilled } from \"./GitlabFilled\";\nexport { default as GitlabOutlined } from \"./GitlabOutlined\";\nexport { default as GlobalOutlined } from \"./GlobalOutlined\";\nexport { default as GoldFilled } from \"./GoldFilled\";\nexport { default as GoldOutlined } from \"./GoldOutlined\";\nexport { default as GoldTwoTone } from \"./GoldTwoTone\";\nexport { default as GoldenFilled } from \"./GoldenFilled\";\nexport { default as GoogleCircleFilled } from \"./GoogleCircleFilled\";\nexport { default as GoogleOutlined } from \"./GoogleOutlined\";\nexport { default as GooglePlusCircleFilled } from \"./GooglePlusCircleFilled\";\nexport { default as GooglePlusOutlined } from \"./GooglePlusOutlined\";\nexport { default as GooglePlusSquareFilled } from \"./GooglePlusSquareFilled\";\nexport { default as GoogleSquareFilled } from \"./GoogleSquareFilled\";\nexport { default as GroupOutlined } from \"./GroupOutlined\";\nexport { default as HarmonyOSOutlined } from \"./HarmonyOSOutlined\";\nexport { default as HddFilled } from \"./HddFilled\";\nexport { default as HddOutlined } from \"./HddOutlined\";\nexport { default as HddTwoTone } from \"./HddTwoTone\";\nexport { default as HeartFilled } from \"./HeartFilled\";\nexport { default as HeartOutlined } from \"./HeartOutlined\";\nexport { default as HeartTwoTone } from \"./HeartTwoTone\";\nexport { default as HeatMapOutlined } from \"./HeatMapOutlined\";\nexport { default as HighlightFilled } from \"./HighlightFilled\";\nexport { default as HighlightOutlined } from \"./HighlightOutlined\";\nexport { default as HighlightTwoTone } from \"./HighlightTwoTone\";\nexport { default as HistoryOutlined } from \"./HistoryOutlined\";\nexport { default as HolderOutlined } from \"./HolderOutlined\";\nexport { default as HomeFilled } from \"./HomeFilled\";\nexport { default as HomeOutlined } from \"./HomeOutlined\";\nexport { default as HomeTwoTone } from \"./HomeTwoTone\";\nexport { default as HourglassFilled } from \"./HourglassFilled\";\nexport { default as HourglassOutlined } from \"./HourglassOutlined\";\nexport { default as HourglassTwoTone } from \"./HourglassTwoTone\";\nexport { default as Html5Filled } from \"./Html5Filled\";\nexport { default as Html5Outlined } from \"./Html5Outlined\";\nexport { default as Html5TwoTone } from \"./Html5TwoTone\";\nexport { default as IdcardFilled } from \"./IdcardFilled\";\nexport { default as IdcardOutlined } from \"./IdcardOutlined\";\nexport { default as IdcardTwoTone } from \"./IdcardTwoTone\";\nexport { default as IeCircleFilled } from \"./IeCircleFilled\";\nexport { default as IeOutlined } from \"./IeOutlined\";\nexport { default as IeSquareFilled } from \"./IeSquareFilled\";\nexport { default as ImportOutlined } from \"./ImportOutlined\";\nexport { default as InboxOutlined } from \"./InboxOutlined\";\nexport { default as InfoCircleFilled } from \"./InfoCircleFilled\";\nexport { default as InfoCircleOutlined } from \"./InfoCircleOutlined\";\nexport { default as InfoCircleTwoTone } from \"./InfoCircleTwoTone\";\nexport { default as InfoOutlined } from \"./InfoOutlined\";\nexport { default as InsertRowAboveOutlined } from \"./InsertRowAboveOutlined\";\nexport { default as InsertRowBelowOutlined } from \"./InsertRowBelowOutlined\";\nexport { default as InsertRowLeftOutlined } from \"./InsertRowLeftOutlined\";\nexport { default as InsertRowRightOutlined } from \"./InsertRowRightOutlined\";\nexport { default as InstagramFilled } from \"./InstagramFilled\";\nexport { default as InstagramOutlined } from \"./InstagramOutlined\";\nexport { default as InsuranceFilled } from \"./InsuranceFilled\";\nexport { default as InsuranceOutlined } from \"./InsuranceOutlined\";\nexport { default as InsuranceTwoTone } from \"./InsuranceTwoTone\";\nexport { default as InteractionFilled } from \"./InteractionFilled\";\nexport { default as InteractionOutlined } from \"./InteractionOutlined\";\nexport { default as InteractionTwoTone } from \"./InteractionTwoTone\";\nexport { default as IssuesCloseOutlined } from \"./IssuesCloseOutlined\";\nexport { default as ItalicOutlined } from \"./ItalicOutlined\";\nexport { default as JavaOutlined } from \"./JavaOutlined\";\nexport { default as JavaScriptOutlined } from \"./JavaScriptOutlined\";\nexport { default as KeyOutlined } from \"./KeyOutlined\";\nexport { default as KubernetesOutlined } from \"./KubernetesOutlined\";\nexport { default as LaptopOutlined } from \"./LaptopOutlined\";\nexport { default as LayoutFilled } from \"./LayoutFilled\";\nexport { default as LayoutOutlined } from \"./LayoutOutlined\";\nexport { default as LayoutTwoTone } from \"./LayoutTwoTone\";\nexport { default as LeftCircleFilled } from \"./LeftCircleFilled\";\nexport { default as LeftCircleOutlined } from \"./LeftCircleOutlined\";\nexport { default as LeftCircleTwoTone } from \"./LeftCircleTwoTone\";\nexport { default as LeftOutlined } from \"./LeftOutlined\";\nexport { default as LeftSquareFilled } from \"./LeftSquareFilled\";\nexport { default as LeftSquareOutlined } from \"./LeftSquareOutlined\";\nexport { default as LeftSquareTwoTone } from \"./LeftSquareTwoTone\";\nexport { default as LikeFilled } from \"./LikeFilled\";\nexport { default as LikeOutlined } from \"./LikeOutlined\";\nexport { default as LikeTwoTone } from \"./LikeTwoTone\";\nexport { default as LineChartOutlined } from \"./LineChartOutlined\";\nexport { default as LineHeightOutlined } from \"./LineHeightOutlined\";\nexport { default as LineOutlined } from \"./LineOutlined\";\nexport { default as LinkOutlined } from \"./LinkOutlined\";\nexport { default as LinkedinFilled } from \"./LinkedinFilled\";\nexport { default as LinkedinOutlined } from \"./LinkedinOutlined\";\nexport { default as LinuxOutlined } from \"./LinuxOutlined\";\nexport { default as Loading3QuartersOutlined } from \"./Loading3QuartersOutlined\";\nexport { default as LoadingOutlined } from \"./LoadingOutlined\";\nexport { default as LockFilled } from \"./LockFilled\";\nexport { default as LockOutlined } from \"./LockOutlined\";\nexport { default as LockTwoTone } from \"./LockTwoTone\";\nexport { default as LoginOutlined } from \"./LoginOutlined\";\nexport { default as LogoutOutlined } from \"./LogoutOutlined\";\nexport { default as MacCommandFilled } from \"./MacCommandFilled\";\nexport { default as MacCommandOutlined } from \"./MacCommandOutlined\";\nexport { default as MailFilled } from \"./MailFilled\";\nexport { default as MailOutlined } from \"./MailOutlined\";\nexport { default as MailTwoTone } from \"./MailTwoTone\";\nexport { default as ManOutlined } from \"./ManOutlined\";\nexport { default as MedicineBoxFilled } from \"./MedicineBoxFilled\";\nexport { default as MedicineBoxOutlined } from \"./MedicineBoxOutlined\";\nexport { default as MedicineBoxTwoTone } from \"./MedicineBoxTwoTone\";\nexport { default as MediumCircleFilled } from \"./MediumCircleFilled\";\nexport { default as MediumOutlined } from \"./MediumOutlined\";\nexport { default as MediumSquareFilled } from \"./MediumSquareFilled\";\nexport { default as MediumWorkmarkOutlined } from \"./MediumWorkmarkOutlined\";\nexport { default as MehFilled } from \"./MehFilled\";\nexport { default as MehOutlined } from \"./MehOutlined\";\nexport { default as MehTwoTone } from \"./MehTwoTone\";\nexport { default as MenuFoldOutlined } from \"./MenuFoldOutlined\";\nexport { default as MenuOutlined } from \"./MenuOutlined\";\nexport { default as MenuUnfoldOutlined } from \"./MenuUnfoldOutlined\";\nexport { default as MergeCellsOutlined } from \"./MergeCellsOutlined\";\nexport { default as MergeFilled } from \"./MergeFilled\";\nexport { default as MergeOutlined } from \"./MergeOutlined\";\nexport { default as MessageFilled } from \"./MessageFilled\";\nexport { default as MessageOutlined } from \"./MessageOutlined\";\nexport { default as MessageTwoTone } from \"./MessageTwoTone\";\nexport { default as MinusCircleFilled } from \"./MinusCircleFilled\";\nexport { default as MinusCircleOutlined } from \"./MinusCircleOutlined\";\nexport { default as MinusCircleTwoTone } from \"./MinusCircleTwoTone\";\nexport { default as MinusOutlined } from \"./MinusOutlined\";\nexport { default as MinusSquareFilled } from \"./MinusSquareFilled\";\nexport { default as MinusSquareOutlined } from \"./MinusSquareOutlined\";\nexport { default as MinusSquareTwoTone } from \"./MinusSquareTwoTone\";\nexport { default as MobileFilled } from \"./MobileFilled\";\nexport { default as MobileOutlined } from \"./MobileOutlined\";\nexport { default as MobileTwoTone } from \"./MobileTwoTone\";\nexport { default as MoneyCollectFilled } from \"./MoneyCollectFilled\";\nexport { default as MoneyCollectOutlined } from \"./MoneyCollectOutlined\";\nexport { default as MoneyCollectTwoTone } from \"./MoneyCollectTwoTone\";\nexport { default as MonitorOutlined } from \"./MonitorOutlined\";\nexport { default as MoonFilled } from \"./MoonFilled\";\nexport { default as MoonOutlined } from \"./MoonOutlined\";\nexport { default as MoreOutlined } from \"./MoreOutlined\";\nexport { default as MutedFilled } from \"./MutedFilled\";\nexport { default as MutedOutlined } from \"./MutedOutlined\";\nexport { default as NodeCollapseOutlined } from \"./NodeCollapseOutlined\";\nexport { default as NodeExpandOutlined } from \"./NodeExpandOutlined\";\nexport { default as NodeIndexOutlined } from \"./NodeIndexOutlined\";\nexport { default as NotificationFilled } from \"./NotificationFilled\";\nexport { default as NotificationOutlined } from \"./NotificationOutlined\";\nexport { default as NotificationTwoTone } from \"./NotificationTwoTone\";\nexport { default as NumberOutlined } from \"./NumberOutlined\";\nexport { default as OneToOneOutlined } from \"./OneToOneOutlined\";\nexport { default as OpenAIFilled } from \"./OpenAIFilled\";\nexport { default as OpenAIOutlined } from \"./OpenAIOutlined\";\nexport { default as OrderedListOutlined } from \"./OrderedListOutlined\";\nexport { default as PaperClipOutlined } from \"./PaperClipOutlined\";\nexport { default as PartitionOutlined } from \"./PartitionOutlined\";\nexport { default as PauseCircleFilled } from \"./PauseCircleFilled\";\nexport { default as PauseCircleOutlined } from \"./PauseCircleOutlined\";\nexport { default as PauseCircleTwoTone } from \"./PauseCircleTwoTone\";\nexport { default as PauseOutlined } from \"./PauseOutlined\";\nexport { default as PayCircleFilled } from \"./PayCircleFilled\";\nexport { default as PayCircleOutlined } from \"./PayCircleOutlined\";\nexport { default as PercentageOutlined } from \"./PercentageOutlined\";\nexport { default as PhoneFilled } from \"./PhoneFilled\";\nexport { default as PhoneOutlined } from \"./PhoneOutlined\";\nexport { default as PhoneTwoTone } from \"./PhoneTwoTone\";\nexport { default as PicCenterOutlined } from \"./PicCenterOutlined\";\nexport { default as PicLeftOutlined } from \"./PicLeftOutlined\";\nexport { default as PicRightOutlined } from \"./PicRightOutlined\";\nexport { default as PictureFilled } from \"./PictureFilled\";\nexport { default as PictureOutlined } from \"./PictureOutlined\";\nexport { default as PictureTwoTone } from \"./PictureTwoTone\";\nexport { default as PieChartFilled } from \"./PieChartFilled\";\nexport { default as PieChartOutlined } from \"./PieChartOutlined\";\nexport { default as PieChartTwoTone } from \"./PieChartTwoTone\";\nexport { default as PinterestFilled } from \"./PinterestFilled\";\nexport { default as PinterestOutlined } from \"./PinterestOutlined\";\nexport { default as PlayCircleFilled } from \"./PlayCircleFilled\";\nexport { default as PlayCircleOutlined } from \"./PlayCircleOutlined\";\nexport { default as PlayCircleTwoTone } from \"./PlayCircleTwoTone\";\nexport { default as PlaySquareFilled } from \"./PlaySquareFilled\";\nexport { default as PlaySquareOutlined } from \"./PlaySquareOutlined\";\nexport { default as PlaySquareTwoTone } from \"./PlaySquareTwoTone\";\nexport { default as PlusCircleFilled } from \"./PlusCircleFilled\";\nexport { default as PlusCircleOutlined } from \"./PlusCircleOutlined\";\nexport { default as PlusCircleTwoTone } from \"./PlusCircleTwoTone\";\nexport { default as PlusOutlined } from \"./PlusOutlined\";\nexport { default as PlusSquareFilled } from \"./PlusSquareFilled\";\nexport { default as PlusSquareOutlined } from \"./PlusSquareOutlined\";\nexport { default as PlusSquareTwoTone } from \"./PlusSquareTwoTone\";\nexport { default as PoundCircleFilled } from \"./PoundCircleFilled\";\nexport { default as PoundCircleOutlined } from \"./PoundCircleOutlined\";\nexport { default as PoundCircleTwoTone } from \"./PoundCircleTwoTone\";\nexport { default as PoundOutlined } from \"./PoundOutlined\";\nexport { default as PoweroffOutlined } from \"./PoweroffOutlined\";\nexport { default as PrinterFilled } from \"./PrinterFilled\";\nexport { default as PrinterOutlined } from \"./PrinterOutlined\";\nexport { default as PrinterTwoTone } from \"./PrinterTwoTone\";\nexport { default as ProductFilled } from \"./ProductFilled\";\nexport { default as ProductOutlined } from \"./ProductOutlined\";\nexport { default as ProfileFilled } from \"./ProfileFilled\";\nexport { default as ProfileOutlined } from \"./ProfileOutlined\";\nexport { default as ProfileTwoTone } from \"./ProfileTwoTone\";\nexport { default as ProjectFilled } from \"./ProjectFilled\";\nexport { default as ProjectOutlined } from \"./ProjectOutlined\";\nexport { default as ProjectTwoTone } from \"./ProjectTwoTone\";\nexport { default as PropertySafetyFilled } from \"./PropertySafetyFilled\";\nexport { default as PropertySafetyOutlined } from \"./PropertySafetyOutlined\";\nexport { default as PropertySafetyTwoTone } from \"./PropertySafetyTwoTone\";\nexport { default as PullRequestOutlined } from \"./PullRequestOutlined\";\nexport { default as PushpinFilled } from \"./PushpinFilled\";\nexport { default as PushpinOutlined } from \"./PushpinOutlined\";\nexport { default as PushpinTwoTone } from \"./PushpinTwoTone\";\nexport { default as PythonOutlined } from \"./PythonOutlined\";\nexport { default as QqCircleFilled } from \"./QqCircleFilled\";\nexport { default as QqOutlined } from \"./QqOutlined\";\nexport { default as QqSquareFilled } from \"./QqSquareFilled\";\nexport { default as QrcodeOutlined } from \"./QrcodeOutlined\";\nexport { default as QuestionCircleFilled } from \"./QuestionCircleFilled\";\nexport { default as QuestionCircleOutlined } from \"./QuestionCircleOutlined\";\nexport { default as QuestionCircleTwoTone } from \"./QuestionCircleTwoTone\";\nexport { default as QuestionOutlined } from \"./QuestionOutlined\";\nexport { default as RadarChartOutlined } from \"./RadarChartOutlined\";\nexport { default as RadiusBottomleftOutlined } from \"./RadiusBottomleftOutlined\";\nexport { default as RadiusBottomrightOutlined } from \"./RadiusBottomrightOutlined\";\nexport { default as RadiusSettingOutlined } from \"./RadiusSettingOutlined\";\nexport { default as RadiusUpleftOutlined } from \"./RadiusUpleftOutlined\";\nexport { default as RadiusUprightOutlined } from \"./RadiusUprightOutlined\";\nexport { default as ReadFilled } from \"./ReadFilled\";\nexport { default as ReadOutlined } from \"./ReadOutlined\";\nexport { default as ReconciliationFilled } from \"./ReconciliationFilled\";\nexport { default as ReconciliationOutlined } from \"./ReconciliationOutlined\";\nexport { default as ReconciliationTwoTone } from \"./ReconciliationTwoTone\";\nexport { default as RedEnvelopeFilled } from \"./RedEnvelopeFilled\";\nexport { default as RedEnvelopeOutlined } from \"./RedEnvelopeOutlined\";\nexport { default as RedEnvelopeTwoTone } from \"./RedEnvelopeTwoTone\";\nexport { default as RedditCircleFilled } from \"./RedditCircleFilled\";\nexport { default as RedditOutlined } from \"./RedditOutlined\";\nexport { default as RedditSquareFilled } from \"./RedditSquareFilled\";\nexport { default as RedoOutlined } from \"./RedoOutlined\";\nexport { default as ReloadOutlined } from \"./ReloadOutlined\";\nexport { default as RestFilled } from \"./RestFilled\";\nexport { default as RestOutlined } from \"./RestOutlined\";\nexport { default as RestTwoTone } from \"./RestTwoTone\";\nexport { default as RetweetOutlined } from \"./RetweetOutlined\";\nexport { default as RightCircleFilled } from \"./RightCircleFilled\";\nexport { default as RightCircleOutlined } from \"./RightCircleOutlined\";\nexport { default as RightCircleTwoTone } from \"./RightCircleTwoTone\";\nexport { default as RightOutlined } from \"./RightOutlined\";\nexport { default as RightSquareFilled } from \"./RightSquareFilled\";\nexport { default as RightSquareOutlined } from \"./RightSquareOutlined\";\nexport { default as RightSquareTwoTone } from \"./RightSquareTwoTone\";\nexport { default as RiseOutlined } from \"./RiseOutlined\";\nexport { default as RobotFilled } from \"./RobotFilled\";\nexport { default as RobotOutlined } from \"./RobotOutlined\";\nexport { default as RocketFilled } from \"./RocketFilled\";\nexport { default as RocketOutlined } from \"./RocketOutlined\";\nexport { default as RocketTwoTone } from \"./RocketTwoTone\";\nexport { default as RollbackOutlined } from \"./RollbackOutlined\";\nexport { default as RotateLeftOutlined } from \"./RotateLeftOutlined\";\nexport { default as RotateRightOutlined } from \"./RotateRightOutlined\";\nexport { default as RubyOutlined } from \"./RubyOutlined\";\nexport { default as SafetyCertificateFilled } from \"./SafetyCertificateFilled\";\nexport { default as SafetyCertificateOutlined } from \"./SafetyCertificateOutlined\";\nexport { default as SafetyCertificateTwoTone } from \"./SafetyCertificateTwoTone\";\nexport { default as SafetyOutlined } from \"./SafetyOutlined\";\nexport { default as SaveFilled } from \"./SaveFilled\";\nexport { default as SaveOutlined } from \"./SaveOutlined\";\nexport { default as SaveTwoTone } from \"./SaveTwoTone\";\nexport { default as ScanOutlined } from \"./ScanOutlined\";\nexport { default as ScheduleFilled } from \"./ScheduleFilled\";\nexport { default as ScheduleOutlined } from \"./ScheduleOutlined\";\nexport { default as ScheduleTwoTone } from \"./ScheduleTwoTone\";\nexport { default as ScissorOutlined } from \"./ScissorOutlined\";\nexport { default as SearchOutlined } from \"./SearchOutlined\";\nexport { default as SecurityScanFilled } from \"./SecurityScanFilled\";\nexport { default as SecurityScanOutlined } from \"./SecurityScanOutlined\";\nexport { default as SecurityScanTwoTone } from \"./SecurityScanTwoTone\";\nexport { default as SelectOutlined } from \"./SelectOutlined\";\nexport { default as SendOutlined } from \"./SendOutlined\";\nexport { default as SettingFilled } from \"./SettingFilled\";\nexport { default as SettingOutlined } from \"./SettingOutlined\";\nexport { default as SettingTwoTone } from \"./SettingTwoTone\";\nexport { default as ShakeOutlined } from \"./ShakeOutlined\";\nexport { default as ShareAltOutlined } from \"./ShareAltOutlined\";\nexport { default as ShopFilled } from \"./ShopFilled\";\nexport { default as ShopOutlined } from \"./ShopOutlined\";\nexport { default as ShopTwoTone } from \"./ShopTwoTone\";\nexport { default as ShoppingCartOutlined } from \"./ShoppingCartOutlined\";\nexport { default as ShoppingFilled } from \"./ShoppingFilled\";\nexport { default as ShoppingOutlined } from \"./ShoppingOutlined\";\nexport { default as ShoppingTwoTone } from \"./ShoppingTwoTone\";\nexport { default as ShrinkOutlined } from \"./ShrinkOutlined\";\nexport { default as SignalFilled } from \"./SignalFilled\";\nexport { default as SignatureFilled } from \"./SignatureFilled\";\nexport { default as SignatureOutlined } from \"./SignatureOutlined\";\nexport { default as SisternodeOutlined } from \"./SisternodeOutlined\";\nexport { default as SketchCircleFilled } from \"./SketchCircleFilled\";\nexport { default as SketchOutlined } from \"./SketchOutlined\";\nexport { default as SketchSquareFilled } from \"./SketchSquareFilled\";\nexport { default as SkinFilled } from \"./SkinFilled\";\nexport { default as SkinOutlined } from \"./SkinOutlined\";\nexport { default as SkinTwoTone } from \"./SkinTwoTone\";\nexport { default as SkypeFilled } from \"./SkypeFilled\";\nexport { default as SkypeOutlined } from \"./SkypeOutlined\";\nexport { default as SlackCircleFilled } from \"./SlackCircleFilled\";\nexport { default as SlackOutlined } from \"./SlackOutlined\";\nexport { default as SlackSquareFilled } from \"./SlackSquareFilled\";\nexport { default as SlackSquareOutlined } from \"./SlackSquareOutlined\";\nexport { default as SlidersFilled } from \"./SlidersFilled\";\nexport { default as SlidersOutlined } from \"./SlidersOutlined\";\nexport { default as SlidersTwoTone } from \"./SlidersTwoTone\";\nexport { default as SmallDashOutlined } from \"./SmallDashOutlined\";\nexport { default as SmileFilled } from \"./SmileFilled\";\nexport { default as SmileOutlined } from \"./SmileOutlined\";\nexport { default as SmileTwoTone } from \"./SmileTwoTone\";\nexport { default as SnippetsFilled } from \"./SnippetsFilled\";\nexport { default as SnippetsOutlined } from \"./SnippetsOutlined\";\nexport { default as SnippetsTwoTone } from \"./SnippetsTwoTone\";\nexport { default as SolutionOutlined } from \"./SolutionOutlined\";\nexport { default as SortAscendingOutlined } from \"./SortAscendingOutlined\";\nexport { default as SortDescendingOutlined } from \"./SortDescendingOutlined\";\nexport { default as SoundFilled } from \"./SoundFilled\";\nexport { default as SoundOutlined } from \"./SoundOutlined\";\nexport { default as SoundTwoTone } from \"./SoundTwoTone\";\nexport { default as SplitCellsOutlined } from \"./SplitCellsOutlined\";\nexport { default as SpotifyFilled } from \"./SpotifyFilled\";\nexport { default as SpotifyOutlined } from \"./SpotifyOutlined\";\nexport { default as StarFilled } from \"./StarFilled\";\nexport { default as StarOutlined } from \"./StarOutlined\";\nexport { default as StarTwoTone } from \"./StarTwoTone\";\nexport { default as StepBackwardFilled } from \"./StepBackwardFilled\";\nexport { default as StepBackwardOutlined } from \"./StepBackwardOutlined\";\nexport { default as StepForwardFilled } from \"./StepForwardFilled\";\nexport { default as StepForwardOutlined } from \"./StepForwardOutlined\";\nexport { default as StockOutlined } from \"./StockOutlined\";\nexport { default as StopFilled } from \"./StopFilled\";\nexport { default as StopOutlined } from \"./StopOutlined\";\nexport { default as StopTwoTone } from \"./StopTwoTone\";\nexport { default as StrikethroughOutlined } from \"./StrikethroughOutlined\";\nexport { default as SubnodeOutlined } from \"./SubnodeOutlined\";\nexport { default as SunFilled } from \"./SunFilled\";\nexport { default as SunOutlined } from \"./SunOutlined\";\nexport { default as SwapLeftOutlined } from \"./SwapLeftOutlined\";\nexport { default as SwapOutlined } from \"./SwapOutlined\";\nexport { default as SwapRightOutlined } from \"./SwapRightOutlined\";\nexport { default as SwitcherFilled } from \"./SwitcherFilled\";\nexport { default as SwitcherOutlined } from \"./SwitcherOutlined\";\nexport { default as SwitcherTwoTone } from \"./SwitcherTwoTone\";\nexport { default as SyncOutlined } from \"./SyncOutlined\";\nexport { default as TableOutlined } from \"./TableOutlined\";\nexport { default as TabletFilled } from \"./TabletFilled\";\nexport { default as TabletOutlined } from \"./TabletOutlined\";\nexport { default as TabletTwoTone } from \"./TabletTwoTone\";\nexport { default as TagFilled } from \"./TagFilled\";\nexport { default as TagOutlined } from \"./TagOutlined\";\nexport { default as TagTwoTone } from \"./TagTwoTone\";\nexport { default as TagsFilled } from \"./TagsFilled\";\nexport { default as TagsOutlined } from \"./TagsOutlined\";\nexport { default as TagsTwoTone } from \"./TagsTwoTone\";\nexport { default as TaobaoCircleFilled } from \"./TaobaoCircleFilled\";\nexport { default as TaobaoCircleOutlined } from \"./TaobaoCircleOutlined\";\nexport { default as TaobaoOutlined } from \"./TaobaoOutlined\";\nexport { default as TaobaoSquareFilled } from \"./TaobaoSquareFilled\";\nexport { default as TeamOutlined } from \"./TeamOutlined\";\nexport { default as ThunderboltFilled } from \"./ThunderboltFilled\";\nexport { default as ThunderboltOutlined } from \"./ThunderboltOutlined\";\nexport { default as ThunderboltTwoTone } from \"./ThunderboltTwoTone\";\nexport { default as TikTokFilled } from \"./TikTokFilled\";\nexport { default as TikTokOutlined } from \"./TikTokOutlined\";\nexport { default as ToTopOutlined } from \"./ToTopOutlined\";\nexport { default as ToolFilled } from \"./ToolFilled\";\nexport { default as ToolOutlined } from \"./ToolOutlined\";\nexport { default as ToolTwoTone } from \"./ToolTwoTone\";\nexport { default as TrademarkCircleFilled } from \"./TrademarkCircleFilled\";\nexport { default as TrademarkCircleOutlined } from \"./TrademarkCircleOutlined\";\nexport { default as TrademarkCircleTwoTone } from \"./TrademarkCircleTwoTone\";\nexport { default as TrademarkOutlined } from \"./TrademarkOutlined\";\nexport { default as TransactionOutlined } from \"./TransactionOutlined\";\nexport { default as TranslationOutlined } from \"./TranslationOutlined\";\nexport { default as TrophyFilled } from \"./TrophyFilled\";\nexport { default as TrophyOutlined } from \"./TrophyOutlined\";\nexport { default as TrophyTwoTone } from \"./TrophyTwoTone\";\nexport { default as TruckFilled } from \"./TruckFilled\";\nexport { default as TruckOutlined } from \"./TruckOutlined\";\nexport { default as TwitchFilled } from \"./TwitchFilled\";\nexport { default as TwitchOutlined } from \"./TwitchOutlined\";\nexport { default as TwitterCircleFilled } from \"./TwitterCircleFilled\";\nexport { default as TwitterOutlined } from \"./TwitterOutlined\";\nexport { default as TwitterSquareFilled } from \"./TwitterSquareFilled\";\nexport { default as UnderlineOutlined } from \"./UnderlineOutlined\";\nexport { default as UndoOutlined } from \"./UndoOutlined\";\nexport { default as UngroupOutlined } from \"./UngroupOutlined\";\nexport { default as UnlockFilled } from \"./UnlockFilled\";\nexport { default as UnlockOutlined } from \"./UnlockOutlined\";\nexport { default as UnlockTwoTone } from \"./UnlockTwoTone\";\nexport { default as UnorderedListOutlined } from \"./UnorderedListOutlined\";\nexport { default as UpCircleFilled } from \"./UpCircleFilled\";\nexport { default as UpCircleOutlined } from \"./UpCircleOutlined\";\nexport { default as UpCircleTwoTone } from \"./UpCircleTwoTone\";\nexport { default as UpOutlined } from \"./UpOutlined\";\nexport { default as UpSquareFilled } from \"./UpSquareFilled\";\nexport { default as UpSquareOutlined } from \"./UpSquareOutlined\";\nexport { default as UpSquareTwoTone } from \"./UpSquareTwoTone\";\nexport { default as UploadOutlined } from \"./UploadOutlined\";\nexport { default as UsbFilled } from \"./UsbFilled\";\nexport { default as UsbOutlined } from \"./UsbOutlined\";\nexport { default as UsbTwoTone } from \"./UsbTwoTone\";\nexport { default as UserAddOutlined } from \"./UserAddOutlined\";\nexport { default as UserDeleteOutlined } from \"./UserDeleteOutlined\";\nexport { default as UserOutlined } from \"./UserOutlined\";\nexport { default as UserSwitchOutlined } from \"./UserSwitchOutlined\";\nexport { default as UsergroupAddOutlined } from \"./UsergroupAddOutlined\";\nexport { default as UsergroupDeleteOutlined } from \"./UsergroupDeleteOutlined\";\nexport { default as VerifiedOutlined } from \"./VerifiedOutlined\";\nexport { default as VerticalAlignBottomOutlined } from \"./VerticalAlignBottomOutlined\";\nexport { default as VerticalAlignMiddleOutlined } from \"./VerticalAlignMiddleOutlined\";\nexport { default as VerticalAlignTopOutlined } from \"./VerticalAlignTopOutlined\";\nexport { default as VerticalLeftOutlined } from \"./VerticalLeftOutlined\";\nexport { default as VerticalRightOutlined } from \"./VerticalRightOutlined\";\nexport { default as VideoCameraAddOutlined } from \"./VideoCameraAddOutlined\";\nexport { default as VideoCameraFilled } from \"./VideoCameraFilled\";\nexport { default as VideoCameraOutlined } from \"./VideoCameraOutlined\";\nexport { default as VideoCameraTwoTone } from \"./VideoCameraTwoTone\";\nexport { default as WalletFilled } from \"./WalletFilled\";\nexport { default as WalletOutlined } from \"./WalletOutlined\";\nexport { default as WalletTwoTone } from \"./WalletTwoTone\";\nexport { default as WarningFilled } from \"./WarningFilled\";\nexport { default as WarningOutlined } from \"./WarningOutlined\";\nexport { default as WarningTwoTone } from \"./WarningTwoTone\";\nexport { default as WechatFilled } from \"./WechatFilled\";\nexport { default as WechatOutlined } from \"./WechatOutlined\";\nexport { default as WechatWorkFilled } from \"./WechatWorkFilled\";\nexport { default as WechatWorkOutlined } from \"./WechatWorkOutlined\";\nexport { default as WeiboCircleFilled } from \"./WeiboCircleFilled\";\nexport { default as WeiboCircleOutlined } from \"./WeiboCircleOutlined\";\nexport { default as WeiboOutlined } from \"./WeiboOutlined\";\nexport { default as WeiboSquareFilled } from \"./WeiboSquareFilled\";\nexport { default as WeiboSquareOutlined } from \"./WeiboSquareOutlined\";\nexport { default as WhatsAppOutlined } from \"./WhatsAppOutlined\";\nexport { default as WifiOutlined } from \"./WifiOutlined\";\nexport { default as WindowsFilled } from \"./WindowsFilled\";\nexport { default as WindowsOutlined } from \"./WindowsOutlined\";\nexport { default as WomanOutlined } from \"./WomanOutlined\";\nexport { default as XFilled } from \"./XFilled\";\nexport { default as XOutlined } from \"./XOutlined\";\nexport { default as YahooFilled } from \"./YahooFilled\";\nexport { default as YahooOutlined } from \"./YahooOutlined\";\nexport { default as YoutubeFilled } from \"./YoutubeFilled\";\nexport { default as YoutubeOutlined } from \"./YoutubeOutlined\";\nexport { default as YuqueFilled } from \"./YuqueFilled\";\nexport { default as YuqueOutlined } from \"./YuqueOutlined\";\nexport { default as ZhihuCircleFilled } from \"./ZhihuCircleFilled\";\nexport { default as ZhihuOutlined } from \"./ZhihuOutlined\";\nexport { default as ZhihuSquareFilled } from \"./ZhihuSquareFilled\";\nexport { default as ZoomInOutlined } from \"./ZoomInOutlined\";\nexport { default as ZoomOutOutlined } from \"./ZoomOutOutlined\";","import Context from \"./components/Context\";\nexport * from \"./icons\";\nexport * from \"./components/twoTonePrimaryColor\";\nexport { default as createFromIconfontCN } from \"./components/IconFont\";\nexport { default } from \"./components/Icon\";\nexport const IconProvider = Context.Provider;","import { PlusOutlined } from '@ant-design/icons'\nimport type { InputRef } from 'antd'\nimport { Input, Space, Tag, theme } from 'antd'\nimport type { ChangeEvent, FC } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface DynamicTagsProps {\n initialTags?: string[]\n addable?: boolean\n removable?: boolean\n // 返回 Promise。如果返回 Promise.resolve(true),则添加; 如果返回 Promise.resolve(false) 或 Promise.reject,则不添加\n addCallback?: (addedTag: string) => Promise<boolean>\n // 返回 Promise。如果返回 Promise.resolve(true),则删除; 如果返回 Promise.resolve(false) 或 Promise.reject,则不删除\n removeCallback?: (removedTag: string) => Promise<boolean>\n}\n\nconst DynamicTags: FC<DynamicTagsProps> = props => {\n const { initialTags, addable, removable, addCallback, removeCallback } = props\n const { t } = useTranslation()\n const { token } = theme.useToken()\n const [tags, setTags] = useState<string[]>([])\n const [inputVisible, setInputVisible] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [editInputIndex, setEditInputIndex] = useState(-1)\n const [editInputValue, setEditInputValue] = useState<string>('')\n const inputRef = useRef<InputRef>(null)\n const editInputRef = useRef<InputRef>(null)\n\n useEffect(() => {\n setTags(initialTags ?? [])\n }, [initialTags])\n\n useEffect(() => {\n if (inputVisible) {\n inputRef.current?.focus()\n }\n }, [inputVisible])\n\n useEffect(() => {\n editInputRef.current?.focus()\n }, [inputValue])\n\n const handleClose = async (removedTag: string) => {\n const success = await removeCallback?.(removedTag)\n\n if (success) {\n const newTags = tags.filter(tag => tag !== removedTag)\n setTags(newTags)\n }\n }\n\n const showInput = () => {\n setInputVisible(true)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n }\n\n const handleInputConfirm = async () => {\n if (inputValue && tags.indexOf(inputValue) === -1) {\n const success = await addCallback?.(inputValue)\n\n if (success) {\n setTags([...tags, inputValue])\n }\n }\n\n setInputVisible(false)\n setInputValue('')\n }\n\n const handleEditInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setEditInputValue(e.target.value)\n }\n\n const handleEditInputConfirm = () => {\n const newTags = [...tags]\n newTags[editInputIndex] = editInputValue\n setTags(newTags)\n setEditInputIndex(-1)\n setInputValue('')\n }\n\n return (\n <Space wrap size={[0, 8]}>\n <Space wrap size={[0, 8]}>\n {tags.map((tag, index) => {\n if (editInputIndex === index) {\n return (\n <Input\n ref={editInputRef}\n key={tag}\n size=\"small\"\n className=\"w-[78px] align-top\"\n value={editInputValue}\n onChange={handleEditInputChange}\n onBlur={handleEditInputConfirm}\n onPressEnter={handleEditInputConfirm}\n />\n )\n }\n\n return (\n <Tag\n key={tag}\n closable={removable}\n className=\"select-none\"\n onClose={async e => {\n e.preventDefault()\n await handleClose(tag)\n }}\n >\n <span\n onDoubleClick={e => {\n if (index !== 0) {\n setEditInputIndex(index)\n setEditInputValue(tag)\n e.preventDefault()\n }\n }}\n >\n {tag}\n </span>\n </Tag>\n )\n })}\n </Space>\n {addable &&\n (inputVisible ? (\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"small\"\n className=\"w-[78px] align-top\"\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputConfirm}\n onPressEnter={handleInputConfirm}\n />\n ) : (\n <Tag className=\"border-dashed\" style={{ background: token.colorBgContainer }} onClick={showInput}>\n <PlusOutlined />\n &nbsp;{t('global.add')}\n </Tag>\n ))}\n </Space>\n )\n}\n\nexport default DynamicTags\n","export type { DynamicTagsProps } from './DynamicTags'\nexport { default as DynamicTags } from './DynamicTags'\n","import { Typography } from 'antd'\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph'\nimport type { FC } from 'react'\nimport { useState } from 'react'\n\nexport type ExpandableParagraphProps = Omit<ParagraphProps, 'ellipsis' | 'className'>\n\nconst ExpandableParagraph: FC<ExpandableParagraphProps> = props => {\n const { children, ...restProps } = props\n const [expanded, setExpanded] = useState(false)\n\n return (\n <Typography.Paragraph\n {...restProps}\n className=\"mb-0\"\n ellipsis={{\n rows: 2,\n expandable: 'collapsible',\n expanded,\n onExpand: (_, info) => {\n setExpanded(info.expanded)\n },\n }}\n >\n {children}\n </Typography.Paragraph>\n )\n}\n\nexport default ExpandableParagraph\n","export type { ExpandableParagraphProps } from './ExpandableParagraph'\nexport { default as ExpandableParagraph } from './ExpandableParagraph'\n","import { Button, Space, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Fragment } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface FilterFormWrapperProps extends PropsWithChildren {\n onConfirm?: () => void | Promise<void>\n onReset?: () => void\n extras?: { key: Key; children: ReactNode }[]\n isConfirming?: boolean\n buttonsAlign?: 'left' | 'right' | 'bottom'\n showReset?: boolean\n}\n\nconst FilterFormWrapper = (props: FilterFormWrapperProps) => {\n const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = 'left', showReset } = props\n const { t } = useTranslation()\n const {\n token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG },\n } = theme.useToken()\n\n return (\n <div\n className=\"max-w-none p-6 mb-6 border\"\n style={{\n background: colorFillAlter,\n borderWidth: lineWidth,\n borderStyle: lineType,\n borderColor: colorBorder,\n borderRadius: borderRadiusLG,\n }}\n >\n <div className={`flex ${buttonsAlign === 'bottom' ? 'flex-col' : 'flex-row'}`}>\n <div className={`${buttonsAlign === 'left' ? 'grow-0' : 'flex-1'}`}>{children}</div>\n <div className={`${buttonsAlign === 'bottom' ? 'text-end' : 'text-start'} ml-4`}>\n <Space>\n <Button type=\"primary\" disabled={isConfirming} onClick={onConfirm}>\n {t('FilterFormWrapper.confirmText')}\n </Button>\n {extras?.map(item => (\n <Fragment key={item.key}>{item.children}</Fragment>\n ))}\n {showReset && <Button onClick={onReset}>{t('FilterFormWrapper.resetText')}</Button>}\n </Space>\n </div>\n </div>\n </div>\n )\n}\n\nexport default FilterFormWrapper\n","export type { FilterFormWrapperProps } from './FilterFormWrapper'\nexport { default as FilterFormWrapper } from './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","export type { HighlightProps } from './Highlight'\nexport { default as Highlight } from './Highlight'\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { InfiniteListPayload } from './InfiniteList'\n\n// Infinite Query 更新函数类型\ntype InfiniteQueryRefetchFunction = () => void | Promise<unknown>\ntype InfiniteQueryFetchNextPageFunction = () => void | Promise<unknown>\n\n// InfiniteList 实例信息\ninterface InfiniteListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: InfiniteListPayload\n refetch: InfiniteQueryRefetchFunction\n fetchNextPage: InfiniteQueryFetchNextPageFunction\n}\n\n// 简化的状态接口\ninterface InfiniteListState {\n // 实例管理\n instances: Map<string, InfiniteListInstance>\n\n // 核心方法\n registerInstance(\n id: string,\n url: string,\n queryKey: readonly unknown[],\n refetch: InfiniteQueryRefetchFunction,\n fetchNextPage: InfiniteQueryFetchNextPageFunction,\n ): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: InfiniteListPayload): void\n getPayload(id: string): InfiniteListPayload\n refetch(id: string, payload?: InfiniteListPayload): Promise<void>\n fetchNextPage(id: string): Promise<void>\n\n // 工具方法\n getInstance(id: string): InfiniteListInstance | undefined\n getAllInstances(): InfiniteListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: InfiniteListPayload = Object.freeze({\n page: 0,\n // 这里使用冻结的空对象,确保引用稳定\n filters: Object.freeze({}) as Record<string, never>,\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<InfiniteListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch, fetchNextPage) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新函数\n if (existingInstance) {\n // 仅当引用发生变化时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch || existingInstance.fetchNextPage !== fetchNextPage) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n fetchNextPage,\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: InfiniteListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n fetchNextPage,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\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\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\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList 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 // 只有当 payload 真正改变时才更新\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 InfiniteList instance \"${id}\":`, error)\n throw error\n }\n },\n\n async fetchNextPage(id) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList instance with id \"${id}\" not found`)\n return\n }\n\n // 调用 fetchNextPage 函数\n try {\n await instance.fetchNextPage()\n } catch (error) {\n console.error(`Failed to fetch next page for InfiniteList 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: 'infinite-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useInfiniteListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useInfiniteQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Button, 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 { useInfiniteListStore } from './stores'\n\n/**\n * 无限列表的载荷数据\n * @template Values 表单值的类型\n */\nexport interface InfiniteListPayload<Values = any> {\n /** 当前页码(仅用于表单状态,实际分页参数通过 pageParam 传递) */\n page?: number\n /** 表单筛选条件 */\n filters?: Values\n}\n\n/**\n * 缓存配置\n */\nexport interface CacheConfig {\n /** 缓存时间(毫秒),数据在缓存中保留的时间 */\n cacheTime?: number\n /** 过期时间(毫秒),数据在过期前被认为是新鲜的 */\n staleTime?: number\n}\n\n/**\n * HTTP 请求方法\n */\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n/**\n * 分页参数类型,支持多种分页方式:\n * - number: 页码分页\n * - string: 游标分页(cursor)\n * - object: 复杂分页参数对象\n * - undefined: 无下一页\n */\nexport type PageParam = number | string | Record<string, any> | undefined\n\n/**\n * 请求体解析器\n * 可以是静态值,也可以是动态函数\n * @template Values 表单值的类型\n * @template PageParamType 分页参数的类型(可能是 undefined,表示第一页)\n */\ntype RequestBodyResolver<Values = any, PageParamType = PageParam> =\n | FormData\n | Record<string | number, any>\n | ((\n payload: InfiniteListPayload<Values>,\n pageParam: PageParamType | undefined,\n ) => FormData | Record<string | number, any>)\n\n/**\n * 请求参数解析器(用于 URL 查询参数)\n * 可以是静态值,也可以是动态函数\n * @template Values 表单值的类型\n * @template PageParamType 分页参数的类型(可能是 undefined,表示第一页)\n */\ntype RequestParamsResolver<Values = any, PageParamType = PageParam> =\n | Record<string | number, any>\n | ((payload: InfiniteListPayload<Values>, pageParam: PageParamType | undefined) => Record<string | number, any>)\n\n/**\n * 无限列表请求配置\n * @template Values 表单值的类型\n * @template PageParamType 分页参数的类型\n */\nexport interface InfiniteListRequestConfig<Values = any, PageParamType = PageParam> extends CacheConfig {\n /** 请求 URL */\n url: string\n /** HTTP 请求方法,默认为 GET */\n method?: HttpMethod\n /** 请求体(用于 POST、PUT、PATCH、DELETE 等方法) */\n body?: RequestBodyResolver<Values, PageParamType>\n /** URL 查询参数 */\n searchParams?: RequestParamsResolver<Values, PageParamType>\n /** 请求头,可以是静态对象或动态函数 */\n headers?: Record<string, string> | ((form: FormInstance<Values>) => Record<string, string>)\n}\n\n/**\n * 无限列表请求配置类型\n * 可以是静态配置,也可以是动态函数\n * @template Values 表单值的类型\n * @template PageParamType 分页参数的类型\n */\nexport type InfiniteListRequestConfigType<Values = any, PageParamType = PageParam> =\n | InfiniteListRequestConfig<Values, PageParamType>\n | ((\n payload: InfiniteListPayload<Values>,\n pageParam: PageParamType | undefined,\n ) => InfiniteListRequestConfig<Values, PageParamType>)\n\n/**\n * 数据适配器,用于转换和适配后端返回的数据格式\n * @template Item 列表项类型\n * @template Values 表单值类型\n * @template Data 后端返回的数据类型\n * @template PageParamType 分页参数的类型\n */\nexport interface InfiniteListDataAdapter<Item = any, Values = any, Data = any, PageParamType = PageParam> {\n /**\n * 从后端数据中提取列表项\n * @param data 所有已加载的页面数据\n * @param form 表单实例\n * @returns 提取的列表项数组\n */\n items?: (data: Data[] | undefined, form: FormInstance<Values>) => Item[] | undefined\n /**\n * 判断是否还有更多数据\n * @param lastPage 最后一页的数据\n * @param allPages 所有已加载的页面数据\n * @returns 是否还有更多数据\n */\n hasMore?: (lastPage: Data | undefined, allPages: Data[]) => boolean\n /**\n * 计算下一页的分页参数\n * @param lastPage 最后一页的数据\n * @param allPages 所有已加载的页面数据\n * @param pageParam 当前的分页参数\n * @returns 下一页的分页参数,返回 undefined 表示没有下一页\n */\n nextPageParam?: (lastPage: Data | undefined, allPages: Data[], pageParam: PageParamType) => PageParamType | undefined\n}\n\n/**\n * InfiniteList 组件的引用对象,提供外部访问的 API\n * @template Item 列表项类型\n * @template Values 表单值类型\n * @template Data 后端返回的数据类型\n */\nexport interface InfiniteListRef<Item = any, Values = any, Data = any> {\n /** 所有已加载的页面数据 */\n data: Data[] | undefined\n /** 处理后的列表数据源 */\n dataSource: Item[] | undefined\n /** 表单实例 */\n form: FormInstance<Values>\n /** 重新获取数据 */\n refetch: () => void\n /** 获取下一页数据 */\n fetchNextPage: () => void\n /** 是否还有下一页 */\n hasNextPage: boolean\n /** 是否正在获取下一页 */\n isFetchingNextPage: boolean\n}\n\n/**\n * InfiniteList 组件的属性\n * @template Item 列表项类型\n * @template Values 表单值类型\n * @template Data 后端返回的数据类型\n * @template PageParamType 分页参数的类型\n */\nexport interface InfiniteListProps<Item, Values, Data, PageParamType = PageParam>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n /** 唯一标识符,用于在 store 中区分不同的列表实例 */\n identifier?: string\n /** 权限代码,用于权限控制 */\n code?: string\n /** 表单实例,如果不提供则内部创建 */\n form?: FormInstance<Values>\n /** 自动刷新间隔(毫秒),0 表示不自动刷新 */\n refreshInterval?: number\n /** 请求配置,可以是静态配置或动态函数 */\n request: InfiniteListRequestConfigType<Values, PageParamType>\n /** 表格额外内容,可以是静态内容或动态函数 */\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data[]) => ReactNode)\n /** 自定义表单渲染函数 */\n renderForm?: (form: FormInstance<Values>) => ReactElement\n /** 请求成功后的回调 */\n afterSuccess?: (form: FormInstance<Values>, data?: Data[]) => void\n /** 请求失败后的回调 */\n afterError?: (error: Error, form: FormInstance<Values>) => void\n /** 数据适配器,用于转换后端数据格式 */\n dataAdapter?: InfiniteListDataAdapter<Item, Values, Data, PageParamType>\n /** 初始分页参数,默认为 0 */\n initialPageParam?: PageParamType\n /** 表格底部内容,可以是静态内容或动态函数 */\n footer?: (data: Data[] | undefined) => ReactNode\n}\n\n/** 默认缓存时间:5 分钟 */\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000\n/** 默认过期时间:30 秒 */\nconst DEFAULT_STALE_TIME = 30 * 1000\n\n/** 不支持请求体的 HTTP 方法 */\nconst BODYLESS_METHODS: HttpMethod[] = ['GET', 'HEAD', 'OPTIONS']\n/** 支持请求体的 HTTP 方法 */\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\nlet identifierCounter = 0\n/**\n * 生成唯一的标识符\n * @returns 唯一标识符字符串\n */\nconst generateUniqueIdentifier = (): string => `infiniteList_${Date.now()}_${++identifierCounter}`\n\n/**\n * InfiniteList 内部组件实现\n * @template Item 列表项类型\n * @template Values 表单值类型\n * @template Data 后端返回的数据类型\n * @template PageParamType 分页参数的类型\n */\nconst InternalInfiniteList = <\n Item extends AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n PageParamType = PageParam,\n>(\n props: InfiniteListProps<Item, Values, Data, PageParamType>,\n ref: Ref<InfiniteListRef<Item, Values, Data>>,\n) => {\n /**\n * 默认数据适配器\n * 假设后端返回格式为:{ data: { list: Item[], hasMore: boolean } }\n */\n const defaultDataAdapter = {\n items: (pages: Data[] | undefined) => {\n if (!pages) return []\n return pages.flatMap((page: any) => page?.data?.list || [])\n },\n hasMore: (lastPage: Data | undefined): boolean => {\n if (!lastPage) return false\n const page = lastPage as any\n return page?.hasMore || page?.has_more || false\n },\n nextPageParam: (\n _lastPage: Data | undefined,\n allPages: Data[],\n lastPageParam: PageParamType,\n ): PageParamType | undefined => {\n const latest = allPages.at(-1)\n if (!latest) return undefined\n\n const pageMeta = latest as any\n const hasNext = pageMeta?.hasMore || pageMeta?.has_more || false\n if (!hasNext) {\n return undefined\n }\n\n if (typeof lastPageParam === 'number') {\n return (lastPageParam + 1) as PageParamType\n }\n\n return allPages.length as PageParamType\n },\n }\n\n const {\n identifier,\n code,\n buttonsAlign,\n showReset,\n refreshInterval = 0,\n request,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n dataAdapter,\n initialPageParam = 0 as PageParamType,\n footer,\n form,\n ...tableProps\n } = props\n\n const { t } = useTranslation()\n const [formInstance] = Form.useForm<Values>(form)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false)\n const shouldPoll = useRef(false)\n const ky = useKy()\n\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n\n const finalIdentifier = useMemo(() => identifier || generateUniqueIdentifier(), [identifier])\n const subscribedPayload = useInfiniteListStore(s => s.getPayload(finalIdentifier))\n const { page = typeof initialPageParam === 'number' ? initialPageParam : 0, filters } = subscribedPayload\n const payload = { page, filters }\n\n const mergedDataAdapter = useMemo<InfiniteListDataAdapter<Item, Values, Data, PageParamType>>(\n () =>\n ({\n ...defaultDataAdapter,\n ...(dataAdapter ?? {}),\n }) as InfiniteListDataAdapter<Item, Values, Data, PageParamType>,\n [dataAdapter],\n )\n\n const baseRequest = useMemo(\n () => (typeof request === 'function' ? request(payload, initialPageParam) : request),\n [request, payload, initialPageParam],\n )\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 } = baseRequest\n\n const normalizedMethod = (method || 'GET').toUpperCase() as HttpMethod\n const supportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n if (!supportedMethods.includes(normalizedMethod)) {\n console.warn(`InfiniteList: 不支持的 HTTP 请求方法 \"${method}\",已回退到 GET 方法`)\n }\n\n // 解析请求头(支持函数形式)\n const requestHeaders = typeof headers === 'function' ? headers(formInstance) : headers\n // 解析请求体(支持函数形式)\n const evaluatedBaseBody = typeof body === 'function' ? body(payload, initialPageParam) : body\n // 解析查询参数(支持函数形式)\n const evaluatedBaseSearchParams =\n typeof searchParams === 'function' ? searchParams(payload, initialPageParam) : searchParams\n\n // 构建查询键,用于 React Query 的缓存和依赖追踪\n const queryKey = useMemo(\n () =>\n [\n 'infiniteList',\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n filters,\n evaluatedBaseSearchParams,\n evaluatedBaseBody,\n requestHeaders,\n ] as const,\n [\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n filters,\n evaluatedBaseSearchParams,\n evaluatedBaseBody,\n requestHeaders,\n ],\n )\n\n // 使用 React Query 的无限查询\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, refetch, isFetching } = useInfiniteQuery({\n queryKey,\n /**\n * 查询函数:执行实际的 HTTP 请求\n * @param pageParam 当前页的分页参数\n */\n queryFn: async ({ pageParam = initialPageParam }) => {\n try {\n // 构建当前请求的载荷(如果 pageParam 是数字,则更新 page)\n const currentPayload: InfiniteListPayload = {\n ...payload,\n page: typeof pageParam === 'number' ? pageParam : page,\n }\n\n // 解析请求配置(支持函数形式,可以动态生成配置)\n const resolvedRequest =\n typeof request === 'function' ? request(currentPayload, pageParam as PageParamType) : request || baseRequest\n\n // 解构请求配置\n const {\n url: resolvedUrl = url,\n method: resolvedMethod = normalizedMethod,\n body: resolvedBody,\n searchParams: resolvedSearchParams,\n headers: resolvedHeaders = headers,\n } = resolvedRequest\n\n const currentMethod = (resolvedMethod || normalizedMethod).toUpperCase() as HttpMethod\n const isBodyless = BODYLESS_METHODS.includes(currentMethod)\n\n // 默认请求数据(包含筛选条件和分页参数)\n const defaultRequestData = {\n ...(filters ?? {}),\n page: pageParam,\n }\n\n // 解析请求体和查询参数(支持函数形式)\n const resolvedBodyValue =\n typeof resolvedBody === 'function' ? resolvedBody(currentPayload, pageParam as PageParamType) : resolvedBody\n const resolvedSearchParamsValue =\n typeof resolvedSearchParams === 'function'\n ? resolvedSearchParams(currentPayload, pageParam as PageParamType)\n : resolvedSearchParams\n\n // 智能参数传递策略:\n // 1. 如果用户明确指定了 body,则使用 body,同时可以传递 searchParams\n // 2. 如果用户只指定了 searchParams,则使用 searchParams\n // 3. 如果都没有指定,根据 HTTP 方法自动选择:\n // - 无请求体的方法(GET/HEAD/OPTIONS):使用 searchParams\n // - 有请求体的方法(POST/PUT/PATCH/DELETE):使用 body\n let requestBody: any\n let requestSearchParams: any\n\n if (resolvedBodyValue !== undefined) {\n requestBody = resolvedBodyValue\n requestSearchParams = resolvedSearchParamsValue\n } else if (resolvedSearchParamsValue !== undefined) {\n requestSearchParams = resolvedSearchParamsValue\n } else if (isBodyless) {\n requestSearchParams = defaultRequestData\n } else {\n requestBody = defaultRequestData\n }\n\n // 解析最终请求头(支持函数形式)\n const finalHeaders =\n typeof resolvedHeaders === 'function' ? resolvedHeaders(formInstance) : (resolvedHeaders ?? requestHeaders)\n\n // 构建 ky 请求选项\n const kyOptions: KyOptions = {\n method: currentMethod,\n headers: finalHeaders,\n }\n\n // 设置查询参数\n if (requestSearchParams !== undefined) {\n kyOptions.searchParams = requestSearchParams\n }\n\n // 设置请求体(仅对支持请求体的方法)\n if (requestBody && !isBodyless) {\n if (requestBody instanceof FormData) {\n kyOptions.body = requestBody\n } else if (typeof requestBody === 'string') {\n kyOptions.body = requestBody\n } else {\n kyOptions.json = requestBody\n }\n }\n\n // 执行请求\n const response = await ky.request<Data>({ url: resolvedUrl, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(formInstance, [response])\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, formInstance)\n throw errorObj\n }\n },\n initialPageParam,\n /**\n * 计算下一页的分页参数\n * 如果用户提供了自定义的 nextPageParam,则使用用户的实现\n * 否则使用默认逻辑\n */\n getNextPageParam: (lastPage: Data, allPages: Data[], lastPageParam: PageParamType) => {\n // 先检查 hasMore,如果明确返回 false,则不加载下一页\n const hasMoreResult = mergedDataAdapter.hasMore?.(lastPage, allPages)\n if (hasMoreResult === false) {\n return undefined\n }\n\n // 如果提供了 nextPageParam,则使用它\n if (mergedDataAdapter.nextPageParam) {\n return mergedDataAdapter.nextPageParam(lastPage, allPages, lastPageParam)\n }\n\n // 如果没有提供 nextPageParam,但 hasMore 返回 true,则使用默认逻辑\n if (hasMoreResult === true) {\n if (typeof lastPageParam === 'number') {\n return (lastPageParam + 1) as PageParamType\n }\n return allPages.length as PageParamType\n }\n\n return undefined\n },\n enabled: Boolean(accessible && isValid),\n retry: (failureCount, retryError) => {\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 gcTime: cacheTime,\n staleTime,\n })\n\n // 注册/注销实例到 store\n useEffect(() => {\n useInfiniteListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch, fetchNextPage)\n return () => {\n useInfiniteListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url])\n\n // 处理数据源\n const dataSource = mergedDataAdapter.items?.(data?.pages, formInstance)\n const isEmpty = !dataSource || dataSource.length === 0\n const isLoadingMore = isFetchingNextPage\n const isReachingEnd = !hasNextPage\n\n /**\n * 确认搜索/筛选\n * 验证表单后,重置到第一页并重新获取数据\n */\n const onConfirm = useCallback(async () => {\n try {\n await formInstance.validateFields()\n setIsValid(true)\n useInfiniteListStore.getState().refetch(finalIdentifier, {\n page: typeof initialPageParam === 'number' ? initialPageParam : 0,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [finalIdentifier, formInstance, initialPageParam])\n\n /**\n * 重置筛选条件\n * 清空表单后,重置到第一页并重新获取数据\n */\n const onReset = useCallback(async () => {\n try {\n formInstance.resetFields()\n await formInstance.validateFields({ validateOnly: true })\n setIsValid(true)\n useInfiniteListStore.getState().refetch(finalIdentifier, {\n page: typeof initialPageParam === 'number' ? initialPageParam : 0,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [finalIdentifier, formInstance, initialPageParam])\n\n /**\n * 加载更多数据\n * 如果还有下一页且当前没有正在加载,则触发加载下一页\n */\n const loadMore = useCallback(() => {\n if (!hasNextPage || isFetchingNextPage) return\n useInfiniteListStore.getState().fetchNextPage(finalIdentifier)\n }, [finalIdentifier, hasNextPage, isFetchingNextPage])\n\n /**\n * 同步表单值与 store 中的 filters\n * 当 store 中的 filters 发生变化时,更新表单值\n */\n useEffect(() => {\n if (!isInitialized.current || isUpdatingFromPayload.current) {\n return\n }\n\n const currentValues = formInstance.getFieldsValue()\n if (filters && !isEqual(currentValues, filters)) {\n isUpdatingFromPayload.current = true\n formInstance.setFieldsValue(filters)\n setTimeout(() => {\n isUpdatingFromPayload.current = false\n }, 0)\n }\n }, [filters, formInstance])\n\n /**\n * 初始化组件\n * 在权限检查通过后,初始化表单并设置初始 payload\n */\n useEffect(() => {\n if (!accessible || isInitialized.current) {\n return\n }\n\n const init = async () => {\n try {\n formInstance.resetFields()\n const value = await formInstance.validateFields({ validateOnly: true })\n useInfiniteListStore.getState().updatePayload(finalIdentifier, {\n page: typeof initialPageParam === 'number' ? initialPageParam : 0,\n filters: value,\n })\n setIsValid(true)\n } catch {\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, initialPageParam])\n\n // 暴露组件 API 给父组件\n useImperativeHandle(\n ref,\n () => ({\n data: data?.pages,\n dataSource,\n form: formInstance,\n refetch,\n fetchNextPage,\n hasNextPage: !!hasNextPage,\n isFetchingNextPage,\n }),\n [data?.pages, dataSource, formInstance, refetch, fetchNextPage, hasNextPage, isFetchingNextPage],\n )\n\n // 权限检查中,显示加载状态\n if (isChecking) {\n return (\n <div className=\"flex justify-center items-center h-[300px]\">\n <Spin />\n </div>\n )\n }\n\n // 无权限,显示 403 错误\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n // 渲染表格底部\n const renderFooter: TableProps<Item>['footer'] = footer ? () => <>{footer(data?.pages)}</> : undefined\n\n // 渲染表格额外内容\n const renderTableExtra = () => {\n if (typeof tableExtra === 'function') {\n return tableExtra(formInstance, data?.pages)\n }\n return tableExtra\n }\n\n // 渲染表单(支持自定义渲染或默认表单)\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isFetching && !isFetchingNextPage}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {/* 支持 Enter 键提交 */}\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 form={formInstance} />\n )\n\n // 渲染组件\n return (\n <>\n {formRenderer}\n {renderTableExtra()}\n <Table\n {...tableProps}\n dataSource={dataSource}\n loading={isFetching && !isFetchingNextPage}\n pagination={false}\n footer={renderFooter}\n />\n {!isEmpty && (\n <div className=\"mt-4\">\n <Button\n block\n loading={isLoadingMore}\n type=\"link\"\n htmlType=\"button\"\n disabled={isLoadingMore || isReachingEnd}\n onClick={loadMore}\n >\n {isLoadingMore\n ? t('InfiniteList.loadingText')\n : isReachingEnd\n ? t('InfiniteList.reachEndText')\n : t('InfiniteList.loadMoreText')}\n </Button>\n </div>\n )}\n </>\n )\n}\n\n/**\n * InfiniteList 组件\n * @template Item 列表项类型\n * @template Values 表单值类型\n * @template Data 后端返回的数据类型\n * @template PageParamType 分页参数的类型\n */\nfunction InfiniteListComponent<\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n PageParamType = PageParam,\n>(\n props: InfiniteListProps<Item, Values, Data, PageParamType> & {\n ref?: Ref<InfiniteListRef<Item, Values, Data>>\n },\n): ReactElement\n\n// 实现\nfunction InfiniteListComponent(props: any, ref?: any) {\n return InternalInfiniteList(props, ref)\n}\n\nconst InfiniteList = forwardRef(InfiniteListComponent) as typeof InfiniteListComponent\n\nexport default InfiniteList\n","export type {\n CacheConfig,\n HttpMethod,\n InfiniteListDataAdapter,\n InfiniteListPayload,\n InfiniteListProps,\n InfiniteListRef,\n InfiniteListRequestConfig,\n InfiniteListRequestConfigType,\n} from './InfiniteList'\nexport { default as InfiniteList } from './InfiniteList'\nexport { useInfiniteListStore } from './stores'\n","import { useQueryClient } from '@tanstack/react-query'\nimport type { SelectProps } from 'antd'\nimport { Select, Space, Typography } from 'antd'\nimport { useEffect, useMemo } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport type { Game } from './types'\n\nconst { Text } = Typography\n\nexport interface GameSelectProps<T extends Game = Game> {\n filter?: (game: T) => boolean\n options?: (data?: T[]) => SelectProps['options']\n}\n\nconst GameSelect = <T extends Game = Game>(props: GameSelectProps<T>) => {\n const { filter, options } = props\n const { t } = useTranslation()\n const {\n context: { useGameApiV2 },\n game: { appId, setAppId },\n } = useToolkitsStore()\n const { data, isLoading } = useGames()\n const queryClient = useQueryClient()\n\n const filteredData = useMemo(\n () => data?.filter((item: Game) => filter?.(item as T) ?? true) as T[] | undefined,\n [data, filter],\n )\n\n const selectOptions = useMemo(\n () =>\n typeof options === 'function'\n ? options(filteredData)\n : filteredData?.map((item: T) => ({\n label: item.name,\n value: useGameApiV2 ? item.game_id : item.id,\n })),\n [options, filteredData, useGameApiV2],\n )\n\n // 切换游戏时清空 TanStack Query 缓存触发重新请求以更新视图。\n const handleChange = (value: string | number) => {\n // 标记除游戏列表外的所有缓存为过期,保留现有数据直到新数据加载完成\n queryClient.invalidateQueries({\n predicate: query => {\n const queryKey = query.queryKey\n return !queryKey.includes('/api/game/list') && !queryKey.includes('/api/usystem/game/all')\n },\n })\n setAppId(value)\n }\n\n useEffect(() => {\n // 数据还在加载中时,不要修改 appId\n if (isLoading) return\n\n if (selectOptions && selectOptions.length > 0) {\n const hasValidAppId = appId && selectOptions.some(item => String(item.value) === String(appId))\n\n // 只有当 appId 无效时才设置为第一个选项\n if (!hasValidAppId) {\n setAppId(selectOptions[0]?.value ?? undefined)\n }\n } else if (selectOptions === undefined || selectOptions.length === 0) {\n // 如果没有选项,则清空当前游戏 ID\n setAppId(undefined)\n }\n }, [selectOptions, isLoading])\n\n return (\n <Space>\n <Text>{t('GameSelect.label')}</Text>\n <Select\n showSearch={{ optionFilterProp: 'label' }}\n value={appId as string | number | undefined}\n placeholder={t('GameSelect.placeholder')}\n loading={isLoading}\n className=\"w-[250px]\"\n options={selectOptions}\n onChange={handleChange}\n />\n </Space>\n )\n}\n\nexport default GameSelect\n","import { Empty, Spin } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { Fragment } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nconst RequireGame: FC<PropsWithChildren> = ({ children }) => {\n const {\n context: { isGlobalMode, gameScoped },\n game: { appId },\n } = useToolkitsStore()\n const { isLoading } = useGames()\n const { t } = useTranslation()\n\n // 如果数据不按游戏划分范围,直接返回内容\n if (!gameScoped || isGlobalMode) {\n return <>{children}</>\n }\n\n // 加载状态\n if (isLoading) {\n return (\n <div className=\"flex justify-center items-center h-[400px]\">\n <Spin />\n </div>\n )\n }\n\n // 未选择游戏时显示空状态\n if (!appId) {\n return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={t('RequireGame.description')} />\n }\n\n // 正常情况:使用 Fragment 包裹 children,key 用于在切换游戏时重置组件状态\n return <Fragment key={appId}>{children}</Fragment>\n}\n\nexport default RequireGame\n","export { default as RequireGame } from './RequireGame'\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport { LogoutOutlined, UserOutlined } from '@ant-design/icons'\nimport type { MenuProps } from 'antd'\nimport { Dropdown, Space } from 'antd'\nimport type { FC, KeyboardEvent } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\n\nconst UserDropdown: FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const {\n token: { user },\n context: { loginPath },\n clear,\n } = useToolkitsStore()\n\n const handleSignOut = () => {\n clear()\n navigate(loginPath)\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleSignOut()\n }\n }\n\n const handleDropdownKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }\n\n const items: MenuProps['items'] = [\n {\n key: '1',\n icon: <LogoutOutlined />,\n label: (\n <a role=\"button\" tabIndex={0} onClick={handleSignOut} onKeyDown={handleKeyDown}>\n {t('UserDropdown.signOutText')}\n </a>\n ),\n },\n ]\n\n return (\n <div>\n <Dropdown\n menu={{\n selectable: true,\n items,\n }}\n placement=\"bottomRight\"\n >\n <a\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.preventDefault()\n }}\n onKeyDown={handleDropdownKeyDown}\n >\n <Space align=\"center\">\n <span>{user?.authorityId}</span>\n <UserOutlined className=\"text-base\" />\n </Space>\n </a>\n </Dropdown>\n </div>\n )\n}\n\nexport default UserDropdown\n","export { default as UserDropdown } from './UserDropdown'\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react'\n\nimport logoUrl from './logo.png'\n\nexport type LogoProps = Omit<DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src' | 'alt'>\n\nconst Logo: FC<LogoProps> = props => {\n return <img src={logoUrl} alt=\"logo\" {...props} />\n}\n\nexport default Logo\n","export type { LogoProps } from './Logo'\nexport { default as Logo } from './Logo'\n","import { theme } from 'antd'\nimport { memo } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\n\nimport { useToolkitsStore } from '../toolkitsProvider'\n\ninterface LayoutHeaderProps {\n title?: string\n subtitle?: string\n}\n\nconst TRANSITION_EASING = 'all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)'\n\nconst LayoutHeader = memo<LayoutHeaderProps>(({ title, subtitle }) => {\n const {\n context: { homePath },\n layout: { collapsed },\n } = useToolkitsStore()\n const {\n token: { colorPrimary },\n } = theme.useToken()\n\n return (\n <div className=\"px-6 py-2 font-bold relative bg-linear-to-r from-white to-gray-50/30 h-auto flex flex-col justify-center backdrop-blur-sm\">\n <div className={`flex items-center w-full ${collapsed ? 'justify-center' : ''}`}>\n <Link\n to={homePath}\n className=\"transition-all duration-300 ease-out block rounded-lg p-1\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0.8 : 1,\n }}\n >\n <Logo\n width={36}\n className=\"object-contain block\"\n style={{\n transition: TRANSITION_EASING,\n }}\n />\n </Link>\n {title && (\n <div\n className=\"ml-4 overflow-hidden min-w-0\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0 : 1,\n width: collapsed ? '0px' : 'auto',\n marginLeft: collapsed ? '0px' : '16px',\n transform: collapsed ? 'translateX(-8px)' : 'translateX(0)',\n }}\n >\n <Link\n to={homePath}\n className=\"text-xl leading-tight transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block\"\n title={title}\n style={{\n color: colorPrimary,\n textShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n }}\n >\n {title}\n </Link>\n </div>\n )}\n </div>\n <div\n className=\"w-full mt-2 overflow-hidden\"\n style={{\n height: subtitle && !collapsed ? '20px' : '1px',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex items-center justify-center h-full w-full\">\n <div\n className=\"w-full border-t border-gray-200 absolute\"\n style={{\n opacity: !subtitle || collapsed ? 1 : 0,\n transition: TRANSITION_EASING,\n }}\n />\n {subtitle && (\n <div\n className=\"flex items-center w-full text-sm\"\n style={{\n opacity: collapsed ? 0 : 1,\n transform: collapsed ? 'translateY(-3px)' : 'translateY(0)',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex-1 border-t border-gray-200\"></div>\n <span className=\"px-3 text-gray-500 font-medium whitespace-nowrap\" title={subtitle}>\n {subtitle}\n </span>\n <div className=\"flex-1 border-t border-gray-200\"></div>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n})\n\nLayoutHeader.displayName = 'LayoutHeader'\n\nexport default LayoutHeader\n","import type { ItemType, MenuDividerType } from 'antd/es/menu/interface'\nimport { compact, isArray, isNil } from 'lodash-es'\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport type { Merge } from 'ts-essentials'\n\nimport type { NavItem, NavMenuItemGroupType, NavMenuItemType, NavSubMenuType } from './types'\n\n/**\n * 扁平化后的导航菜单项类型\n * 在原始菜单项基础上添加 keypath 和 groupKey 字段\n * - keypath: 记录从根到当前项的完整路径(不包括 group)\n * - groupKey: 记录当前项所在的菜单组 key(如果有)\n */\nexport type FlatNavMenuItem = Merge<\n NavMenuItemType,\n {\n keypath?: string[]\n groupKey?: string\n }\n>\n\n/**\n * 路由链接组件\n * 用于包装带路由的菜单项,将菜单项转换为 react-router-dom 的 Link 组件\n *\n * @param props.to - 路由地址\n * @param props.children - 链接内容(通常是菜单项的 label)\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst NavLink = (props: { to: string; children?: any }) => <Link to={props.to}>{props.children}</Link>\n\n/**\n * 从 label 中提取 title 文本\n * 优先使用用户提供的 title,否则使用 label(如果是字符串)\n * 主要用于菜单折叠时显示 tooltip\n *\n * @param label - 菜单项的 label,可以是字符串或 React 节点\n * @param customTitle - 用户自定义的 title\n * @returns 提取的 title 文本\n */\nfunction getMenuTitle(label: React.ReactNode, customTitle?: string): string {\n if (customTitle) {\n return customTitle\n }\n return typeof label === 'string' ? label : String(label || '')\n}\n\n/**\n * 将自定义导航配置转换为 Ant Design Menu 配置\n * - 为带路由的菜单项包装 Link 组件\n * - 递归处理子菜单和菜单组\n * - 保留分割线等特殊项\n * - 为子菜单设置 title 属性(用于折叠时显示 tooltip)\n *\n * @param items - 自定义导航配置项数组\n * @returns Ant Design Menu 可用的 ItemType 数组\n */\nexport function convertToAntdMenuItems(items?: NavItem[]): ItemType[] {\n if (!items) return []\n\n return items.map(item => {\n // 处理 null 或分割线:直接返回,保持原样\n if (isNil(item) || (item as MenuDividerType).type === 'divider') {\n return item as null | MenuDividerType\n }\n\n // 处理子菜单或菜单组:递归处理子项\n const itemWithChildren = item as NavSubMenuType | NavMenuItemGroupType\n if (itemWithChildren.children) {\n const { children, label, ...rest } = itemWithChildren\n const isGroup = (item as NavMenuItemGroupType).type === 'group'\n\n if (!isGroup) {\n // 子菜单:需要设置 title 用于折叠时显示 tooltip\n const subMenu = item as NavSubMenuType & { title?: string }\n return {\n ...rest,\n label,\n title: getMenuTitle(label, subMenu.title),\n children: convertToAntdMenuItems(children),\n } as ItemType\n } else {\n // 菜单组:不支持 title 属性,只递归处理子项\n return {\n ...rest,\n label,\n children: convertToAntdMenuItems(children),\n } as ItemType\n }\n }\n\n // 处理普通菜单项:为带路由的项包装 Link 组件\n const menuItem = item as NavMenuItemType\n const { route, label, title, ...rest } = menuItem\n const labelNode = route ? <NavLink to={route}>{label}</NavLink> : label\n\n return {\n ...rest,\n label: labelNode,\n title: getMenuTitle(label, title),\n }\n })\n}\n\n/**\n * 扁平化导航配置,提取所有叶子节点菜单项\n * - 递归遍历所有嵌套菜单\n * - 为每个菜单项注入完整的 key 路径(用于展开父菜单)\n * - 记录菜单组 key(用于侧边栏展开时自动展开 group)\n * - 跳过菜单组(不计入路径)\n * - 使用 compact 过滤掉 null 值\n *\n * @param items - 导航配置项数组\n * @param result - 结果数组(递归累积,默认空数组)\n * @param keypath - 当前路径(递归累积,默认空数组)\n * @param groupKey - 当前菜单组 key(递归累积,默认 undefined)\n * @returns 扁平化后的菜单项数组,每个项都包含 keypath 和 groupKey 字段\n *\n * @example\n * ```ts\n * const items = [\n * { key: 'group1', type: 'group', label: '分组1', children: [\n * { key: '1', label: '菜单1', children: [\n * { key: '1-1', label: '子菜单1-1', route: '/page1' }\n * ]}\n * ]}\n * ]\n * // 返回: [{ key: '1-1', label: '子菜单1-1', route: '/page1', keypath: ['1'], groupKey: 'group1' }]\n * ```\n */\nexport function flattenNavItems(\n items: NavItem[],\n result: FlatNavMenuItem[] = [],\n keypath: string[] = [],\n groupKey?: string,\n): FlatNavMenuItem[] {\n // 使用 compact 过滤掉 null 和 undefined 值\n compact(items).forEach(item => {\n const itemWithChildren = item as NavSubMenuType | NavMenuItemGroupType\n const children = itemWithChildren.children\n\n if (isArray(children) && children.length > 0) {\n const isGroup = (item as NavMenuItemGroupType).type === 'group'\n const currentGroupKey = isGroup && item.key ? (item.key as string) : groupKey\n // 计算新路径:菜单组不计入路径,只有子菜单计入\n // 这样菜单组只是视觉分组,不影响菜单展开逻辑\n const newKeypath = !isGroup && item.key ? [...keypath, item.key as string] : keypath\n\n // 递归处理子项,传递当前的 groupKey\n flattenNavItems(children, result, newKeypath, currentGroupKey)\n } else {\n // 叶子节点:添加到结果中,并注入当前路径和 groupKey\n result.push({ ...(item as NavMenuItemType), keypath, groupKey })\n }\n })\n\n return result\n}\n","import type { MenuProps } from 'antd'\nimport { Menu, Spin } from 'antd'\nimport { difference, find } from 'lodash-es'\nimport { useEffect, useRef } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\n\nimport type { NavItem } from './types'\nimport { convertToAntdMenuItems, flattenNavItems } from './utils'\n\n/**\n * 导航组件属性接口\n */\nexport interface NavProps {\n /** 导航菜单配置项数组 */\n items?: NavItem[]\n /** 菜单主题,支持 'light' | 'dark' */\n theme?: MenuProps['theme']\n /** 是否显示加载状态 */\n loading?: boolean\n}\n\n/**\n * 导航菜单组件\n * 基于 Ant Design Menu 组件,支持:\n * - 路由自动匹配和菜单项选中\n * - 自动展开包含当前路由的父菜单\n * - 状态持久化(展开/选中状态保存到 localStorage)\n * - 支持菜单折叠/展开\n * - 支持加载状态显示\n */\nconst Nav = (props: NavProps) => {\n const { items = [], loading, theme } = props\n const location = useLocation()\n const {\n layout: { collapsed },\n nav: { openKeys, selectedKeys, setOpenKeys, setSelectedKeys },\n } = useToolkitsStore()\n\n const flattenedItems = flattenNavItems(items)\n const antdMenuItems = convertToAntdMenuItems(items)\n const prevPathnameRef = useRef<string>(location.pathname)\n const prevCollapsedRef = useRef<boolean>(collapsed)\n\n // 合并路由变化和侧边栏展开的逻辑\n useEffect(() => {\n const currentPathname = location.pathname\n const isPathnameChanged = prevPathnameRef.current !== currentPathname\n const isSidebarExpanded = prevCollapsedRef.current && !collapsed\n\n // 如果路由未变化且侧边栏未展开,只更新 ref 后返回\n if (!isPathnameChanged && !isSidebarExpanded) {\n prevPathnameRef.current = currentPathname\n prevCollapsedRef.current = collapsed\n return\n }\n\n const match = find(flattenedItems, item => currentPathname === item.route)\n if (!match) {\n prevPathnameRef.current = currentPathname\n prevCollapsedRef.current = collapsed\n return\n }\n\n const { key, keypath, groupKey } = match\n const keysToOpen: string[] = []\n\n // 路由变化时更新选中项\n if (isPathnameChanged && selectedKeys[0] !== key) {\n setSelectedKeys([key as string])\n }\n\n // 需要展开 keypath 的情况:路由变化或侧边栏展开\n if (isPathnameChanged || isSidebarExpanded) {\n const missingKeypath = difference(keypath || [], openKeys)\n keysToOpen.push(...missingKeypath)\n }\n\n // 侧边栏展开时,恢复 group\n if (isSidebarExpanded && groupKey && !openKeys.includes(groupKey)) {\n keysToOpen.push(groupKey)\n }\n\n // 统一更新需要展开的 key\n if (keysToOpen.length > 0) {\n setOpenKeys([...openKeys, ...keysToOpen])\n }\n\n // 统一更新 ref\n prevPathnameRef.current = currentPathname\n prevCollapsedRef.current = collapsed\n }, [location.pathname, collapsed, flattenedItems, openKeys, selectedKeys, setOpenKeys, setSelectedKeys])\n\n if (loading) {\n return (\n <div className=\"flex justify-center items-center h-[calc(100vh-64px)]\">\n <Spin />\n </div>\n )\n }\n\n return (\n <Menu\n theme={theme}\n className=\"border-r-0\"\n items={antdMenuItems}\n mode=\"inline\"\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n inlineCollapsed={collapsed}\n onOpenChange={setOpenKeys}\n onSelect={({ selectedKeys: nextKeys }) => {\n setSelectedKeys(nextKeys as string[])\n }}\n />\n )\n}\n\nexport default Nav\n","import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'\nimport { Button, Divider, Layout as AntdLayout, Space, Spin, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Suspense } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { RequireGame } from '@/components/requireGame'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { UserDropdown } from '@/components/userDropdown'\n\nimport type { GameSelectProps } from './GameSelect'\nimport GameSelect from './GameSelect'\nimport LayoutHeader from './LayoutHeader'\nimport Nav from './Nav'\nimport type { Game, NavItem } from './types'\n\nconst { Header, Sider, Content } = AntdLayout\n\nconst HEADER_HEIGHT = 64\n\n/** Header 扩展项配置 */\nexport type HeaderExtra = { key: Key; children: ReactNode }\n\n/** Header 扩展区域配置 */\nexport interface HeaderExtraConfig {\n /** 左侧扩展项 */\n left?: HeaderExtra[]\n /** 右侧扩展项 */\n right?: HeaderExtra[]\n}\n\n/** 导航配置 */\nexport interface NavigationConfig {\n /** 导航菜单项 */\n items?: NavItem[]\n /** 菜单加载状态 */\n loading?: boolean\n}\n\n/** 路由匹配规则类型 */\nexport type RouteMatchRule = string | RegExp\n\n/** 游戏选择器配置 */\nexport interface GameSelectConfig<T extends Game = Game> {\n /** 游戏过滤函数 */\n filter?: GameSelectProps<T>['filter']\n /** 选项自定义函数 */\n options?: GameSelectProps<T>['options']\n /** 在这些路由路径下隐藏游戏选择器(支持字符串路径或正则表达式) */\n hideOnRoutes?: RouteMatchRule[]\n}\n\n/** Layout 组件属性 */\nexport interface LayoutProps<T extends Game = Game> {\n /** 应用标题(显示在侧边栏顶部) */\n title?: string\n /** 应用副标题(显示在标题下方) */\n subtitle?: string\n /** 导航配置 */\n navigation?: NavigationConfig\n /** 游戏选择器配置 */\n gameSelect?: GameSelectConfig<T>\n /** Header 扩展区域配置 */\n headerExtra?: HeaderExtraConfig\n}\n\n/**\n * 检查路径是否匹配路由规则\n */\nconst matchRoute = (pathname: string, rule: RouteMatchRule): boolean => {\n if (typeof rule === 'string') {\n // 支持前缀匹配(以 * 结尾)或精确匹配\n if (rule.endsWith('*')) {\n const prefix = rule.slice(0, -1)\n return pathname.startsWith(prefix)\n }\n return pathname === rule\n }\n // 正则表达式匹配\n if (rule instanceof RegExp) {\n return rule.test(pathname)\n }\n return false\n}\n\nconst Layout = <T extends Game = Game>(props: PropsWithChildren<LayoutProps<T>>) => {\n const { title, subtitle, navigation, gameSelect, headerExtra, children } = props\n const location = useLocation()\n\n const {\n token: { colorBgContainer, colorBorder },\n } = theme.useToken()\n\n const {\n context: { sidebarWidth, sidebarCollapsible, gameScoped, isGlobalMode },\n layout: { collapsed, toggleCollapsed },\n } = useToolkitsStore()\n\n // 检查当前路由是否在隐藏列表中\n const shouldHideOnCurrentRoute =\n gameSelect?.hideOnRoutes && gameSelect.hideOnRoutes.length > 0\n ? gameSelect.hideOnRoutes.some(rule => matchRoute(location.pathname, rule))\n : false\n\n // 计算是否显示游戏选择器\n const showGameSelect = !shouldHideOnCurrentRoute && gameScoped && !isGlobalMode\n\n return (\n <AntdLayout>\n <Sider\n collapsible={sidebarCollapsible}\n theme=\"light\"\n trigger={null}\n collapsed={collapsed}\n width={sidebarWidth}\n className=\"h-screen overflow-x-hidden overflow-y-auto border-r\"\n style={{ borderColor: colorBorder }}\n >\n <LayoutHeader title={title} subtitle={subtitle} />\n <Nav items={navigation?.items} loading={navigation?.loading} />\n </Sider>\n <AntdLayout>\n <Header style={{ background: colorBgContainer, paddingLeft: 16 }}>\n <div className=\"flex justify-between items-center h-full\">\n <Space size=\"small\" split={<Divider type=\"vertical\" />} className=\"mr-6\">\n {sidebarCollapsible && (\n <Button\n type=\"text\"\n icon={collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}\n className=\"text-base\"\n onClick={toggleCollapsed}\n />\n )}\n {showGameSelect && <GameSelect<T> filter={gameSelect?.filter} options={gameSelect?.options} />}\n {headerExtra?.left?.map(extra => (\n <span key={extra.key}>{extra.children}</span>\n ))}\n </Space>\n <Space size=\"small\" split={<Divider type=\"vertical\" />}>\n {headerExtra?.right?.map(extra => (\n <span key={extra.key}>{extra.children}</span>\n ))}\n <UserDropdown />\n </Space>\n </div>\n </Header>\n <Content className=\"overflow-auto px-4 py-6\" style={{ maxHeight: `calc(100vh - ${HEADER_HEIGHT}px)` }}>\n <Suspense\n fallback={\n <div className=\"flex justify-center items-center h-[200px]\">\n <Spin />\n </div>\n }\n >\n <RequireGame>{children}</RequireGame>\n </Suspense>\n </Content>\n </AntdLayout>\n </AntdLayout>\n )\n}\n\nexport default Layout\n","import type { ItemType, MenuItemGroupType, MenuItemType, SubMenuType } from 'antd/es/menu/interface'\nimport type { Merge } from 'ts-essentials'\n\ntype Area = 'all' | 'cn' | 'global'\n\ntype ScreenOrientation = 0 | 1 // 0:横屏 1:竖屏\n\nexport interface Game {\n id: number\n game_id: string | number\n game_group: string\n name: string\n screen_type: ScreenOrientation\n area: Area\n icon: string\n auth: string\n ctime: string\n mtime: string\n is_delete: 0 | 1\n is_new_game: 0 | 1\n server_type: string\n}\n\n/**\n * 导航菜单项类型\n * 扩展 antd MenuItemType,添加路由支持\n */\nexport type NavMenuItemType = Merge<\n MenuItemType,\n {\n /** react-router-dom 路由地址,用于菜单项点击时跳转 */\n route?: string\n }\n>\n\n/**\n * 导航子菜单类型\n * 使用接口来支持递归类型定义,允许嵌套子菜单\n */\nexport interface NavSubMenuType extends Omit<SubMenuType, 'children'> {\n /** 子菜单项数组,支持嵌套结构 */\n children?: NavItem[]\n}\n\n/**\n * 导航菜单组类型\n * 用于将多个菜单项分组显示,菜单组本身不计入路径\n */\nexport interface NavMenuItemGroupType extends Omit<MenuItemGroupType, 'children'> {\n /** 菜单组内的菜单项数组 */\n children?: NavItem[]\n}\n\n/**\n * 导航项联合类型\n * 包含所有支持的导航项类型:\n * - 特殊项(如分割线)\n * - 普通菜单项(NavMenuItemType)\n * - 子菜单(NavSubMenuType)\n * - 菜单组(NavMenuItemGroupType)\n */\nexport type NavItem =\n | Exclude<ItemType, SubMenuType | MenuItemGroupType | MenuItemType>\n | NavMenuItemType\n | NavSubMenuType\n | NavMenuItemGroupType\n","export { default as GameSelect, type GameSelectProps } from './GameSelect'\nexport {\n type GameSelectConfig,\n type HeaderExtra,\n type HeaderExtraConfig,\n default as Layout,\n type LayoutProps,\n type NavigationConfig,\n type RouteMatchRule,\n} from './Layout'\nexport * from './types'\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 code: number\n data: {\n list: T[]\n total: number\n }\n msg: string\n}\n\nexport interface QueryListPayload<Values = any> {\n page?: number\n size?: number\n filters?: Values\n}\n\n// 缓存配置\nexport interface CacheConfig {\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\n// 支持的 HTTP 请求方法类型\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'\n\n// 简化的请求配置\nexport interface QueryListRequestConfig extends CacheConfig {\n url: string\n method?: HttpMethod\n body?: FormData | Record<string | number, any>\n searchParams?: Record<string | number, any>\n headers?: Record<string, string>\n}\n\nexport type QueryListRequestConfigType<Values = any> =\n | QueryListRequestConfig\n | ((payload: QueryListPayload<Values>) => QueryListRequestConfig)\n\nexport enum QueryListAction {\n Confirm,\n Reset,\n Jump,\n Init,\n}\n\nexport interface QueryListRef<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>> {\n data: Data | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n}\n\nexport interface QueryListDataAdapter<Item extends AnyObject = AnyObject> {\n total?: number\n items?: Item[]\n}\n\nexport type QueryListDataAdapterConfig<Item extends AnyObject = AnyObject, Data = ListResponse<Item>> =\n | QueryListDataAdapter<Item>\n | ((data: Data) => QueryListDataAdapter<Item>)\n\nexport interface QueryListProps<Item extends AnyObject = AnyObject, Values = AnyObject, Data = ListResponse<Item>>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选的标识符,用于标识和外部控制,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n onePage?: boolean // 无分页\n defaultSize?: number\n pageSizeOptions?: number[]\n request: QueryListRequestConfigType<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: QueryListAction, form: FormInstance<Values>, data?: Data) => void\n afterError?: (error: Error, action: QueryListAction, form: FormInstance<Values>) => void\n dataAdapter?: QueryListDataAdapterConfig<Item, Data>\n footer?: (data: Data | undefined) => ReactNode\n}\n\n// 常量定义\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000 // 默认缓存5分钟\nconst DEFAULT_STALE_TIME = 30 * 1000 // 默认30秒内数据新鲜\n\n// 无请求体的 HTTP 方法\nconst BODYLESS_METHODS: HttpMethod[] = ['GET', 'HEAD', 'OPTIONS']\n\n// 支持请求体的 HTTP 方法\nconst BODY_SUPPORTED_METHODS: HttpMethod[] = ['POST', 'PUT', 'PATCH', 'DELETE']\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\n\n// 生成唯一 identifier 的函数\nconst generateUniqueIdentifier = (): string => {\n return `queryList_${Date.now()}_${++identifierCounter}`\n}\n\nconst InternalQueryList = <Item extends AnyObject = AnyObject, Values extends AnyObject = any, Data = any>(\n props: QueryListProps<Item, Values, Data>,\n ref: Ref<QueryListRef<Item, Values, Data>>,\n) => {\n const { t } = useTranslation()\n\n const {\n form,\n identifier,\n code,\n onePage,\n buttonsAlign,\n showReset,\n defaultSize = 10,\n refreshInterval = 0,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n footer,\n pageSizeOptions,\n request,\n dataAdapter,\n ...tableProps\n } = props\n\n const [formInstance] = Form.useForm<Values>(form)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => {\n return identifier || generateUniqueIdentifier()\n }, [identifier])\n const action = useRef<QueryListAction>(QueryListAction.Init)\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n const [isValid, setIsValid] = useState(false)\n const isInitialized = useRef(false)\n const isUpdatingFromPayload = useRef(false) // 防止循环更新的标志\n\n // 仅订阅当前 identifier 的 payload,避免因其它实例变化导致不必要重渲染\n const subscribedPayload = useQueryListStore(s => s.getPayload(finalIdentifier))\n const ky = useKy()\n\n const { page, size = defaultSize, filters } = subscribedPayload\n\n const payload = { page, size, filters }\n\n // 处理 request 配置(对象或函数)\n const resolvedRequest = typeof request === 'function' ? request(payload) : request\n\n const {\n url,\n method = 'GET',\n body,\n searchParams,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = resolvedRequest\n\n // 验证请求方法\n const normalizedMethod = method.toUpperCase() as HttpMethod\n const allSupportedMethods: HttpMethod[] = [...BODYLESS_METHODS, ...BODY_SUPPORTED_METHODS]\n\n if (!allSupportedMethods.includes(normalizedMethod)) {\n console.warn(`QueryList: 不支持的 HTTP 请求方法 \"${method}\",将使用 GET 方法`)\n }\n\n // 根据请求方法决定参数传递方式\n const isBodylessMethod = BODYLESS_METHODS.includes(normalizedMethod)\n\n const defaultRequestData = { ...filters, ...(!onePage && { page, size }) }\n\n // 智能参数传递策略:\n // 1. 优先使用用户明确传入的 body 或 searchParams\n // 2. 若用户未指定,根据 HTTP 方法自动选择合适的传递方式\n // 3. 避免同时设置 body 和 searchParams(除非用户明确指定)\n let requestBody: any\n let requestSearchParams: any\n\n if (body !== undefined) {\n // 用户传入了 body,优先使用\n requestBody = body\n requestSearchParams = searchParams\n } else if (searchParams !== undefined) {\n // 用户只传入了 searchParams\n requestSearchParams = searchParams\n requestBody = undefined\n } else {\n // 都未传入,根据方法类型自动选择\n if (isBodylessMethod) {\n requestSearchParams = defaultRequestData\n requestBody = undefined\n } else {\n requestBody = defaultRequestData\n requestSearchParams = undefined\n }\n }\n\n const requestHeaders = headers\n\n const shouldPoll = useRef(false)\n\n // 构建更完整的 queryKey,包含所有影响请求结果的参数\n const queryKey = [\n 'queryList',\n url,\n finalIdentifier,\n normalizedMethod,\n page,\n size,\n filters,\n requestBody,\n requestSearchParams,\n requestHeaders,\n ] as const\n\n const { data, isLoading, refetch } = useQuery({\n queryKey,\n queryFn: async () => {\n try {\n const kyOptions: KyOptions = {\n method: normalizedMethod,\n searchParams: requestSearchParams,\n headers: requestHeaders,\n }\n\n // 只有非无请求体方法才允许有 body\n if (requestBody && !isBodylessMethod) {\n if (requestBody instanceof FormData) {\n // FormData 使用 body 方式传递\n kyOptions.body = requestBody\n } else if (typeof requestBody === 'string') {\n // 字符串直接作为 body\n kyOptions.body = requestBody\n } else {\n // 对象类型使用 .json 方式传递\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, response)\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n retry: (failureCount, retryError) => {\n // 自定义重试逻辑\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false // 认证错误不重试\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000), // 指数退避\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n // 缓存配置\n gcTime: cacheTime,\n staleTime,\n enabled: accessible && isValid,\n })\n\n // 处理 dataAdapter 配置\n const resolvedDataAdapter = useMemo(() => {\n const adapter = dataAdapter\n const defaultAdapter: QueryListDataAdapter<Item> = {\n total: (data as ListResponse<Item>)?.data?.total,\n items: (data as ListResponse<Item>)?.data?.list,\n }\n\n if (typeof adapter === 'function') {\n return {\n ...defaultAdapter,\n ...adapter(data as Data),\n }\n }\n return {\n ...defaultAdapter,\n ...adapter,\n }\n }, [dataAdapter, data])\n\n // 在组件挂载时注册实例,避免因 queryKey/refetch 身份变化反复注册\n useEffect(() => {\n useQueryListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch)\n return () => {\n useQueryListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url])\n\n const dataSource = resolvedDataAdapter.items\n const total = resolvedDataAdapter.total\n\n const pagination = useMemo(() => {\n if (onePage) return false\n\n return {\n pageSizeOptions,\n showSizeChanger: true,\n showQuickJumper: true,\n current: page,\n pageSize: size,\n total,\n onChange: async (currentPage: number, currentSize: number) => {\n action.current = QueryListAction.Jump\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: currentPage,\n size: currentSize,\n })\n },\n }\n }, [onePage, pageSizeOptions, page, size, total, finalIdentifier])\n\n const onConfirm = useCallback(async () => {\n action.current = QueryListAction.Confirm\n try {\n await formInstance.validateFields()\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const onReset = useCallback(async () => {\n action.current = QueryListAction.Reset\n formInstance.resetFields()\n\n try {\n await formInstance.validateFields({ validateOnly: true })\n setIsValid(true)\n useQueryListStore.getState().refetch(finalIdentifier, {\n page: 1,\n filters: formInstance.getFieldsValue(),\n })\n } catch {\n setIsValid(false)\n }\n }, [formInstance, finalIdentifier])\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isLoading}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(formInstance) as ReactElement<{ onKeyUp?: React.KeyboardEventHandler }>, {\n onKeyUp: (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={formInstance} />\n )\n\n const tableExtraRenderer = typeof tableExtra === 'function' ? tableExtra(formInstance, data) : tableExtra\n\n const renderFooter: TableProps<Item>['footer'] = footer ? () => <>{footer(data)}</> : undefined\n\n // 监听 payload.filters 变化并同步更新表单实例\n useEffect(() => {\n if (!isInitialized.current || isUpdatingFromPayload.current) {\n return\n }\n\n // 获取当前表单的值\n const currentFormValues = formInstance.getFieldsValue()\n\n // 如果 payload 中的 filters 与当前表单值不同,则更新表单\n if (filters && !isEqual(currentFormValues, filters)) {\n isUpdatingFromPayload.current = true\n formInstance.setFieldsValue(filters)\n // 使用 setTimeout 确保在下一个事件循环中重置标志\n setTimeout(() => {\n isUpdatingFromPayload.current = false\n }, 0)\n }\n }, [filters, formInstance])\n\n // 首次挂载时自动校验表单,校验通过则更新 payload 并允许请求\n useEffect(() => {\n if (!accessible || isInitialized.current) {\n return\n }\n\n const init = async () => {\n console.log('QueryList init starting')\n try {\n formInstance.resetFields()\n const value = await formInstance.validateFields({ validateOnly: true })\n console.log('QueryList init validation success:', value)\n useQueryListStore.getState().updatePayload(finalIdentifier, {\n page: 1,\n filters: value,\n })\n setIsValid(true)\n console.log('QueryList init completed, isValid set to true')\n } catch (error) {\n console.log('QueryList init validation failed:', error)\n setIsValid(false)\n } finally {\n isInitialized.current = true\n }\n }\n\n const rafId = requestAnimationFrame(() => {\n Promise.resolve().then(init)\n })\n\n return () => {\n if (rafId) {\n cancelAnimationFrame(rafId)\n }\n }\n }, [accessible, finalIdentifier, formInstance])\n\n useImperativeHandle(\n ref,\n () => ({\n data,\n dataSource,\n form: formInstance,\n refetch,\n }),\n [data, dataSource, formInstance, refetch],\n )\n\n if (isChecking) {\n return (\n <div className=\"flex justify-center items-center h-[300px]\">\n <Spin />\n </div>\n )\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n return (\n <div>\n {formRenderer}\n {tableExtraRenderer}\n <Table\n {...tableProps}\n dataSource={dataSource}\n loading={isLoading}\n pagination={pagination}\n footer={renderFooter}\n />\n </div>\n )\n}\n\nconst QueryList = forwardRef(InternalQueryList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: QueryListProps<Item, Values, Data> & { ref?: Ref<QueryListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default QueryList\n","export type { QueryListPayload, QueryListProps, QueryListRef } from './QueryList'\nexport { default as QueryList, QueryListAction } from './QueryList'\nexport { useQueryListStore } from './stores'\n","import { Button, Result, Spin } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface RequireAuthProps {\n /** 权限码 */\n code: string\n /** 请求配置 */\n config?: KyOptions\n /** 无权限时点击返回按钮跳转的路径,默认为首页 '/' */\n redirectPath?: string\n}\n\n/**\n * 授权保护组件\n * 根据权限码控制子组件的访问权限\n * - 有权限:渲染子组件\n * - 无权限:显示 403 无权限页面,可点击按钮返回指定路径\n * - 加载中:显示加载动画\n */\nconst RequireAuth: FC<PropsWithChildren<RequireAuthProps>> = props => {\n const { code, config, redirectPath = '/', children } = props\n const { data: accessible, isLoading } = useAuth(code, config)\n const { t } = useTranslation()\n const navigate = useNavigate()\n\n if (isLoading) {\n return (\n <div className=\"flex justify-center items-center h-[200px]\">\n <Spin />\n </div>\n )\n }\n\n if (!accessible) {\n return (\n <Result\n status=\"403\"\n subTitle={t('global.noEntitlement')}\n extra={\n <Button type=\"primary\" onClick={() => navigate(redirectPath)}>\n {t('global.back')}\n </Button>\n }\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport default RequireAuth\n","export type { RequireAuthProps } from './RequireAuth'\nexport { default as RequireAuth } from './RequireAuth'\n","export * from './authButton'\nexport * from './dynamicTags'\nexport * from './expandableParagraph'\nexport * from './filterFormWrapper'\nexport * from './highlight'\nexport * from './infiniteList'\nexport * from './layout'\nexport * from './logo'\nexport * from './queryList'\nexport * from './requireAuth'\nexport * from './requireGame'\nexport * from './toolkitsProvider'\nexport * from './userDropdown'\n","import { create } from 'zustand'\n\nimport type { VisibilityState } from '@/utils'\nimport { createVisibilityStoreConfig } from '@/utils'\n\n// 延迟创建 store,避免 splitting: false 时的模块初始化顺序问题\nlet storeHook: (() => VisibilityState) | null = null\n\n/**\n * Modal store hook\n * 使用 lazy initialization 确保 create 函数在调用时已经准备好\n */\nexport function useModalStore(): VisibilityState {\n if (!storeHook) {\n // 延迟创建,确保 create 函数已经被正确初始化\n storeHook = create<VisibilityState>()(createVisibilityStoreConfig())\n }\n return storeHook()\n}\n","import type { ModalProps } from 'antd'\nimport { Modal } from 'antd'\nimport { type ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useModalStore } from './stores'\n\nexport interface UseModalOperation {\n hide: () => void\n}\n\nexport interface UseModalProps extends Omit<ModalProps, 'open' | 'confirmLoading' | 'onOk' | 'onCancel'> {\n content?: ReactNode | ((operation: UseModalOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n}\n\nexport function useModal(props: UseModalProps) {\n const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props\n\n const _id = useMemo(() => generateId(), [])\n\n // 调用 useModalStore hook 获取 store 方法\n const { show, hide, isOpen, cleanup } = useModalStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onCancel: ModalProps['onCancel'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const onOk = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n _hide()\n await afterClose?.()\n } catch (error) {\n console.error('Modal confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm, _hide, afterClose])\n\n const internalModal = (\n <Modal {...modalProps} open={open} confirmLoading={confirmLoading} onOk={onOk} onCancel={onCancel}>\n {isRenderFunction ? <>{content({ hide: _hide })}</> : <>{content}</>}\n </Modal>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n modal: internalModal,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useModal, type UseModalOperation, type UseModalProps } from './modal'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n modal: ReactNode\n}\n\nexport function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormModalProps<Values, ExtraValues>,\n): UseFormModalReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, modal } = useModal({\n ...modalProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? <>{content(internalExtraValues, operation)}</> : <>{content}</>}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n modal,\n }\n}\n","export { useFormModal, type UseFormModalProps } from './formModal'\nexport { useModal } from './modal'\nexport { useModalStore } from './stores'\n","import { useMutation, useQueryClient } from '@tanstack/react-query'\n\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function useCreateMenu() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.create,\n mutationFn: (arg: Omit<MenuListItem, 'id'>) => post('/api/usystem/menu/set', { ...arg, id: 0, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useUpdateMenu() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.update,\n mutationFn: (arg: MenuListItem) => post('/api/usystem/menu/set', { ...arg, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useRemoveMenu() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.delete,\n mutationFn: (id: number) => post('/api/usystem/menu/delete', null, { searchParams: { id } }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n","import type { TableColumnsType } from 'antd'\nimport { App, Button, Card, Popconfirm, Space } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\nimport { Highlight } from '@/components/highlight'\nimport { QueryList, useQueryListStore } from '@/components/queryList'\nimport { useTranslation } from '@/locale'\nimport { useMenuList } from '@/services'\nimport type { MenuListItem } from '@/types'\n\nimport { useRemoveMenu } from '../../services'\n\nconst MenuItemList = () => {\n const { t } = useTranslation()\n const { message } = App.useApp()\n const remove = useRemoveMenu()\n const { refetch } = useQueryListStore()\n const { refetch: refetchMenuList } = useMenuList()\n const navigate = useNavigate()\n\n const columns: TableColumnsType<MenuListItem> = [\n {\n title: '菜单名称',\n dataIndex: 'category',\n key: 'category',\n },\n {\n title: '前端路由',\n dataIndex: 'front_route',\n },\n {\n title: 'Order',\n dataIndex: 'order',\n },\n {\n title: 'Is Common',\n dataIndex: 'is_common',\n key: 'is_common',\n render: value => (value ? '是' : '否'),\n },\n {\n title: '模板名称',\n dataIndex: 'model_name',\n key: 'model_name',\n },\n // {\n // title: '是否预设',\n // dataIndex: 'is_model',\n // key: 'is_model',\n // render: value => (value ? '否' : '是'),\n // },\n {\n title: '操作',\n key: 'action',\n width: 150,\n align: 'center',\n render(_, record) {\n if (record.is_model) {\n return (\n <Space size=\"small\">\n <Button\n type=\"link\"\n onClick={() => {\n navigate(`./update/${record.id}`)\n }}\n >\n {t('global.update')}\n </Button>\n <Popconfirm\n title=\"删除菜单\"\n placement=\"topRight\"\n description={<Highlight texts={[record.category]}>确定要删除菜单 {record.category} 吗?</Highlight>}\n onConfirm={async () => {\n await remove.mutateAsync(record.id)\n // 触发所有相关实例的刷新\n refetch('menu-item-list')\n refetchMenuList()\n message.success('删除成功')\n }}\n >\n <Button danger type=\"link\" size=\"small\">\n {t('global.delete')}\n </Button>\n </Popconfirm>\n </Space>\n )\n }\n\n return null\n },\n },\n ]\n\n return (\n <>\n <Card\n title=\"菜单管理\"\n extra={\n <Button\n type=\"primary\"\n onClick={() => {\n navigate('./create')\n }}\n >\n 创建菜单项\n </Button>\n }\n >\n <QueryList<MenuListItem, undefined, { data: MenuListItem[] }>\n identifier=\"menu-item-list\"\n onePage={true}\n code=\"9900001\"\n rowKey=\"id\"\n columns={columns}\n request={{\n url: '/api/usystem/menu/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n items: data?.data,\n })}\n />\n </Card>\n </>\n )\n}\n\nexport default MenuItemList\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs'\n }\n};\n\nexport { config as default };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport { curry as default };\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport { isObject as default };\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n\n/**\n * logs deprecation message\n */\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport { validators as default, errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport { compose as default };\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport { merge as default };\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\n\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport { CANCELATION_MESSAGE, makeCancelable as default };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\nvar _excluded = [\"monaco\"];\n\n/** the local state of the module */\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, _excluded);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n\n/**\n * configures the monaco loader\n */\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (loaded) {\n var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */;\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n\n/**\n * store monaco instance in local state\n */\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport { loader as default };\n","import loader from './loader/index.js';\n\n\n\nexport { loader as default };\n","import React, { type PropsWithChildren } from 'react';\n\nimport styles from './styles';\n\nfunction Loading({ children }: PropsWithChildren) {\n return <div style={styles.container}>{children}</div>;\n}\n\nexport default Loading;\n","import React from 'react';\n\nimport styles from './styles';\nimport Loading from '../Loading';\nimport { type ContainerProps } from './types';\n\n// ** forwardref render functions do not support proptypes or defaultprops **\n// one of the reasons why we use a separate prop for passing ref instead of using forwardref\n\nfunction MonacoContainer({\n width,\n height,\n isEditorReady,\n loading,\n _ref,\n className,\n wrapperProps,\n}: ContainerProps) {\n return (\n <section style={{ ...styles.wrapper, width, height }} {...wrapperProps}>\n {!isEditorReady && <Loading>{loading}</Loading>}\n <div\n ref={_ref}\n style={{ ...styles.fullWidth, ...(!isEditorReady && styles.hide) }}\n className={className}\n />\n </section>\n );\n}\n\nexport default MonacoContainer;\n","import { useEffect, type EffectCallback } from 'react';\n\nfunction useMount(effect: EffectCallback) {\n useEffect(effect, []);\n}\n\nexport default useMount;\n","import { useEffect, useRef, type DependencyList, type EffectCallback } from 'react';\n\nfunction useUpdate(effect: EffectCallback, deps: DependencyList, applyChanges = true) {\n const isInitialMount = useRef(true);\n\n useEffect(\n isInitialMount.current || !applyChanges\n ? () => {\n isInitialMount.current = false;\n }\n : effect,\n deps,\n );\n}\n\nexport default useUpdate;\n","import { type Monaco } from '..';\n\n/**\n * noop is a helper function that does nothing\n * @returns undefined\n */\nfunction noop() {\n /** no-op */\n}\n\n/**\n * getOrCreateModel is a helper function that will return a model if it exists\n * or create a new model if it does not exist.\n * This is useful for when you want to create a model for a file that may or may not exist yet.\n * @param monaco The monaco instance\n * @param value The value of the model\n * @param language The language of the model\n * @param path The path of the model\n * @returns The model that was found or created\n */\nfunction getOrCreateModel(monaco: Monaco, value: string, language: string, path: string) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\n\n/**\n * getModel is a helper function that will return a model if it exists\n * or return undefined if it does not exist.\n * @param monaco The monaco instance\n * @param path The path of the model\n * @returns The model that was found or undefined\n */\nfunction getModel(monaco: Monaco, path: string) {\n return monaco.editor.getModel(createModelUri(monaco, path));\n}\n\n/**\n * createModel is a helper function that will create a new model\n * @param monaco The monaco instance\n * @param value The value of the model\n * @param language The language of the model\n * @param path The path of the model\n * @returns The model that was created\n */\nfunction createModel(monaco: Monaco, value: string, language?: string, path?: string) {\n return monaco.editor.createModel(\n value,\n language,\n path ? createModelUri(monaco, path) : undefined,\n );\n}\n\n/**\n * createModelUri is a helper function that will create a new model uri\n * @param monaco The monaco instance\n * @param path The path of the model\n * @returns The model uri that was created\n */\nfunction createModelUri(monaco: Monaco, path: string) {\n return monaco.Uri.parse(path);\n}\n\nexport { noop, getOrCreateModel };\n","'use client';\n\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport loader from '@monaco-editor/loader';\n\nimport MonacoContainer from '../MonacoContainer';\nimport useMount from '../hooks/useMount';\nimport useUpdate from '../hooks/useUpdate';\nimport { noop, getOrCreateModel } from '../utils';\nimport { type DiffEditorProps, type MonacoDiffEditor } from './types';\nimport { type Monaco } from '..';\n\nfunction DiffEditor({\n original,\n modified,\n language,\n originalLanguage,\n modifiedLanguage,\n originalModelPath,\n modifiedModelPath,\n keepCurrentOriginalModel = false,\n keepCurrentModifiedModel = false,\n theme = 'light',\n loading = 'Loading...',\n options = {},\n height = '100%',\n width = '100%',\n className,\n wrapperProps = {},\n beforeMount = noop,\n onMount = noop,\n}: DiffEditorProps) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const editorRef = useRef<MonacoDiffEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const preventCreation = useRef(false);\n\n useMount(() => {\n const cancelable = loader.init();\n\n cancelable\n .then((monaco) => (monacoRef.current = monaco) && setIsMonacoMounting(false))\n .catch(\n (error) =>\n error?.type !== 'cancelation' && console.error('Monaco initialization: error:', error),\n );\n\n return () => (editorRef.current ? disposeEditor() : cancelable.cancel());\n });\n\n useUpdate(\n () => {\n if (editorRef.current && monacoRef.current) {\n const originalEditor = editorRef.current.getOriginalEditor();\n const model = getOrCreateModel(\n monacoRef.current,\n original || '',\n originalLanguage || language || 'text',\n originalModelPath || '',\n );\n\n if (model !== originalEditor.getModel()) {\n originalEditor.setModel(model);\n }\n }\n },\n [originalModelPath],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n if (editorRef.current && monacoRef.current) {\n const modifiedEditor = editorRef.current.getModifiedEditor();\n const model = getOrCreateModel(\n monacoRef.current,\n modified || '',\n modifiedLanguage || language || 'text',\n modifiedModelPath || '',\n );\n\n if (model !== modifiedEditor.getModel()) {\n modifiedEditor.setModel(model);\n }\n }\n },\n [modifiedModelPath],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const modifiedEditor = editorRef.current!.getModifiedEditor();\n if (modifiedEditor.getOption(monacoRef.current!.editor.EditorOption.readOnly)) {\n modifiedEditor.setValue(modified || '');\n } else {\n if (modified !== modifiedEditor.getValue()) {\n modifiedEditor.executeEdits('', [\n {\n range: modifiedEditor.getModel()!.getFullModelRange(),\n text: modified || '',\n forceMoveMarkers: true,\n },\n ]);\n\n modifiedEditor.pushUndoStop();\n }\n }\n },\n [modified],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.getModel()?.original.setValue(original || '');\n },\n [original],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const { original, modified } = editorRef.current!.getModel()!;\n\n monacoRef.current!.editor.setModelLanguage(original, originalLanguage || language || 'text');\n monacoRef.current!.editor.setModelLanguage(modified, modifiedLanguage || language || 'text');\n },\n [language, originalLanguage, modifiedLanguage],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n monacoRef.current?.editor.setTheme(theme);\n },\n [theme],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.updateOptions(options);\n },\n [options],\n isEditorReady,\n );\n\n const setModels = useCallback(() => {\n if (!monacoRef.current) return;\n beforeMountRef.current(monacoRef.current);\n const originalModel = getOrCreateModel(\n monacoRef.current,\n original || '',\n originalLanguage || language || 'text',\n originalModelPath || '',\n );\n\n const modifiedModel = getOrCreateModel(\n monacoRef.current,\n modified || '',\n modifiedLanguage || language || 'text',\n modifiedModelPath || '',\n );\n\n editorRef.current?.setModel({\n original: originalModel,\n modified: modifiedModel,\n });\n }, [\n language,\n modified,\n modifiedLanguage,\n original,\n originalLanguage,\n originalModelPath,\n modifiedModelPath,\n ]);\n\n const createEditor = useCallback(() => {\n if (!preventCreation.current && containerRef.current) {\n editorRef.current = monacoRef.current!.editor.createDiffEditor(containerRef.current, {\n automaticLayout: true,\n ...options,\n });\n\n setModels();\n\n monacoRef.current?.editor.setTheme(theme);\n\n setIsEditorReady(true);\n preventCreation.current = true;\n }\n }, [options, theme, setModels]);\n\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current!, monacoRef.current!);\n }\n }, [isEditorReady]);\n\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n function disposeEditor() {\n const models = editorRef.current?.getModel();\n\n if (!keepCurrentOriginalModel) {\n models?.original?.dispose();\n }\n\n if (!keepCurrentModifiedModel) {\n models?.modified?.dispose();\n }\n\n editorRef.current?.dispose();\n }\n\n return (\n <MonacoContainer\n width={width}\n height={height}\n isEditorReady={isEditorReady}\n loading={loading}\n _ref={containerRef}\n className={className}\n wrapperProps={wrapperProps}\n />\n );\n}\n\nexport default DiffEditor;\n","import { useEffect, useRef } from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n\nexport default usePrevious;\n","'use client';\n\nimport React, { useState, useEffect, useRef, useCallback } from 'react';\nimport loader from '@monaco-editor/loader';\nimport useMount from '../hooks/useMount';\nimport useUpdate from '../hooks/useUpdate';\nimport usePrevious from '../hooks/usePrevious';\nimport { type IDisposable, type editor } from 'monaco-editor';\nimport { noop, getOrCreateModel } from '../utils';\nimport { type EditorProps } from './types';\nimport { type Monaco } from '..';\nimport MonacoContainer from '../MonacoContainer';\n\nconst viewStates = new Map();\n\nfunction Editor({\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n /* === */\n theme = 'light',\n line,\n loading = 'Loading...',\n options = {},\n overrideServices = {},\n saveViewState = true,\n keepCurrentModel = false,\n /* === */\n width = '100%',\n height = '100%',\n className,\n wrapperProps = {},\n /* === */\n beforeMount = noop,\n onMount = noop,\n onChange,\n onValidate = noop,\n}: EditorProps) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const monacoRef = useRef<Monaco | null>(null);\n const editorRef = useRef<editor.IStandaloneCodeEditor | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const subscriptionRef = useRef<IDisposable>();\n const valueRef = useRef(value);\n const previousPath = usePrevious(path);\n const preventCreation = useRef(false);\n const preventTriggerChangeEvent = useRef<boolean>(false);\n\n useMount(() => {\n const cancelable = loader.init();\n\n cancelable\n .then((monaco) => (monacoRef.current = monaco) && setIsMonacoMounting(false))\n .catch(\n (error) =>\n error?.type !== 'cancelation' && console.error('Monaco initialization: error:', error),\n );\n\n return () => (editorRef.current ? disposeEditor() : cancelable.cancel());\n });\n\n useUpdate(\n () => {\n const model = getOrCreateModel(\n monacoRef.current!,\n defaultValue || value || '',\n defaultLanguage || language || '',\n path || defaultPath || '',\n );\n\n if (model !== editorRef.current?.getModel()) {\n if (saveViewState) viewStates.set(previousPath, editorRef.current?.saveViewState());\n editorRef.current?.setModel(model);\n if (saveViewState) editorRef.current?.restoreViewState(viewStates.get(path));\n }\n },\n [path],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.updateOptions(options);\n },\n [options],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n if (!editorRef.current || value === undefined) return;\n if (editorRef.current.getOption(monacoRef.current!.editor.EditorOption.readOnly)) {\n editorRef.current.setValue(value);\n } else if (value !== editorRef.current.getValue()) {\n preventTriggerChangeEvent.current = true;\n editorRef.current.executeEdits('', [\n {\n range: editorRef.current.getModel()!.getFullModelRange(),\n text: value,\n forceMoveMarkers: true,\n },\n ]);\n\n editorRef.current.pushUndoStop();\n preventTriggerChangeEvent.current = false;\n }\n },\n [value],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const model = editorRef.current?.getModel();\n if (model && language) monacoRef.current?.editor.setModelLanguage(model, language);\n },\n [language],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188\n if (line !== undefined) {\n editorRef.current?.revealLine(line);\n }\n },\n [line],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n monacoRef.current?.editor.setTheme(theme);\n },\n [theme],\n isEditorReady,\n );\n\n const createEditor = useCallback(() => {\n if (!containerRef.current || !monacoRef.current) return;\n if (!preventCreation.current) {\n beforeMountRef.current(monacoRef.current);\n const autoCreatedModelPath = path || defaultPath;\n\n const defaultModel = getOrCreateModel(\n monacoRef.current,\n value || defaultValue || '',\n defaultLanguage || language || '',\n autoCreatedModelPath || '',\n );\n\n editorRef.current = monacoRef.current?.editor.create(\n containerRef.current,\n {\n model: defaultModel,\n automaticLayout: true,\n ...options,\n },\n overrideServices,\n );\n\n saveViewState && editorRef.current.restoreViewState(viewStates.get(autoCreatedModelPath));\n\n monacoRef.current.editor.setTheme(theme);\n\n if (line !== undefined) {\n editorRef.current.revealLine(line);\n }\n\n setIsEditorReady(true);\n preventCreation.current = true;\n }\n }, [\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n options,\n overrideServices,\n saveViewState,\n theme,\n line,\n ]);\n\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current!, monacoRef.current!);\n }\n }, [isEditorReady]);\n\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n // subscription\n // to avoid unnecessary updates (attach - dispose listener) in subscription\n valueRef.current = value;\n\n // onChange\n useEffect(() => {\n if (isEditorReady && onChange) {\n subscriptionRef.current?.dispose();\n subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => {\n if (!preventTriggerChangeEvent.current) {\n onChange(editorRef.current!.getValue(), event);\n }\n });\n }\n }, [isEditorReady, onChange]);\n\n // onValidate\n useEffect(() => {\n if (isEditorReady) {\n const changeMarkersListener = monacoRef.current!.editor.onDidChangeMarkers((uris) => {\n const editorUri = editorRef.current!.getModel()?.uri;\n\n if (editorUri) {\n const currentEditorHasMarkerChanges = uris.find((uri) => uri.path === editorUri.path);\n if (currentEditorHasMarkerChanges) {\n const markers = monacoRef.current!.editor.getModelMarkers({\n resource: editorUri,\n });\n onValidate?.(markers);\n }\n }\n });\n\n return () => {\n changeMarkersListener?.dispose();\n };\n }\n return () => {\n // eslint happy\n };\n }, [isEditorReady, onValidate]);\n\n function disposeEditor() {\n subscriptionRef.current?.dispose();\n\n if (keepCurrentModel) {\n saveViewState && viewStates.set(path, editorRef.current!.saveViewState());\n } else {\n editorRef.current!.getModel()?.dispose();\n }\n\n editorRef.current!.dispose();\n }\n\n return (\n <MonacoContainer\n width={width}\n height={height}\n isEditorReady={isEditorReady}\n loading={loading}\n _ref={containerRef}\n className={className}\n wrapperProps={wrapperProps}\n />\n );\n}\n\nexport default Editor;\n","import loader from '@monaco-editor/loader';\nexport { loader };\n\nimport DiffEditor from './DiffEditor';\nexport * from './DiffEditor/types';\nexport { DiffEditor };\n\nimport useMonaco from './hooks/useMonaco';\nexport { useMonaco };\n\nimport Editor from './Editor';\nexport * from './Editor/types';\nexport { Editor };\nexport default Editor;\n\n// Monaco\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nexport type Monaco = typeof monaco;\n\n// Default themes\nexport type Theme = 'vs-dark' | 'light';\n","import { type CSSProperties } from 'react';\n\nconst styles: Record<string, CSSProperties> = {\n wrapper: {\n display: 'flex',\n position: 'relative',\n textAlign: 'initial',\n },\n fullWidth: {\n width: '100%',\n },\n hide: {\n display: 'none',\n },\n};\n\nexport default styles;\n","import { type CSSProperties } from 'react';\n\nconst styles: Record<string, CSSProperties> = {\n container: {\n display: 'flex',\n height: '100%',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n};\n\nexport default styles;\n","import Loading from './Loading';\n\nexport default Loading;\n","import { memo } from 'react';\n\nimport MonacoContainer from './MonacoContainer';\n\nexport default memo(MonacoContainer);\n","import { memo } from 'react';\n\nimport Editor from './Editor';\n\nexport * from './types';\n\nexport default memo(Editor);\n","import { useState } from 'react';\nimport loader from '@monaco-editor/loader';\n\nimport useMount from '../useMount';\n\nfunction useMonaco() {\n const [monaco, setMonaco] = useState(loader.__getMonacoInstance());\n\n useMount(() => {\n let cancelable: ReturnType<typeof loader.init>;\n\n if (!monaco) {\n cancelable = loader.init();\n\n cancelable.then((monaco) => {\n setMonaco(monaco);\n });\n }\n\n return () => cancelable?.cancel();\n });\n\n return monaco;\n}\n\nexport default useMonaco;\n","import { memo } from 'react';\n\nimport DiffEditor from './DiffEditor';\n\nexport * from './types';\n\nexport default memo(DiffEditor);\n","import { Editor } from '@monaco-editor/react'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useNavigate } from 'react-router-dom'\n\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 = () => {\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\nexport default CreateMenuItem\n","import { Editor } from '@monaco-editor/react'\nimport { useQuery } from '@tanstack/react-query'\nimport { App, Button, Card, Form, Input, InputNumber, Switch } from 'antd'\nimport { useEffect } from 'react'\nimport { useNavigate, useParams } from 'react-router-dom'\n\nimport { FRONTEND_ROUTE_PREFIX } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport { useMenuList } from '@/services'\nimport { type JsonResponse, type MenuListItem } from '@/types'\n\nimport { useUpdateMenu } from '../../services'\n\ntype FormSchema = Omit<MenuListItem, 'id' | 'permissions'> & { permissions: string }\n\nconst EditMenuItem = () => {\n const { message } = App.useApp()\n const [form] = Form.useForm<FormSchema>()\n const navigate = useNavigate()\n const { mutateAsync } = useUpdateMenu()\n const params = useParams<'id'>()\n const { refetch } = useMenuList()\n const { get } = useKy()\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.menus.detail(Number(params.id)),\n queryFn: () => get<JsonResponse<MenuListItem>>(`/api/usystem/menu/info?id=${params.id}`),\n enabled: !!params.id,\n select: response => response.data,\n })\n\n const onFinish = async (values: FormSchema) => {\n const { permissions, front_route, ...rest } = values\n\n await mutateAsync({\n ...rest,\n permissions: permissions ? JSON.parse(permissions) : undefined,\n front_route: FRONTEND_ROUTE_PREFIX + front_route,\n id: +params.id!,\n })\n refetch()\n message.success('更新成功', 0.8, () => navigate('../..', { relative: 'route' }))\n }\n\n useEffect(() => {\n const { permissions, front_route, ...rest } = data ?? {}\n const permissionsString = JSON.stringify(permissions || [], null, 2)\n const frontRoute = front_route?.replace(FRONTEND_ROUTE_PREFIX, '')\n form.setFieldsValue({\n ...rest,\n permissions: permissionsString,\n front_route: frontRoute,\n })\n }, [data, form])\n\n return (\n <Card title=\"更新菜单项\" loading={isLoading}>\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\nexport default EditMenuItem\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionMode, WILDCARD } from '@/constants'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { JsonResponse } from '@/types'\n\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllRoles() {\n const { get } = useKy()\n return useQuery({\n queryKey: queryKeys.roles.all,\n queryFn: () => get<JsonResponse<RoleEnumItem[]>>('/api/usystem/role/all'),\n select: data => data.data,\n })\n}\n\nexport function useRole(name: string) {\n const { get } = useKy()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useQuery({\n queryKey: queryKeys.roles.detail(name, permissionMode),\n queryFn: () =>\n get<JsonResponse<RoleV1 | RoleV2>>(\n `/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'info' : 'infoV2'}?name=${name}`,\n ),\n select: data => data.data,\n })\n}\n\nexport function useCreateRole() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.roles.create(permissionMode),\n mutationFn: ({ name, permissions }: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) =>\n post(`/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'create' : 'createV2'}`, {\n name,\n permissions,\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useUpdateRole() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.roles.update(permissionMode),\n mutationFn: ({\n id,\n name,\n permissions,\n }: {\n id: number\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }) =>\n post(`/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'update' : 'updateV2'}`, {\n id,\n name,\n permissions,\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useRemoveRole() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.roles.delete,\n mutationFn: ({ id, name }: { id: number; name: string }) => post('/api/usystem/role/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\ntype CreateUserWithRoles = { name: string; roles: string[] }\n\ntype CreateUserPermission = {\n game_group?: string[]\n game_ids: string[]\n role: string\n}\n\ntype CreateUserWithPermissions = {\n name: string\n permissions: CreateUserPermission[]\n}\n\nexport function useCreateUser() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.users.create,\n mutationFn: (arg: CreateUserWithRoles | CreateUserWithPermissions) => {\n // 使用类型守卫判断是否包含 permissions\n const hasPermissions = (obj: typeof arg): obj is CreateUserWithPermissions => 'permissions' in obj\n\n let requestData: CreateUserWithRoles | CreateUserWithPermissions = arg\n\n if (hasPermissions(arg) && permissionMode === PermissionMode.DIRECT_GAME) {\n const transformedPermissions = arg.permissions?.map(item => ({\n game_group: [WILDCARD],\n game_ids: item.game_ids,\n role: item.role,\n }))\n requestData = { ...arg, permissions: transformedPermissions }\n }\n\n return post('/api/usystem/user/create', requestData)\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\ntype UpdateUserWithRoles = { id: string; name: string; roles: string[] }\n\ntype UpdateUserPermission = {\n game_group?: string[]\n game_ids: string[]\n role: string\n}\n\ntype UpdateUserWithPermissions = {\n id: string\n name: string\n permissions: UpdateUserPermission[]\n}\n\nexport function useUpdateUser() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n const permissionMode = useToolkitsStore(state => state.context.permissionMode)\n\n return useMutation({\n mutationKey: queryKeys.users.update,\n mutationFn: (arg: UpdateUserWithRoles | UpdateUserWithPermissions) => {\n // 使用类型守卫判断是否包含 permissions\n const hasPermissions = (obj: typeof arg): obj is UpdateUserWithPermissions => 'permissions' in obj\n\n let requestData: UpdateUserWithRoles | UpdateUserWithPermissions = arg\n\n if (hasPermissions(arg) && permissionMode === PermissionMode.DIRECT_GAME) {\n const transformedPermissions = arg.permissions?.map(item => ({\n game_group: [WILDCARD],\n game_ids: item.game_ids,\n role: item.role,\n }))\n requestData = { ...arg, permissions: transformedPermissions }\n }\n\n return post('/api/usystem/user/update', requestData)\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useRemoveUser() {\n const { post } = useKy()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.delete,\n mutationFn: ({ id, name }: { id: string; name: string }) => post('/api/usystem/user/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useAllPermissions() {\n const { get } = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissions,\n queryFn: () => get<JsonResponse<PermissionEnumItem[]>>('/api/usystem/user/allPermssions'),\n select: data => data.data,\n })\n}\n\nexport function useAllPermissionsV2() {\n const { get } = useKy()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissionsV2,\n queryFn: () => get<JsonResponse<PermissionEnumItem[]>>('/api/usystem/user/allPermssionsV2'),\n select: data => data.data,\n })\n}\n","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 className=\"w-full\" value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} className=\"w-full\">\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 className=\"w-full\" collapsible=\"header\" activeKey={activeKey} items={items} onChange={onCollapseChange} />\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 className=\"w-40\"\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 { PermissionMode } 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 const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n if (permissionMode === PermissionMode.GAME_SCOPED) {\n return <PermissionWithoutGame {...props} value={value as RoleV1['permissions']} />\n }\n\n return <PermissionWithGame {...props} value={value as RoleV2['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","import { MinusCircleOutlined } from '@ant-design/icons'\nimport { useQuery } from '@tanstack/react-query'\nimport { App, Button, Col, Empty, Form, Input, Row, Select, Typography } from 'antd'\nimport { first, last } from 'lodash-es'\nimport { Fragment } from 'react'\nimport { type FC } from 'react'\n\nimport { useToolkitsStore } from '@/components'\nimport { PermissionMode, WILDCARD } from '@/constants'\nimport { useFormModal } from '@/hooks/modal'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\nimport type { JsonResponse } from '@/types'\n\nimport { useAllRoles, useCreateUser, useUpdateUser } from '../services'\n\nconst { Text } = Typography\n\n/**\n * 处理通配符选择逻辑\n * - 如果最后选择的是通配符,则只保留通配符\n * - 如果第一个是通配符但又选择了其他项,则移除通配符\n */\nconst handleWildcardSelection = (value: string[], onChange?: (value: string[]) => void) => {\n if (last(value) === WILDCARD) {\n onChange?.([WILDCARD])\n } else if (first(value) === WILDCARD) {\n onChange?.(value.slice(1))\n } else {\n onChange?.(value)\n }\n}\n\ninterface GroupSelectProps {\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst GroupSelect: FC<GroupSelectProps> = props => {\n const { onChange, ...rest } = props\n const { get } = useKy()\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameGroups,\n queryFn: () => get<JsonResponse<string[]>>('/api/enum/get?enum=game_group&type=all'),\n select: response => response.data,\n })\n\n const options = [{ label: '通用', value: WILDCARD }].concat(\n data?.map(group => ({ label: group, value: group })) ?? [],\n )\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n mode=\"tags\"\n optionFilterProp=\"label\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface GameSelectProps {\n groups?: string[]\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\n/**\n * 游戏选择组件\n * - GROUP_BASED: 依赖 groups 参数,需要先选择项目组才能加载游戏列表\n * - DIRECT_GAME: 不依赖 groups,直接加载所有游戏列表\n */\nconst GameSelect: FC<GameSelectProps> = props => {\n const { groups, onChange, ...rest } = props\n const { get } = useKy()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isDirectGame = permissionMode === PermissionMode.DIRECT_GAME\n\n const { data, isLoading } = useQuery({\n queryKey: queryKeys.enums.gameIds(isDirectGame ? [] : (groups ?? [])),\n queryFn: () =>\n get<\n JsonResponse<{\n list: {\n id: string\n name: string\n }[]\n }>\n >(`/api/enum/game_group/get_game_ids${isDirectGame ? '' : `?game_groups=${groups?.join(',')}`}`),\n select: response => response.data?.list,\n enabled: isDirectGame || (isGroupBased && !!groups?.length),\n })\n\n const options = data?.map((group: { id: string; name: string }) => ({ label: group.name, value: group.id }))\n\n return (\n <Select\n {...rest}\n allowClear\n showSearch\n optionFilterProp=\"label\"\n mode=\"tags\"\n loading={isLoading}\n options={options}\n onChange={value => handleWildcardSelection(value, onChange)}\n />\n )\n}\n\ninterface UserModalFormSchema {\n name: string\n roles?: string[]\n permissions?: {\n game_group: string[]\n game_ids: string[]\n role: string\n }[]\n}\n\n/**\n * 用户弹窗(根据权限模式自动选择表单结构)\n * - GAME_SCOPED: 使用简单的 roles 字段\n * - GROUP_BASED: 使用 permissions 数组,显示项目组选择\n * - DIRECT_GAME: 使用 permissions 数组,隐藏项目组选择\n */\nexport const useUserModal = ({ mode, onSuccess }: { mode: 'create' | 'update'; onSuccess?: () => void }) => {\n const { message } = App.useApp()\n const { t } = useTranslation()\n const { data: roles, isLoading: isRolesLoading } = useAllRoles()\n const create = useCreateUser()\n const update = useUpdateUser()\n const isCreateMode = mode === 'create'\n const title = isCreateMode ? t('User.createTitle') : t('User.updateTitle')\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isGameScoped = permissionMode === PermissionMode.GAME_SCOPED\n\n const content = isGameScoped ? (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.Item label={t('global.role')} name=\"roles\">\n <Select\n allowClear\n showSearch\n mode=\"multiple\"\n loading={isRolesLoading}\n optionFilterProp=\"label\"\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </>\n ) : (\n <>\n <Form.Item label={t('global.name')} name=\"name\" rules={[{ required: true }]}>\n <Input disabled={!isCreateMode} />\n </Form.Item>\n <Form.List name=\"permissions\">\n {(fields, { add, remove }) => (\n <Row gutter={8}>\n {isGroupBased && (\n <Col span={8} className=\"text-center mb-4\">\n <Text strong>{t('global.projectGroup')}</Text>\n </Col>\n )}\n <Col span={isGroupBased ? 10 : 14} className=\"text-center mb-4\">\n <Text strong>{t('global.game')}</Text>\n </Col>\n <Col span={isGroupBased ? 6 : 10} className=\"text-center mb-4\">\n <Text strong>{t('global.role')}</Text>\n </Col>\n {fields.map(field => (\n <Fragment key={field.key}>\n {isGroupBased && (\n <Col span={8}>\n <Form.Item noStyle shouldUpdate>\n {({ setFieldValue }) => (\n <Form.Item name={[field.name, 'game_group']}>\n <GroupSelect\n onChange={() => {\n setFieldValue(['permissions', field.name, 'game_ids'], [])\n }}\n />\n </Form.Item>\n )}\n </Form.Item>\n </Col>\n )}\n <Col span={isGroupBased ? 10 : 14}>\n {isGroupBased ? (\n <Form.Item\n noStyle\n shouldUpdate={(prevValues, nextValues) =>\n prevValues.permissions[field.name]?.game_group !==\n nextValues.permissions[field.name]?.game_group\n }\n >\n {({ getFieldValue }) => {\n const _groups = getFieldValue(['permissions', field.name, 'game_group'])\n\n return (\n <Form.Item\n name={[field.name, 'game_ids']}\n dependencies={[['permissions', field.name, 'game_group']]}\n rules={[{ required: !!_groups?.length, message: '请选择游戏' }]}\n >\n <GameSelect groups={_groups} />\n </Form.Item>\n )\n }}\n </Form.Item>\n ) : (\n <Form.Item name={[field.name, 'game_ids']} rules={[{ required: true, message: '请选择游戏' }]}>\n <GameSelect />\n </Form.Item>\n )}\n </Col>\n <Col span={isGroupBased ? 6 : 10}>\n <div className=\"flex\">\n <div className=\"flex-1\">\n <Form.Item\n name={[field.name, 'role']}\n rules={[\n { required: true, message: '请选择角色' },\n ({ getFieldValue }) => ({\n validator(_rule, value) {\n const items = getFieldValue('permissions') as UserModalFormSchema['permissions']\n const otherItems = items?.filter((item, index) => !!item && index !== field.name) ?? []\n if (otherItems.some(item => item.role === value)) {\n return Promise.reject(new Error('请勿重复选择角色'))\n }\n return Promise.resolve()\n },\n }),\n ]}\n >\n <Select\n allowClear\n showSearch\n optionFilterProp=\"label\"\n loading={isRolesLoading}\n options={roles?.map(role => ({ label: role.name, value: role.name }))}\n />\n </Form.Item>\n </div>\n <div className=\"w-8 text-center\">\n <Form.Item>\n <MinusCircleOutlined\n onClick={() => {\n remove(field.name)\n }}\n />\n </Form.Item>\n </div>\n </div>\n </Col>\n </Fragment>\n ))}\n {fields.length === 0 && (\n <Col span={24}>\n <Empty className=\"mb-6\" />\n </Col>\n )}\n <Col span={24}>\n <Button block type=\"dashed\" onClick={() => add()}>\n {t('global.add')}\n </Button>\n </Col>\n </Row>\n )}\n </Form.List>\n </>\n )\n\n const onConfirm = async (values: UserModalFormSchema, extraValues: { id: string }) => {\n if (isCreateMode) {\n // 根据权限模式构造正确的提交数据\n const submitData = isGameScoped\n ? { name: values.name, roles: values.roles! }\n : { name: values.name, permissions: values.permissions! }\n await create.mutateAsync(submitData)\n message.success(t('User.createSuccessfully'))\n } else {\n // 根据权限模式构造正确的提交数据\n const submitData = isGameScoped\n ? { id: extraValues.id, name: values.name, roles: values.roles! }\n : { id: extraValues.id, name: values.name, permissions: values.permissions! }\n await update.mutateAsync(submitData)\n message.success(t('User.updateSuccessfully'))\n }\n onSuccess?.()\n }\n\n return useFormModal<UserModalFormSchema, { id: string }>({\n title,\n width: isGameScoped ? '600px' : '1000px',\n formProps: {\n autoComplete: 'off',\n labelCol: { flex: '80px' },\n },\n content,\n onConfirm,\n })\n}\n","export * from './role-hooks'\nexport * from './user-hooks'\n","import { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Space, Tag } from 'antd'\nimport { type FC } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport { useUserModal } from '../../hooks'\nimport { useRemoveUser } from '../../services'\nimport type { UserListItem } from '../../types'\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const { t } = useTranslation()\n const remove = useRemoveUser()\n const { refetch } = useQueryListStore()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const isDirectGame = permissionMode === PermissionMode.DIRECT_GAME\n\n const { show: showCreateModal, modal: createModal } = useUserModal({\n mode: 'create',\n onSuccess() {\n refetch('user-list', { page: 1 })\n },\n })\n\n const { show: showUpdateModal, modal: updateModal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch('user-list')\n },\n })\n\n const columns = (\n [\n {\n title: t('global.name'),\n dataIndex: 'name',\n key: 'name',\n render(value: string, record) {\n if (isGroupBased || isDirectGame) {\n return <Link to={`./${record.id}`}>{value}</Link>\n }\n return value\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n PermissionMode.GAME_SCOPED && {\n title: t('global.role'),\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`../role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n const { name, permissions, roles, id } = record\n return (\n <Space>\n <AuthButton\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdateModal({\n initialValues: {\n name,\n ...(isGroupBased || isDirectGame ? { permissions } : { roles }),\n },\n extraValues: {\n id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('User.deleteTitle'),\n content: <Highlight texts={[name]}>{t('User.deleteContent', { user: name })}</Highlight>,\n async onOk() {\n await remove.mutateAsync({\n id,\n name,\n })\n refetch('user-list')\n message.success(t('User.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ] as TableColumnsType<UserListItem>\n ).filter(Boolean)\n\n return (\n <>\n <Card\n title={t('global.user')}\n extra={\n <AuthButton\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('User.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<UserListItem, { name?: string }, { data: { List: UserListItem[]; Total: number } }>\n identifier=\"user-list\"\n code=\"100001\"\n request={{\n url: '/api/usystem/user/list',\n method: 'GET',\n }}\n rowKey=\"id\"\n columns={columns}\n dataAdapter={data => ({\n total: data?.data?.Total,\n items: data?.data?.List,\n })}\n renderForm={form => (\n <Form form={form}>\n <Form.Item label=\"名称\" name=\"name\">\n <Input />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default UserList\n","import { useQuery } from '@tanstack/react-query'\nimport type { TableColumnsType } from 'antd'\nimport { Breadcrumb, Card, Descriptions, Table, Tag } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton, useToolkitsStore } from '@/components'\nimport { PermissionMode, WILDCARD } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { queryKeys } from '@/queryKeys'\nimport { useAuth, useGames } from '@/services'\nimport type { JsonResponse } from '@/types'\n\nimport { useUserModal } from '../../hooks'\nimport type { UserListItem } from '../../types'\n\nconst UserDetail = () => {\n const params = useParams<'id'>()\n const { t } = useTranslation()\n const {\n context: { useGameApiV2, permissionMode },\n } = useToolkitsStore()\n const isGroupBased = permissionMode === PermissionMode.GROUP_BASED\n const { get } = useKy()\n\n const { data, isLoading, refetch } = useQuery({\n queryKey: queryKeys.users.detail(params.id || ''),\n queryFn: () => get<JsonResponse<UserListItem>>(`/api/usystem/user/info?id=${params.id}`),\n enabled: !!params.id,\n select: response => response.data,\n })\n const { data: games } = useGames()\n const { data: roleViewable } = useAuth('200005')\n\n const { show, modal } = useUserModal({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const columns = [\n isGroupBased && {\n key: 'group',\n title: t('global.projectGroup'),\n dataIndex: 'game_group',\n render(value: string[]) {\n return value.map(item => {\n return <Tag key={item}>{item === WILDCARD ? '通用' : item}</Tag>\n })\n },\n },\n {\n key: 'game',\n title: t('global.game'),\n dataIndex: 'game_ids',\n render(value: string[]) {\n return value.map(item => {\n const matchedGame = games?.find(game => String(useGameApiV2 ? game.game_id : game.id) === item)\n return <Tag key={item}>{matchedGame?.name ?? (item === WILDCARD ? '通用' : item)}</Tag>\n })\n },\n },\n {\n key: 'role',\n title: t('global.role'),\n dataIndex: 'role',\n render(value: string) {\n return roleViewable ? (\n <Link to={`../../role/${value}`} relative=\"path\">\n {value}\n </Link>\n ) : (\n value\n )\n },\n },\n ].filter(Boolean) as TableColumnsType\n\n return (\n <>\n <Breadcrumb\n className=\"mb-6\"\n items={[\n {\n key: '1',\n title: (\n <Link to=\"..\" relative=\"path\">\n {t('global.user')}\n </Link>\n ),\n },\n {\n key: '2',\n title: '用户详情',\n },\n ]}\n />\n <Card\n title=\"用户详情\"\n loading={isLoading}\n extra={\n <AuthButton\n code=\"100003\"\n onClick={() => {\n show({\n initialValues: {\n name: data?.name,\n permissions: data?.permissions,\n },\n extraValues: {\n id: data!.id,\n },\n })\n }}\n >\n {t('global.update')}\n </AuthButton>\n }\n >\n <Descriptions bordered column={1}>\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.role')}>\n <Table rowKey=\"role\" columns={columns} dataSource={data?.permissions} pagination={false} />\n </Descriptions.Item>\n </Descriptions>\n </Card>\n {modal}\n </>\n )\n}\n\nexport default UserDetail\n","import { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Space } from 'antd'\nimport { Link } from 'react-router-dom'\n\nimport { AuthButton, Highlight, QueryList, useQueryListStore, useToolkitsStore } from '@/components'\nimport { PermissionMode } from '@/constants'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\nimport type { JsonResponse } from '@/types'\n\nimport { useRoleModal } from '../../hooks'\nimport { useRemoveRole } from '../../services'\nimport type { RoleListItem, RoleV1, RoleV2 } from '../../types'\n\nconst RoleList = () => {\n const { modal, message } = App.useApp()\n const { data: viewable } = useAuth('200005')\n const { t } = useTranslation()\n const { refetch } = useQueryListStore()\n const { get } = useKy()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n const { show: showCreateModal, modal: createModal } = useRoleModal({\n mode: 'create',\n onSuccess() {\n refetch('role-list', { page: 1 })\n },\n })\n const { show: showUpdateModal, modal: updateModal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch('role-list')\n },\n })\n\n const remove = useRemoveRole()\n\n const handleUpdateBtnClick = async (record: RoleListItem) => {\n const data = await get<JsonResponse<RoleV1 | RoleV2>>(\n `/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'info' : 'infoV2'}?name=${record.name}`,\n )\n\n showUpdateModal({\n initialValues: {\n permissions: data.data?.permissions,\n name: data.data?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data.data?.id,\n },\n })\n }\n\n const columns: TableColumnsType<RoleListItem> = [\n {\n title: t('global.name'),\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return (\n <Link to={`${value.name}`} relative=\"path\">\n {value.name}\n </Link>\n )\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: t('global.operation'),\n width: 150,\n align: 'center',\n render: (_, record) => {\n return (\n <Space size=\"small\">\n <AuthButton\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n handleUpdateBtnClick(record)\n }}\n >\n {t('global.update')}\n </AuthButton>\n <AuthButton\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: t('Role.deleteTitle'),\n content: (\n <Highlight texts={[record.name]}>{t('Role.deleteContent', { role: record.name })}</Highlight>\n ),\n async onOk() {\n await remove.mutateAsync({\n id: record.id,\n name: record.name,\n })\n\n refetch('role-list')\n\n message.success(t('Role.deleteSuccessfully'))\n },\n })\n }}\n >\n {t('global.delete')}\n </AuthButton>\n </Space>\n )\n },\n },\n ]\n\n return (\n <>\n <Card\n title={t('global.role')}\n extra={\n <AuthButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n {t('Role.createTitle')}\n </AuthButton>\n }\n >\n <QueryList<RoleListItem, undefined, { data: { List: RoleListItem[]; Total: number } }>\n identifier=\"role-list\"\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n request={{\n url: '/api/usystem/role/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.data?.Total,\n items: data?.data?.List,\n })}\n />\n </Card>\n {createModal}\n {updateModal}\n </>\n )\n}\n\nexport default RoleList\n","export { default as PermissionList } from './permissionList'\n","import { Breadcrumb, Card, Descriptions, Divider, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nimport { AuthButton } from '@/components'\nimport { useTranslation } from '@/locale'\n\nimport { PermissionList } from '../../components'\nimport { useRoleModal } from '../../hooks'\nimport { useRole } from '../../services'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { t } = useTranslation()\n const { data, isLoading, refetch } = useRole(params.name as string)\n\n const { show, modal } = useRoleModal({\n mode: 'update',\n onSuccess() {\n refetch()\n },\n })\n\n const handleUpdateBtnClick = async () => {\n show({\n initialValues: {\n permissions: data?.permissions,\n name: data?.name.replace(/^role_/, ''),\n },\n extraValues: {\n id: data!.id,\n },\n })\n }\n\n return (\n <>\n <Breadcrumb\n className=\"mb-6\"\n items={[\n {\n key: '1',\n title: (\n <Link to=\"..\" relative=\"path\">\n {t('global.role')}\n </Link>\n ),\n },\n {\n key: '2',\n title: t('RoleDetail.title'),\n },\n ]}\n />\n <Card\n title={t('RoleDetail.title')}\n extra={\n <AuthButton code=\"200003\" onClick={handleUpdateBtnClick}>\n {t('global.update')}\n </AuthButton>\n }\n >\n <Skeleton loading={isLoading}>\n <Descriptions column={2} layout=\"vertical\" className=\"mb-6\">\n <Descriptions.Item label={t('global.name')}>{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label={t('global.creationTime')}>{data?.ctime}</Descriptions.Item>\n </Descriptions>\n <Divider />\n <PermissionList readonly value={data?.permissions} />\n </Skeleton>\n </Card>\n {modal}\n </>\n )\n}\n\nexport default RoleDetail\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","export * from './components'\nexport * from './constants'\nexport * from './hooks'\nexport * from './modules'\nexport * from './pages'\nexport * from './services'\nexport * from './types'\nexport * from './utils'\n","import type { DrawerProps } from 'antd'\nimport { Button, Drawer } from 'antd'\nimport type { ComponentProps, ReactNode } from 'react'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useDrawerStore } from './stores'\n\nexport interface UseDrawerOperation {\n hide: () => void\n}\n\nexport interface UseDrawerProps extends Omit<DrawerProps, 'open' | 'confirmLoading' | 'onClose' | 'footer'> {\n content?: ReactNode | ((operation: UseDrawerOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n footer?: ReactNode | null\n confirmText?: string\n cancelText?: string\n confirmButtonProps?: ComponentProps<typeof Button>\n cancelButtonProps?: ComponentProps<typeof Button>\n}\n\nexport function useDrawer(props: UseDrawerProps) {\n const {\n content,\n onConfirm,\n afterOpen,\n afterClose,\n footer,\n confirmText = '确认',\n cancelText = '取消',\n confirmButtonProps,\n cancelButtonProps,\n ...drawerProps\n } = props\n\n const _id = useMemo(() => generateId(), [])\n const { show, hide, isOpen, cleanup } = useDrawerStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onClose: DrawerProps['onClose'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const handleConfirm = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n } catch (error) {\n console.error('Drawer confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm])\n\n const drawerFooter: DrawerProps['footer'] =\n footer !== undefined ? (\n <>{footer}</>\n ) : (\n <div className=\"flex gap-4 mx-4\">\n <Button type=\"primary\" loading={confirmLoading} {...confirmButtonProps} onClick={handleConfirm}>\n {confirmText}\n </Button>\n <Button {...cancelButtonProps} onClick={onClose}>\n {cancelText}\n </Button>\n </div>\n )\n\n const internalDrawer = (\n <Drawer {...drawerProps} open={open} footer={drawerFooter} onClose={onClose}>\n {isRenderFunction ? <>{content({ hide: _hide })}</> : <>{content}</>}\n </Drawer>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n confirmLoading,\n drawer: internalDrawer,\n }\n}\n","import { create } from 'zustand'\n\nimport type { VisibilityState } from '@/utils'\nimport { createVisibilityStoreConfig } from '@/utils'\n\n// 延迟创建 store,避免 splitting: false 时的模块初始化顺序问题\nlet storeHook: (() => VisibilityState) | null = null\n\n/**\n * Drawer store hook\n * 使用 lazy initialization 确保 create 函数在调用时已经准备好\n */\nexport function useDrawerStore(): VisibilityState {\n if (!storeHook) {\n // 延迟创建,确保 create 函数已经被正确初始化\n storeHook = create<VisibilityState>()(createVisibilityStoreConfig())\n }\n return storeHook()\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useDrawer, type UseDrawerOperation, type UseDrawerProps } from './drawer'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseDrawerProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseDrawerOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormDrawerReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n drawer: ReactNode\n}\n\nexport function useFormDrawer<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormDrawerProps<Values, ExtraValues>,\n): UseFormDrawerReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...drawerProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, drawer } = useDrawer({\n ...drawerProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? <>{content(internalExtraValues, operation)}</> : <>{content}</>}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n drawer,\n }\n}\n","import { lazy } from 'react'\nimport { Route, Routes } from 'react-router-dom'\n\nimport { ToolkitsProvider } from '@/components'\n\nconst MenuItemList = lazy(() => import('./pages/menuItemList'))\nconst CreateMenuItem = lazy(() => import('./pages/createMenuItem'))\nconst UpdateMenuItem = lazy(() => import('./pages/updateMenuItem'))\n\nexport default (\n <ToolkitsProvider isGlobalMode>\n <Routes>\n <Route index element={<MenuItemList />} />\n <Route path=\"create\" element={<CreateMenuItem />} />\n <Route path=\"update/:id\" element={<UpdateMenuItem />} />\n </Routes>\n </ToolkitsProvider>\n)\n","import { lazy } from 'react'\nimport { Navigate, Route, Routes } from 'react-router-dom'\n\nimport { ToolkitsProvider } from '@/components'\n\nconst UserList = lazy(() => import('./pages/userList'))\nconst UserDetail = lazy(() => import('./pages/userDetail'))\nconst RoleList = lazy(() => import('./pages/roleList'))\nconst RoleDetail = lazy(() => import('./pages/roleDetail'))\n\nexport default (\n <ToolkitsProvider isGlobalMode>\n <Routes>\n <Route index element={<Navigate to=\"user\" />} />\n <Route path=\"user\" element={<UserList />} />\n <Route path=\"user/:id\" element={<UserDetail />} />\n <Route path=\"role\" element={<RoleList />} />\n <Route path=\"role/:name\" element={<RoleDetail />} />\n </Routes>\n </ToolkitsProvider>\n)\n","import { Button, Result } from 'antd'\nimport type { FC } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\n\ninterface NotFoundProps {\n redirectUrl?: string\n}\n\nconst NotFound: FC<NotFoundProps> = props => {\n const { redirectUrl } = props\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n return (\n <div className=\"text-center\">\n <Result\n status=\"404\"\n title=\"404\"\n subTitle={t('NotFound.subTitle')}\n extra={\n redirectUrl && (\n <Button\n type=\"primary\"\n onClick={() => {\n navigate(redirectUrl)\n }}\n >\n {t('NotFound.buttonText')}\n </Button>\n )\n }\n />\n </div>\n )\n}\n\nexport default NotFound\n","import { Card, Form, Input, Select } from 'antd'\nimport type { ColumnsType } from 'antd/es/table'\nimport dayjs from 'dayjs'\nimport type { FC } from 'react'\n\nimport { ExpandableParagraph } from '@/components/expandableParagraph'\nimport { QueryList } from '@/components/queryList'\nimport { useTranslation } from '@/locale'\n\nimport type { OperationLogListItem } from './types'\n\nconst { Option } = Select\n\nconst OperationLogList: FC = () => {\n const { t } = useTranslation()\n\n const columns: ColumnsType<OperationLogListItem> = [\n {\n key: 'username',\n title: t('global.username'),\n dataIndex: 'uname',\n width: 100,\n },\n {\n key: 'label',\n title: t('global.label'),\n dataIndex: 'label',\n width: 150,\n },\n {\n key: 'method',\n title: t('global.method'),\n dataIndex: 'method',\n width: 100,\n },\n {\n key: 'route',\n title: t('global.route'),\n dataIndex: 'route',\n width: 200,\n },\n {\n key: 'request',\n title: t('global.request'),\n dataIndex: 'request',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'response',\n title: t('global.response'),\n dataIndex: 'response',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'creation_time',\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n width: 200,\n render(value: string) {\n return dayjs(value).format('YYYY-MM-DD HH:mm:ss')\n },\n },\n ]\n\n return (\n <Card title=\"操作日志\">\n <QueryList<\n OperationLogListItem,\n {\n uname?: string\n route?: string\n method?: 'get' | 'post'\n label?: string\n },\n { data: { List: OperationLogListItem[]; Total: number } }\n >\n identifier=\"operation-log-list\"\n rowKey=\"id\"\n code=\"300001\"\n columns={columns}\n tableLayout=\"fixed\"\n request={{\n url: '/api/usystem/log/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.data?.Total,\n items: data?.data?.List,\n })}\n renderForm={form => (\n <Form form={form} layout=\"inline\">\n <Form.Item label={t('global.username')} name=\"uname\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.route')} name=\"route\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.method')} name=\"method\">\n <Select allowClear className=\"w-[100px]\">\n <Option value=\"get\">GET</Option>\n <Option value=\"post\">POST</Option>\n </Select>\n </Form.Item>\n <Form.Item label={t('global.label')} name=\"label\">\n <Input allowClear />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n )\n}\n\nexport default OperationLogList\n","import { LoginOutlined } from '@ant-design/icons'\nimport { Alert, Button, Card, Divider, Space, Spin, Typography } from 'antd'\nimport type { FC, ReactNode } from 'react'\nimport { Navigate } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { SSO_URL } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport backgroundUrl from './background.svg'\nimport { useTicketLogin } from './hooks'\n\ninterface SignInProps {\n extra?: ReactNode\n title?: string\n}\n\nconst SignIn: FC<SignInProps> = ({ extra, title }) => {\n const {\n token: { token },\n context: { homePath },\n } = useToolkitsStore()\n const { t } = useTranslation()\n const { isLoading, isUnregistered, dismissUnregistered } = useTicketLogin()\n\n // 构建 SSO 登录 URL\n const ssoLoginUrl = `${SSO_URL}/login?service=${encodeURIComponent(window.location.href)}`\n\n if (isLoading) {\n return (\n <div className=\"w-screen h-screen flex justify-center items-center\">\n <Spin />\n </div>\n )\n }\n\n if (token) {\n return <Navigate replace to={homePath} />\n }\n\n return (\n <div className=\"w-screen h-screen relative overflow-hidden bg-linear-to-br from-blue-50 via-indigo-50/50 to-purple-50\">\n {/* 顶部额外内容 */}\n {extra && <div className=\"absolute top-6 right-6 z-20 md:top-16 md:right-16\">{extra}</div>}\n\n {/* Logo 和标题 */}\n <div className=\"absolute left-6 top-6 z-20 md:left-14 md:top-10\">\n <Space align=\"center\" size=\"large\">\n <Logo width={48} />\n {title && (\n <span className=\"text-xl md:text-2xl font-bold bg-linear-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent\">\n {title}\n </span>\n )}\n </Space>\n </div>\n\n {/* 主要内容区域 */}\n <div className=\"w-full h-full flex items-center justify-center relative\">\n {/* 背景插图 - 桌面端显示 */}\n <div className=\"flex absolute top-0 left-0 bottom-0 right-[550px] justify-center items-center\">\n <img src={backgroundUrl} alt=\"background\" className=\"w-5/6 max-w-full h-auto object-contain\" />\n </div>\n\n {/* 登录卡片 */}\n <div className=\"absolute z-10 right-[10%] top-1/2 -translate-y-3/4 w-[450px]\">\n <Card\n className=\"shadow-2xl rounded-2xl overflow-hidden backdrop-blur-sm border-0 transition-all duration-300 hover:shadow-[0_20px_60px_-15px_rgba(0,0,0,0.3)]\"\n style={{\n background: 'rgba(255, 255, 255, 0.98)',\n border: '1px solid rgba(0, 0, 0, 0.06)',\n }}\n variant=\"outlined\"\n >\n <div className=\"px-2 py-1\">\n {isUnregistered && (\n <Alert\n banner\n closable={{ onClose: dismissUnregistered }}\n title={t('SignIn.unregistered')}\n type=\"error\"\n className=\"mb-6 rounded-lg border-0\"\n />\n )}\n\n {/* 欢迎标题 */}\n <div className=\"mb-8 text-center\">\n <div className=\"mt-4 mb-2\">\n <Typography.Title\n level={2}\n className=\"mb-0! text-3xl! font-semibold bg-linear-to-r from-gray-800 via-gray-700 to-gray-600 bg-clip-text text-transparent\"\n >\n {t('SignIn.welcome')}\n </Typography.Title>\n </div>\n </div>\n\n <Divider className=\"my-6\" />\n\n {/* 登录按钮 */}\n <Button\n block\n type=\"primary\"\n size=\"large\"\n icon={<LoginOutlined />}\n href={ssoLoginUrl}\n target=\"_self\"\n className=\"h-12 text-base font-medium shadow-md hover:shadow-lg transition-all duration-200 hover:scale-[1.02]\"\n >\n {t('SignIn.signInWithIDass')}\n </Button>\n </div>\n </Card>\n </div>\n </div>\n </div>\n )\n}\n\nexport default SignIn\n","import { useQuery } from '@tanstack/react-query'\nimport { useEffect, useMemo, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { JsonResponse } from '@/types'\n\n/**\n * 检测是否为 hash 路由模式\n */\nfunction isHashRouter(): boolean {\n return window.location.hash.length > 0\n}\n\n/**\n * 获取所有查询参数(支持 hash 路由和 browser 路由)\n * 在 hash 路由模式下,会同时读取 hash 前后的查询参数\n */\nfunction getAllSearchParams(): URLSearchParams {\n const hashParams = new URLSearchParams(window.location.search)\n\n // 如果是 hash 路由,还需要读取 hash 后面的参数\n if (isHashRouter()) {\n const hash = window.location.hash\n const hashIndex = hash.indexOf('?')\n if (hashIndex !== -1) {\n const hashQuery = hash.substring(hashIndex + 1)\n const hashSearchParams = new URLSearchParams(hashQuery)\n // 合并参数,hash 后面的参数优先级更高\n hashSearchParams.forEach((value, key) => {\n hashParams.set(key, value)\n })\n }\n }\n\n return hashParams\n}\n\n/**\n * 清除 URL 中的查询参数(支持 hash 路由和 browser 路由)\n */\nfunction clearUrlParams(\n params: string[],\n setSearchParams: (params: URLSearchParams, options?: { replace?: boolean }) => void,\n) {\n if (isHashRouter()) {\n // Hash 路由模式:需要同时清除 hash 前后的参数\n const url = new URL(window.location.href)\n\n // 清除 hash 前的参数\n params.forEach(param => url.searchParams.delete(param))\n\n // 清除 hash 后的参数\n const hash = url.hash\n const hashIndex = hash.indexOf('?')\n if (hashIndex !== -1) {\n const hashPath = hash.substring(0, hashIndex)\n const hashQuery = hash.substring(hashIndex + 1)\n const hashSearchParams = new URLSearchParams(hashQuery)\n params.forEach(param => hashSearchParams.delete(param))\n\n const newHashQuery = hashSearchParams.toString()\n url.hash = newHashQuery ? `${hashPath}?${newHashQuery}` : hashPath\n }\n\n window.history.replaceState({}, '', url.toString())\n\n // 如果 hash 后还有参数,更新 react-router 的 searchParams\n const newHash = url.hash\n const newHashIndex = newHash.indexOf('?')\n if (newHashIndex !== -1) {\n const newHashQuery = newHash.substring(newHashIndex + 1)\n setSearchParams(new URLSearchParams(newHashQuery), { replace: true })\n } else {\n // 如果 hash 后没有参数了,清空 searchParams\n setSearchParams(new URLSearchParams(), { replace: true })\n }\n } else {\n // Browser 路由模式:使用 react-router 的 API\n const currentParams = getAllSearchParams()\n params.forEach(param => currentParams.delete(param))\n setSearchParams(currentParams, { replace: true })\n }\n}\n\n/**\n * 处理登录页面的票据逻辑和未注册用户提示\n * 支持各种路由模式(hash、browser 等),能正确读取和清除查询参数\n */\nexport function useTicketLogin() {\n const { get } = useKy()\n const {\n token: { setToken },\n } = useToolkitsStore()\n\n // 使用 react-router-dom 的 useSearchParams(用于 browser 路由或 hash 路由的 hash 后参数)\n const [, setSearchParams] = useSearchParams()\n\n // 获取所有查询参数(包括 hash 前的参数)\n const allParams = useMemo(() => getAllSearchParams(), [])\n const ticket = allParams.get('ticket')\n const unregisteredFromUrl = allParams.get('unregistered') === 'true'\n\n // 初始化未注册状态\n const [isUnregistered, setIsUnregistered] = useState(unregisteredFromUrl)\n\n // 在获取到参数后立即清理 URL 中的查询参数\n useEffect(() => {\n if (ticket || unregisteredFromUrl) {\n const paramsToClear: string[] = []\n if (ticket) paramsToClear.push('ticket')\n if (unregisteredFromUrl) paramsToClear.push('unregistered')\n clearUrlParams(paramsToClear, setSearchParams)\n }\n }, [ticket, unregisteredFromUrl, setSearchParams])\n\n const { isLoading, error } = useQuery({\n queryKey: queryKeys.auth.ticketLogin(ticket),\n queryFn: () =>\n get<JsonResponse<{ token: string }>>('/api/usystem/user/login', { searchParams: { ticket: ticket! } }).then(\n response => {\n setToken(response.data?.token)\n },\n ),\n enabled: !!ticket,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n })\n\n const dismissUnregistered = () => {\n setIsUnregistered(false)\n if (unregisteredFromUrl) {\n clearUrlParams(['unregistered'], setSearchParams)\n }\n }\n\n return {\n isLoading,\n error,\n isUnregistered,\n dismissUnregistered,\n }\n}\n"]}