react-toolkits 2.13.1 → 2.13.2

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 CHANGED
@@ -1,23 +1,23 @@
1
1
  import axios, { AxiosHeaders, isAxiosError } from 'axios';
2
2
  import { jwtDecode } from 'jwt-decode';
3
- import { create, useStore, createStore } from 'zustand';
3
+ import { useStore, create, createStore } from 'zustand';
4
4
  import { persist, createJSONStorage } from 'zustand/middleware';
5
5
  import * as Antd2 from 'antd';
6
- import { Spin, Menu, Typography, Select, Card, Form, Input, theme, Space, Tag, Result, Table, Button, Divider, Dropdown, Empty, Alert, Modal, App, Tooltip, Popconfirm, Switch, InputNumber, Row, Col, Breadcrumb, Skeleton, Descriptions, Collapse, Checkbox } from 'antd';
7
- import { createContext, memo, useMemo, useCallback, useEffect, forwardRef, lazy, useContext, useState, useRef, Suspense, Fragment as Fragment$1, useImperativeHandle, cloneElement } from 'react';
8
- import useSWR6, { mutate, SWRConfig, unstable_serialize } from 'swr';
6
+ import { Modal, Form, Card, Input, Select, theme, Space, Tag, Typography, Spin, Result, Table, Button, Alert, Divider, Menu, App, Switch, InputNumber, Row, Col, Breadcrumb, Descriptions, Skeleton, Empty, Dropdown, Tooltip, Popconfirm, Collapse, Checkbox } from 'antd';
7
+ import { lazy, useContext, useMemo, useState, useRef, useEffect, createContext, memo, useCallback, forwardRef, Fragment as Fragment$1, Suspense, useImperativeHandle, cloneElement } from 'react';
9
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
- import { isEqual, has, template, get } from 'lodash-es';
9
+ import { has, template, get, isEqual, last, first } from 'lodash-es';
11
10
  import { flushSync } from 'react-dom';
12
11
  import { createRoot } from 'react-dom/client';
12
+ import useSWR5, { mutate, unstable_serialize } from 'swr';
13
+ import logoUrl from './logo-L6MFCL6M.png';
14
+ import { Routes, Route, Navigate, useNavigate, useLocation, useParams, Link } from 'react-router-dom';
15
+ import { PlusOutlined, UserAddOutlined, UsergroupAddOutlined, LogoutOutlined, UserOutlined, MenuUnfoldOutlined, MenuFoldOutlined, MinusCircleOutlined } from '@ant-design/icons';
13
16
  import useSWRMutation2 from 'swr/mutation';
14
- import { useLocation, Link, useNavigate, Navigate, Routes, Route, useParams } from 'react-router-dom';
15
17
  import { Editor } from '@monaco-editor/react';
16
- import { PlusOutlined, MenuUnfoldOutlined, MenuFoldOutlined, LogoutOutlined, UserOutlined, UserAddOutlined, UsergroupAddOutlined } from '@ant-design/icons';
17
18
  import { produce } from 'immer';
18
19
  import qs from 'query-string';
19
20
  import useSWRInfinite from 'swr/infinite';
20
- import logoUrl from './logo-L6MFCL6M.png';
21
21
  import dayjs from 'dayjs';
22
22
  import useSWRImmutable from 'swr/immutable';
23
23
 
@@ -31,10 +31,10 @@ var __export = (target, all) => {
31
31
  __defProp(target, name, { get: all[name], enumerable: true });
32
32
  };
33
33
 
34
- // src/utils/storage.ts
34
+ // src/utils/index.ts
35
35
  var mixedStorage;
36
- var init_storage = __esm({
37
- "src/utils/storage.ts"() {
36
+ var init_utils = __esm({
37
+ "src/utils/index.ts"() {
38
38
  mixedStorage = {
39
39
  getItem: (name) => {
40
40
  return sessionStorage.getItem(name) || localStorage.getItem(name);
@@ -84,7 +84,9 @@ var init_en_GB = __esm({
84
84
  request: "Request",
85
85
  response: "Response",
86
86
  add: "Add",
87
- signIn: "Sign In"
87
+ signIn: "Sign In",
88
+ projectGroup: "Project Group",
89
+ view: "View"
88
90
  },
89
91
  SignIn: {
90
92
  title: "Sign In Method",
@@ -155,6 +157,23 @@ var init_en_GB = __esm({
155
157
  }
156
158
  });
157
159
 
160
+ // src/constants/index.ts
161
+ var SSO_URL, APP_ID_HEADER, FRONTEND_ROUTE_PREFIX, PermissionVersion, WILDCARD;
162
+ var init_constants = __esm({
163
+ "src/constants/index.ts"() {
164
+ SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
165
+ APP_ID_HEADER = "App-ID";
166
+ FRONTEND_ROUTE_PREFIX = "/console/";
167
+ PermissionVersion = /* @__PURE__ */ ((PermissionVersion2) => {
168
+ PermissionVersion2["V1"] = "v1";
169
+ PermissionVersion2["V2"] = "v2";
170
+ PermissionVersion2["V3"] = "v3";
171
+ return PermissionVersion2;
172
+ })(PermissionVersion || {});
173
+ WILDCARD = "*";
174
+ }
175
+ });
176
+
158
177
  // src/stores/context.ts
159
178
  var createContextSlice;
160
179
  var init_context = __esm({
@@ -162,10 +181,10 @@ var init_context = __esm({
162
181
  init_en_GB();
163
182
  createContextSlice = () => ({
164
183
  locale: en_GB_default,
165
- isPermissionApiV2: false,
166
184
  gameApiV2: false,
167
185
  isGlobal: false,
168
- signInPath: "/"
186
+ signInPath: "/",
187
+ permissionVersion: "v1" /* V1 */
169
188
  });
170
189
  }
171
190
  });
@@ -175,22 +194,11 @@ var createGameSlice;
175
194
  var init_game = __esm({
176
195
  "src/stores/game.ts"() {
177
196
  createGameSlice = (set, get2) => ({
178
- games: [],
179
- isGamesLoading: false,
180
- setGame(value) {
181
- if (value) {
182
- const game = get2().games.find((item) => String(get2().gameApiV2 ? item.game_id : item.id) === String(value));
183
- set({ game });
184
- }
185
- },
186
- setGames(games) {
187
- set({ games });
188
- },
189
- setSelectedGame(value) {
190
- set({ selectedGame: value });
197
+ setGame(game) {
198
+ set({ game });
191
199
  },
192
- setIsGamesLoading(loading) {
193
- set({ isGamesLoading: loading });
200
+ getGameId() {
201
+ return get2().gameApiV2 ? get2().game?.game_id : get2().game?.id;
194
202
  }
195
203
  });
196
204
  }
@@ -217,7 +225,7 @@ var init_token = __esm({
217
225
  var createToolkitsStore;
218
226
  var init_stores = __esm({
219
227
  "src/stores/index.ts"() {
220
- init_storage();
228
+ init_utils();
221
229
  init_axios();
222
230
  init_context();
223
231
  init_game();
@@ -233,6 +241,7 @@ var init_stores = __esm({
233
241
  ...createContextSlice(...args),
234
242
  ...createAxiosSlice(...args),
235
243
  ...initProps,
244
+ unregistered: false,
236
245
  clearToken() {
237
246
  get2().setToken("");
238
247
  store.persist.clearStorage();
@@ -247,8 +256,7 @@ var init_stores = __esm({
247
256
  storage: createJSONStorage(() => mixedStorage),
248
257
  partialize: (state) => ({
249
258
  token: state.token,
250
- game: state.game,
251
- selectedGame: state.selectedGame
259
+ game: state.game
252
260
  })
253
261
  }
254
262
  )
@@ -256,35 +264,24 @@ var init_stores = __esm({
256
264
  };
257
265
  }
258
266
  });
259
-
260
- // src/constants.ts
261
- var SSO_URL, APP_ID_HEADER, FRONTEND_ROUTE_PREFIX;
262
- var init_constants = __esm({
263
- "src/constants.ts"() {
264
- SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
265
- APP_ID_HEADER = "App-ID";
266
- FRONTEND_ROUTE_PREFIX = "/console/";
267
- }
268
- });
269
267
  var Interceptors, Interceptors_default;
270
268
  var init_Interceptors = __esm({
271
269
  "src/components/interceptors/Interceptors.tsx"() {
272
270
  init_constants();
273
- init_contextProvider();
271
+ init_toolkitsProvider();
274
272
  Interceptors = ({ children }) => {
275
273
  const { notification } = App.useApp();
276
274
  const {
277
275
  axios: axios2,
278
276
  interceptors,
279
277
  token,
280
- isPermissionApiV2,
281
278
  isGlobal,
282
- selectedGame,
283
- gameApiV2,
284
279
  signInPath,
285
280
  clearToken,
286
- setUnregistered
287
- } = useContextStore((s) => s);
281
+ setUnregistered,
282
+ getGameId,
283
+ permissionVersion
284
+ } = useToolkitsStore((s) => s);
288
285
  let requestInterceptorId;
289
286
  let responseInterceptorId;
290
287
  if (interceptors?.request) {
@@ -296,11 +293,12 @@ var init_Interceptors = __esm({
296
293
  if (token) {
297
294
  headers.setAuthorization(`Bearer ${token}`);
298
295
  }
299
- if (!headers.has(APP_ID_HEADER) && isPermissionApiV2) {
300
- if (isGlobal || !selectedGame) {
296
+ if (!headers.has(APP_ID_HEADER) && permissionVersion !== "v1" /* V1 */) {
297
+ const gameId = getGameId();
298
+ if (isGlobal || !gameId) {
301
299
  headers.set(APP_ID_HEADER, "global");
302
300
  } else {
303
- headers.set(APP_ID_HEADER, selectedGame);
301
+ headers.set(APP_ID_HEADER, gameId);
304
302
  }
305
303
  }
306
304
  headers.set("Accept", config.responseType === "blob" ? "application/octet-stream" : "application/json");
@@ -375,18 +373,18 @@ var init_interceptors = __esm({
375
373
  init_Interceptors();
376
374
  }
377
375
  });
378
- function useContextStore(selector) {
379
- const store = useContext(Context);
376
+ function useToolkitsStore(selector) {
377
+ const store = useContext(ToolkitsContext);
380
378
  if (!store) throw new Error("Missing ToolkitsProvider in the tree");
381
379
  return useStore(store, selector);
382
380
  }
383
- var Context, globalState, Contextrovider, withContext, ContextProvider_default;
384
- var init_ContextProvider = __esm({
385
- "src/components/contextProvider/ContextProvider.tsx"() {
381
+ var ToolkitsContext, globalState, ToolkitsProvider, withContext, ToolkitsProvider_default;
382
+ var init_ToolkitsProvider = __esm({
383
+ "src/components/toolkitsProvider/ToolkitsProvider.tsx"() {
386
384
  init_stores();
387
385
  init_interceptors();
388
- Context = createContext(null);
389
- Contextrovider = (props) => {
386
+ ToolkitsContext = createContext(null);
387
+ ToolkitsProvider = (props) => {
390
388
  const { children, ...restProps } = props;
391
389
  const storeRef = useRef();
392
390
  if (!storeRef.current) {
@@ -399,40 +397,28 @@ var init_ContextProvider = __esm({
399
397
  if (!globalState.signInPath) {
400
398
  throw new Error('ToolkitsProvider: \u8BF7\u914D\u7F6E "signInPath"');
401
399
  }
402
- const { axios: axios2 } = globalState;
403
- return /* @__PURE__ */ jsx(Context.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsx(App, { children: /* @__PURE__ */ jsx(Interceptors_default, { children: /* @__PURE__ */ jsx(
404
- SWRConfig,
405
- {
406
- value: {
407
- fetcher: async (arg) => {
408
- const response = typeof arg === "string" ? await axios2.get(arg) : await axios2.request(arg);
409
- return response.data.data;
410
- }
411
- },
412
- children
413
- }
414
- ) }) }) });
400
+ return /* @__PURE__ */ jsx(ToolkitsContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsx(App, { children: /* @__PURE__ */ jsx(Interceptors_default, { children }) }) });
415
401
  };
416
402
  withContext = (Component, providerProps) => {
417
403
  return (props) => {
418
- return /* @__PURE__ */ jsx(Contextrovider, { ...providerProps, children: /* @__PURE__ */ jsx(Component, { ...props }) });
404
+ return /* @__PURE__ */ jsx(ToolkitsProvider, { ...providerProps, children: /* @__PURE__ */ jsx(Component, { ...props }) });
419
405
  };
420
406
  };
421
407
  if (process.env.NODE_ENV !== "production") {
422
- Contextrovider.displayName = "Contextrovider";
408
+ ToolkitsProvider.displayName = "ToolkitsProvider";
423
409
  }
424
- ContextProvider_default = Contextrovider;
410
+ ToolkitsProvider_default = ToolkitsProvider;
425
411
  }
426
412
  });
427
413
 
428
- // src/components/contextProvider/index.ts
429
- var init_contextProvider = __esm({
430
- "src/components/contextProvider/index.ts"() {
431
- init_ContextProvider();
414
+ // src/components/toolkitsProvider/index.ts
415
+ var init_toolkitsProvider = __esm({
416
+ "src/components/toolkitsProvider/index.ts"() {
417
+ init_ToolkitsProvider();
432
418
  }
433
419
  });
434
420
  function useTranslation() {
435
- const locale2 = useContextStore((state) => state.locale);
421
+ const locale2 = useToolkitsStore((state) => state.locale);
436
422
  const t = useMemo(
437
423
  () => (key, data) => has(locale2, key) ? template(get(locale2, key))(data) : key,
438
424
  [locale2]
@@ -441,7 +427,7 @@ function useTranslation() {
441
427
  }
442
428
  var init_hooks = __esm({
443
429
  "src/components/locale/hooks.ts"() {
444
- init_contextProvider();
430
+ init_toolkitsProvider();
445
431
  }
446
432
  });
447
433
 
@@ -535,15 +521,27 @@ var init_highlight = __esm({
535
521
  init_Highlight();
536
522
  }
537
523
  });
524
+ function useMenuList() {
525
+ const { getGameId, signInPath, axios: axios2 } = useToolkitsStore((s) => s);
526
+ const gameId = getGameId();
527
+ return useSWR5(
528
+ window.location.pathname !== signInPath ? ["/api/usystem/menu/navbar", gameId] : null,
529
+ ([url4]) => axios2(url4).then((response) => response.data.data)
530
+ );
531
+ }
538
532
  var usePermissions, usePermission;
539
- var init_permission = __esm({
540
- "src/hooks/permission.ts"() {
541
- init_contextProvider();
533
+ var init_hooks2 = __esm({
534
+ "src/hooks/index.ts"() {
535
+ init_toolkitsProvider();
542
536
  usePermissions = (codes = []) => {
543
- const isPermissionApiV2 = useContextStore((state) => state.isPermissionApiV2);
544
- const url4 = isPermissionApiV2 ? "/api/usystem/user/checkV2" : "/api/usystem/user/check";
545
- const key = codes.length ? { method: "POST", url: url4, data: { permissions: codes } } : null;
546
- const { data, ...rest } = useSWR6(key);
537
+ const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
538
+ const { data, ...rest } = useSWR5(
539
+ codes.length ? [
540
+ permissionVersion !== "v1" /* V1 */ ? "/api/usystem/user/checkV2" : "/api/usystem/user/check",
541
+ { permissions: codes }
542
+ ] : null,
543
+ ([url4, body]) => axios2.post(url4, body).then((response) => response.data.data)
544
+ );
547
545
  const newData = codes.reduce((acc, curr) => {
548
546
  acc[curr] = data?.has_all ? true : data?.[curr] ?? false;
549
547
  return acc;
@@ -552,23 +550,478 @@ var init_permission = __esm({
552
550
  };
553
551
  usePermission = (code) => {
554
552
  const { data, isValidating, isLoading } = usePermissions(code ? [code] : void 0);
555
- if (code === void 0) {
556
- return {
557
- accessible: true,
558
- isValidating: false,
559
- isLoading: false
560
- };
561
- }
562
553
  return {
563
- accessible: data?.[code] ?? false,
554
+ accessible: code ? data?.[code] : true,
564
555
  isValidating,
565
556
  isLoading
566
557
  };
567
558
  };
568
559
  }
569
560
  });
570
- var useModalStore;
561
+ var useGames, useFindGame;
562
+ var init_hooks3 = __esm({
563
+ "src/components/layout/hooks.ts"() {
564
+ init_constants();
565
+ init_toolkitsProvider();
566
+ useGames = () => {
567
+ const { axios: axios2, gameApiV2 } = useToolkitsStore((s) => s);
568
+ return useSWR5("/api/game/list", async () => {
569
+ const headers = new AxiosHeaders({ [APP_ID_HEADER]: "global" });
570
+ const games = gameApiV2 ? await axios2({
571
+ url: "/api/game/list",
572
+ headers
573
+ }).then((response) => response.data.data.list ?? []) : await axios2({
574
+ url: "/api/usystem/game/all",
575
+ headers
576
+ }).then((response) => response.data.data ?? []);
577
+ return games;
578
+ });
579
+ };
580
+ useFindGame = (id2) => {
581
+ const { data } = useGames();
582
+ const { gameApiV2 } = useToolkitsStore((s) => s);
583
+ return data?.find((item) => String(gameApiV2 ? item.game_id : item.id) === String(id2));
584
+ };
585
+ }
586
+ });
587
+ var Logo, Logo_default;
588
+ var init_Logo = __esm({
589
+ "src/components/logo/Logo.tsx"() {
590
+ Logo = (props) => {
591
+ return /* @__PURE__ */ jsx("img", { src: logoUrl, alt: "logo", ...props });
592
+ };
593
+ Logo_default = Logo;
594
+ }
595
+ });
596
+
597
+ // src/components/logo/index.ts
598
+ var init_logo = __esm({
599
+ "src/components/logo/index.ts"() {
600
+ init_Logo();
601
+ }
602
+ });
603
+ var useNavStore;
571
604
  var init_stores2 = __esm({
605
+ "src/components/navMenu/stores.ts"() {
606
+ useNavStore = create()(
607
+ persist(
608
+ (set) => ({
609
+ openKeys: [],
610
+ setOpenKeys: (keys) => set({ openKeys: keys }),
611
+ selectedKeys: [],
612
+ setSelectedKeys: (keys) => set({ selectedKeys: keys })
613
+ }),
614
+ {
615
+ name: "nav",
616
+ storage: createJSONStorage(() => localStorage),
617
+ partialize: (state) => ({
618
+ openKeys: state.openKeys,
619
+ selectedKeys: state.selectedKeys
620
+ })
621
+ }
622
+ )
623
+ );
624
+ }
625
+ });
626
+ function transformItems(items) {
627
+ const result = [];
628
+ if (items) {
629
+ for (let i = 0; i < items.length; i++) {
630
+ if (items[i] === null || items[i].type === "divider") {
631
+ result[i] = items[i];
632
+ } else if (items[i].children) {
633
+ const { children, ...rest } = items[i];
634
+ result[i] = {
635
+ ...rest,
636
+ children: transformItems(children)
637
+ };
638
+ } else {
639
+ const { route, label, ...rest } = items[i];
640
+ const labelNode = route ? /* @__PURE__ */ jsx(Link, { to: route, children: label }) : label;
641
+ result[i] = {
642
+ ...rest,
643
+ label: labelNode
644
+ };
645
+ }
646
+ }
647
+ }
648
+ return result;
649
+ }
650
+ function flatItems(items, result = [], keypath = []) {
651
+ for (const item of items) {
652
+ const children = item?.children;
653
+ if (Array.isArray(children)) {
654
+ const keys = item.type !== "group" && item.key ? [...keypath, item.key] : keypath;
655
+ flatItems(children, result, keys);
656
+ } else if (item) {
657
+ result.push(Object.assign(item, { keypath }));
658
+ }
659
+ }
660
+ return result;
661
+ }
662
+ var init_utils2 = __esm({
663
+ "src/components/navMenu/utils.tsx"() {
664
+ }
665
+ });
666
+ var NavMenu, NavMenu_default;
667
+ var init_NavMenu = __esm({
668
+ "src/components/navMenu/NavMenu.tsx"() {
669
+ init_stores2();
670
+ init_utils2();
671
+ NavMenu = memo(function NavMenu2(props) {
672
+ const { items, theme: theme4, loading } = props;
673
+ const location = useLocation();
674
+ const flattenItems = useMemo(() => flatItems(items ?? []), [items]);
675
+ const internalItems = useMemo(() => transformItems(items ?? []), [items]);
676
+ const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore();
677
+ const onOpenChange = useCallback(
678
+ (keys) => {
679
+ const lastOpenKey = keys?.find((key) => openKeys?.indexOf(key) === -1);
680
+ const match = flattenItems.find((item) => lastOpenKey === item.key);
681
+ setOpenKeys(match?.keypath ?? [lastOpenKey]);
682
+ },
683
+ [flattenItems, openKeys, setOpenKeys]
684
+ );
685
+ useEffect(() => {
686
+ const match = flattenItems.find((item) => location.pathname === item.route);
687
+ if (match) {
688
+ const key = match.key;
689
+ const keypath = match.keypath;
690
+ setSelectedKeys([key]);
691
+ setOpenKeys(keypath);
692
+ }
693
+ }, [flattenItems, location]);
694
+ if (loading) {
695
+ return /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", style: { height: "calc(100vh - 64px)" }, children: /* @__PURE__ */ jsx(Spin, {}) });
696
+ }
697
+ return /* @__PURE__ */ jsx(
698
+ Menu,
699
+ {
700
+ theme: theme4,
701
+ style: { borderRight: "none" },
702
+ items: internalItems,
703
+ mode: "inline",
704
+ openKeys,
705
+ selectedKeys,
706
+ onOpenChange
707
+ }
708
+ );
709
+ });
710
+ if (process.env.NODE_ENV === "development") {
711
+ NavMenu.displayName = "NavMenu";
712
+ }
713
+ NavMenu_default = NavMenu;
714
+ }
715
+ });
716
+
717
+ // src/components/navMenu/index.ts
718
+ var init_navMenu = __esm({
719
+ "src/components/navMenu/index.ts"() {
720
+ init_NavMenu();
721
+ }
722
+ });
723
+ var Spin3, RequireGame, RequireGame_default;
724
+ var init_RequireGame = __esm({
725
+ "src/components/requireGame/RequireGame.tsx"() {
726
+ init_layout();
727
+ init_locale();
728
+ init_toolkitsProvider();
729
+ ({ Spin: Spin3 } = Antd2);
730
+ RequireGame = ({ children }) => {
731
+ const { permissionVersion, game, getGameId, isGlobal } = useToolkitsStore((s) => s);
732
+ const { isLoading } = useGames();
733
+ const { t } = useTranslation();
734
+ if (isLoading) {
735
+ return /* @__PURE__ */ jsx(
736
+ "div",
737
+ {
738
+ style: {
739
+ display: "flex",
740
+ justifyContent: "center",
741
+ alignItems: "center",
742
+ height: 400
743
+ },
744
+ children: /* @__PURE__ */ jsx(Spin3, {})
745
+ }
746
+ );
747
+ }
748
+ if (permissionVersion === "v1" /* V1 */ || isGlobal) {
749
+ return children;
750
+ }
751
+ if (!game) {
752
+ return /* @__PURE__ */ jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: t("RequireGame.description") });
753
+ }
754
+ const gameId = getGameId();
755
+ return /* @__PURE__ */ jsx(Fragment$1, { children }, gameId);
756
+ };
757
+ RequireGame_default = RequireGame;
758
+ }
759
+ });
760
+
761
+ // src/components/requireGame/index.ts
762
+ var init_requireGame = __esm({
763
+ "src/components/requireGame/index.ts"() {
764
+ init_RequireGame();
765
+ }
766
+ });
767
+ var UserWidget, UserWidget_default;
768
+ var init_UserWidget = __esm({
769
+ "src/components/userWidget/UserWidget.tsx"() {
770
+ init_locale();
771
+ init_toolkitsProvider();
772
+ UserWidget = () => {
773
+ const { t } = useTranslation();
774
+ const navigate = useNavigate();
775
+ const { clearToken, getUser, signInPath } = useToolkitsStore((s) => s);
776
+ const user = getUser();
777
+ const items = [
778
+ {
779
+ key: "1",
780
+ icon: /* @__PURE__ */ jsx(LogoutOutlined, {}),
781
+ label: /* @__PURE__ */ jsx(
782
+ "a",
783
+ {
784
+ onClick: () => {
785
+ clearToken();
786
+ navigate(signInPath);
787
+ },
788
+ children: t("UserWidget.signOutText")
789
+ }
790
+ )
791
+ }
792
+ ];
793
+ return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
794
+ Dropdown,
795
+ {
796
+ menu: {
797
+ selectable: true,
798
+ items
799
+ },
800
+ placement: "bottomRight",
801
+ children: /* @__PURE__ */ jsx(
802
+ "a",
803
+ {
804
+ onClick: (e) => {
805
+ e.preventDefault();
806
+ },
807
+ children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
808
+ /* @__PURE__ */ jsx("span", { children: user?.authorityId }),
809
+ /* @__PURE__ */ jsx(UserOutlined, { style: { fontSize: "16px" } })
810
+ ] })
811
+ }
812
+ )
813
+ }
814
+ ) });
815
+ };
816
+ UserWidget_default = UserWidget;
817
+ }
818
+ });
819
+
820
+ // src/components/userWidget/index.ts
821
+ var init_userWidget = __esm({
822
+ "src/components/userWidget/index.ts"() {
823
+ init_UserWidget();
824
+ }
825
+ });
826
+ var Text, GameSelect, GameSelect_default;
827
+ var init_GameSelect = __esm({
828
+ "src/components/layout/GameSelect.tsx"() {
829
+ init_locale();
830
+ init_toolkitsProvider();
831
+ init_hooks3();
832
+ ({ Text } = Typography);
833
+ GameSelect = (props) => {
834
+ const { filter } = props;
835
+ const { t } = useTranslation();
836
+ const { gameApiV2, setGame, getGameId } = useToolkitsStore((s) => s);
837
+ const { data, isLoading } = useGames();
838
+ const options = data?.filter((item) => filter?.(item) ?? true)?.map((item) => ({
839
+ label: item.name,
840
+ value: gameApiV2 ? item.game_id : item.id
841
+ }));
842
+ const onChange = async (value2) => {
843
+ const game = data?.find((item) => String(gameApiV2 ? item.game_id : item.id) === String(value2));
844
+ setGame(game);
845
+ };
846
+ const value = getGameId();
847
+ return /* @__PURE__ */ jsxs(Space, { children: [
848
+ /* @__PURE__ */ jsx(Text, { children: t("GameSelect.label") }),
849
+ /* @__PURE__ */ jsx(
850
+ Select,
851
+ {
852
+ showSearch: true,
853
+ optionFilterProp: "label",
854
+ value,
855
+ placeholder: t("GameSelect.placeholder"),
856
+ loading: isLoading,
857
+ style: { width: "200px" },
858
+ options,
859
+ onChange
860
+ }
861
+ )
862
+ ] });
863
+ };
864
+ GameSelect_default = GameSelect;
865
+ }
866
+ });
867
+ var useLayoutStore;
868
+ var init_stores3 = __esm({
869
+ "src/components/layout/stores.ts"() {
870
+ useLayoutStore = create()(
871
+ persist(
872
+ (set) => ({
873
+ collapsed: false,
874
+ setCollapsed: (collapsed) => set({ collapsed })
875
+ }),
876
+ {
877
+ name: "layout",
878
+ storage: createJSONStorage(() => localStorage),
879
+ partialize: (state) => ({ collapsed: state.collapsed })
880
+ }
881
+ )
882
+ );
883
+ }
884
+ });
885
+
886
+ // src/components/layout/style.css
887
+ var init_style = __esm({
888
+ "src/components/layout/style.css"() {
889
+ }
890
+ });
891
+ var Spin4, theme3, Header, Sider, Content, Layout2, Layout_default;
892
+ var init_Layout = __esm({
893
+ "src/components/layout/Layout.tsx"() {
894
+ init_logo();
895
+ init_navMenu();
896
+ init_requireGame();
897
+ init_toolkitsProvider();
898
+ init_userWidget();
899
+ init_GameSelect();
900
+ init_stores3();
901
+ init_style();
902
+ ({ Spin: Spin4, theme: theme3 } = Antd2);
903
+ ({ Header, Sider, Content } = Antd2.Layout);
904
+ Layout2 = (props) => {
905
+ const { menuCollapsible, isMenuLoading, title, items, headerExtra, children, navWidth, hideGameSelect, filter } = props;
906
+ const {
907
+ token: { colorBgContainer, colorBorder }
908
+ } = theme3.useToken();
909
+ const {
910
+ permissionVersion,
911
+ layoutTitle,
912
+ navWidth: globalNavWidth,
913
+ menuCollapsible: globalMenuCollapsible
914
+ } = useToolkitsStore((s) => s);
915
+ const { collapsed, setCollapsed } = useLayoutStore();
916
+ const onCollapse = async () => {
917
+ setCollapsed(!collapsed);
918
+ };
919
+ const collapsible = menuCollapsible ?? globalMenuCollapsible ?? false;
920
+ return /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
921
+ /* @__PURE__ */ jsxs(
922
+ Sider,
923
+ {
924
+ collapsible,
925
+ theme: "light",
926
+ trigger: null,
927
+ collapsed,
928
+ width: navWidth ?? globalNavWidth,
929
+ style: {
930
+ height: "100vh",
931
+ overflow: "auto",
932
+ borderRightWidth: 1,
933
+ borderRightStyle: "solid",
934
+ borderRightColor: colorBorder
935
+ },
936
+ children: [
937
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2 px-6 py-4 overflow-hidden", children: [
938
+ /* @__PURE__ */ jsx(Logo_default, { width: 32, height: 32 }),
939
+ (!collapsible || !collapsed) && /* @__PURE__ */ jsx("div", { className: "h-8 flex items-center expand", children: title ?? layoutTitle })
940
+ ] }),
941
+ /* @__PURE__ */ jsx(NavMenu_default, { items, loading: isMenuLoading })
942
+ ]
943
+ }
944
+ ),
945
+ /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
946
+ /* @__PURE__ */ jsx(
947
+ Header,
948
+ {
949
+ style: {
950
+ padding: "0 24px",
951
+ background: colorBgContainer
952
+ },
953
+ children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-full", children: [
954
+ /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), className: "mr-6", children: [
955
+ collapsible && /* @__PURE__ */ jsx(
956
+ Button,
957
+ {
958
+ type: "text",
959
+ icon: collapsed ? /* @__PURE__ */ jsx(MenuUnfoldOutlined, {}) : /* @__PURE__ */ jsx(MenuFoldOutlined, {}),
960
+ style: { fontSize: "16px" },
961
+ onClick: onCollapse
962
+ }
963
+ ),
964
+ permissionVersion !== "v1" /* V1 */ && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, { filter }),
965
+ headerExtra?.left?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key))
966
+ ] }),
967
+ /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), children: [
968
+ headerExtra?.right?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key)),
969
+ /* @__PURE__ */ jsx(UserWidget_default, {})
970
+ ] })
971
+ ] })
972
+ }
973
+ ),
974
+ /* @__PURE__ */ jsx(
975
+ Content,
976
+ {
977
+ style: {
978
+ overflow: "auto",
979
+ padding: "24px 16px",
980
+ maxHeight: "calc(100vh - 64px)"
981
+ },
982
+ children: /* @__PURE__ */ jsx(
983
+ Suspense,
984
+ {
985
+ fallback: /* @__PURE__ */ jsx(
986
+ Spin4,
987
+ {
988
+ style: {
989
+ display: "flex",
990
+ justifyContent: "center",
991
+ alignItems: "center",
992
+ height: "200px"
993
+ }
994
+ }
995
+ ),
996
+ children: /* @__PURE__ */ jsx(RequireGame_default, { children })
997
+ }
998
+ )
999
+ }
1000
+ )
1001
+ ] })
1002
+ ] });
1003
+ };
1004
+ Layout_default = Layout2;
1005
+ }
1006
+ });
1007
+
1008
+ // src/components/layout/types.ts
1009
+ var init_types = __esm({
1010
+ "src/components/layout/types.ts"() {
1011
+ }
1012
+ });
1013
+
1014
+ // src/components/layout/index.ts
1015
+ var init_layout = __esm({
1016
+ "src/components/layout/index.ts"() {
1017
+ init_hooks3();
1018
+ init_Layout();
1019
+ init_stores3();
1020
+ init_types();
1021
+ }
1022
+ });
1023
+ var useModalStore;
1024
+ var init_stores4 = __esm({
572
1025
  "src/components/modal/stores.ts"() {
573
1026
  useModalStore = create((set, get2) => ({
574
1027
  open: /* @__PURE__ */ new Map(),
@@ -621,7 +1074,7 @@ function useModal(props) {
621
1074
  var id;
622
1075
  var init_modal = __esm({
623
1076
  "src/components/modal/modal.tsx"() {
624
- init_stores2();
1077
+ init_stores4();
625
1078
  id = 0;
626
1079
  }
627
1080
  });
@@ -675,12 +1128,13 @@ var init_modal2 = __esm({
675
1128
  "src/components/modal/index.ts"() {
676
1129
  init_formModal();
677
1130
  init_modal();
1131
+ init_stores4();
678
1132
  }
679
1133
  });
680
1134
  var PermissionButton, PermissionButton_default;
681
1135
  var init_PermissionButton = __esm({
682
1136
  "src/components/permissionButton/PermissionButton.tsx"() {
683
- init_permission();
1137
+ init_hooks2();
684
1138
  init_locale();
685
1139
  PermissionButton = (props) => {
686
1140
  const { children, code, showLoading, disabled, ...restProps } = props;
@@ -706,7 +1160,7 @@ var init_permissionButton = __esm({
706
1160
  }
707
1161
  });
708
1162
  var useQueryListStore;
709
- var init_stores3 = __esm({
1163
+ var init_stores5 = __esm({
710
1164
  "src/components/queryList/stores.ts"() {
711
1165
  useQueryListStore = create((set, get2) => ({
712
1166
  keyMap: /* @__PURE__ */ new Map(),
@@ -738,11 +1192,11 @@ var init_stores3 = __esm({
738
1192
  var QueryListAction, InternalQueryList, QueryList, QueryList_default;
739
1193
  var init_QueryList = __esm({
740
1194
  "src/components/queryList/QueryList.tsx"() {
741
- init_permission();
742
- init_contextProvider();
1195
+ init_hooks2();
743
1196
  init_filterFormWrapper();
744
1197
  init_locale();
745
- init_stores3();
1198
+ init_toolkitsProvider();
1199
+ init_stores5();
746
1200
  QueryListAction = /* @__PURE__ */ ((QueryListAction2) => {
747
1201
  QueryListAction2[QueryListAction2["Confirm"] = 0] = "Confirm";
748
1202
  QueryListAction2[QueryListAction2["Reset"] = 1] = "Reset";
@@ -818,8 +1272,8 @@ var init_QueryList = __esm({
818
1272
  keyMap.set(url4, serializedKey);
819
1273
  return serializedKey;
820
1274
  }, [accessible, isValid, url4, requestConfig]);
821
- const { axios: axios2 } = useContextStore((s) => s);
822
- const { data, isValidating } = useSWR6(
1275
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1276
+ const { data, isValidating } = useSWR5(
823
1277
  key,
824
1278
  async () => {
825
1279
  const response = await axios2.request(requestConfig);
@@ -965,7 +1419,7 @@ var init_QueryList = __esm({
965
1419
  var init_queryList = __esm({
966
1420
  "src/components/queryList/index.ts"() {
967
1421
  init_QueryList();
968
- init_stores3();
1422
+ init_stores5();
969
1423
  }
970
1424
  });
971
1425
 
@@ -977,42 +1431,29 @@ var init_constants2 = __esm({
977
1431
  }
978
1432
  });
979
1433
  function useCreateMenu() {
980
- const { axios: axios2 } = useContextStore((s) => s);
1434
+ const { axios: axios2 } = useToolkitsStore((s) => s);
981
1435
  return useSWRMutation2(
982
1436
  "/api/usystem/menu/set",
983
1437
  (url4, { arg }) => axios2.post(url4, { ...arg, id: 0, is_model: true })
984
1438
  );
985
1439
  }
986
1440
  function useUpdateMenu() {
987
- const { axios: axios2 } = useContextStore((s) => s);
1441
+ const { axios: axios2 } = useToolkitsStore((s) => s);
988
1442
  return useSWRMutation2(
989
1443
  "/api/usystem/menu/set",
990
1444
  (url4, { arg }) => axios2.post(url4, { ...arg, is_model: true })
991
1445
  );
992
1446
  }
993
- function useMenuList() {
994
- const { selectedGame, signInPath, axios: axios2 } = useContextStore((s) => s);
995
- return useSWR6(
996
- window.location.pathname !== signInPath ? ["/api/usystem/menu/navbar", selectedGame] : null,
997
- ([url4]) => axios2(url4).then((response) => response.data.data)
998
- );
999
- }
1000
1447
  function useRemoveMenu() {
1001
- const { axios: axios2 } = useContextStore((s) => s);
1448
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1002
1449
  return useSWRMutation2(
1003
1450
  "/api/usystem/menu/delete",
1004
1451
  (url4, { arg }) => axios2.post(url4, null, { params: { id: arg } })
1005
1452
  );
1006
1453
  }
1007
- var init_hooks2 = __esm({
1454
+ var init_hooks4 = __esm({
1008
1455
  "src/features/menu/hooks/index.ts"() {
1009
- init_contextProvider();
1010
- }
1011
- });
1012
-
1013
- // src/features/menu/types/index.ts
1014
- var init_types = __esm({
1015
- "src/features/menu/types/index.ts"() {
1456
+ init_toolkitsProvider();
1016
1457
  }
1017
1458
  });
1018
1459
 
@@ -1020,8 +1461,7 @@ var init_types = __esm({
1020
1461
  var init_menu = __esm({
1021
1462
  "src/features/menu/index.ts"() {
1022
1463
  init_constants2();
1023
- init_hooks2();
1024
- init_types();
1464
+ init_hooks4();
1025
1465
  }
1026
1466
  });
1027
1467
 
@@ -1037,6 +1477,7 @@ var init_menuItemList = __esm({
1037
1477
  init_locale();
1038
1478
  init_queryList();
1039
1479
  init_menu();
1480
+ init_hooks4();
1040
1481
  init_hooks2();
1041
1482
  MenuItemList = () => {
1042
1483
  const { t } = useTranslation();
@@ -1136,7 +1577,6 @@ var init_menuItemList = __esm({
1136
1577
  children: /* @__PURE__ */ jsx(
1137
1578
  QueryList_default,
1138
1579
  {
1139
- isGlobal: true,
1140
1580
  onePage: true,
1141
1581
  code: "9900001",
1142
1582
  rowKey: "id",
@@ -1162,6 +1602,7 @@ var init_createMenuItem = __esm({
1162
1602
  "src/pages/menu/createMenuItem/index.tsx"() {
1163
1603
  init_constants();
1164
1604
  init_menu();
1605
+ init_hooks2();
1165
1606
  CreateMenuItem = () => {
1166
1607
  const { message } = App.useApp();
1167
1608
  const [form] = Form.useForm();
@@ -1247,9 +1688,10 @@ __export(updateMenuItem_exports, {
1247
1688
  var EditMenuItem, updateMenuItem_default;
1248
1689
  var init_updateMenuItem = __esm({
1249
1690
  "src/pages/menu/updateMenuItem/index.tsx"() {
1250
- init_contextProvider();
1691
+ init_toolkitsProvider();
1251
1692
  init_constants();
1252
1693
  init_menu();
1694
+ init_hooks2();
1253
1695
  EditMenuItem = () => {
1254
1696
  const { message } = App.useApp();
1255
1697
  const [form] = Form.useForm();
@@ -1257,8 +1699,8 @@ var init_updateMenuItem = __esm({
1257
1699
  const { trigger } = useUpdateMenu();
1258
1700
  const params = useParams();
1259
1701
  const { mutate: mutate2 } = useMenuList();
1260
- const { axios: axios2 } = useContextStore((s) => s);
1261
- const { data, isLoading } = useSWR6(
1702
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1703
+ const { data, isLoading } = useSWR5(
1262
1704
  `/api/usystem/menu/info?id=${params.id}`,
1263
1705
  (url4) => axios2(url4).then((response) => response.data.data)
1264
1706
  );
@@ -1344,49 +1786,55 @@ var init_updateMenuItem = __esm({
1344
1786
  }
1345
1787
  });
1346
1788
  function useAllPermissions() {
1347
- return useSWR6({
1348
- url: "/api/usystem/user/allPermssions"
1349
- });
1789
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1790
+ return useSWR5(
1791
+ "/api/usystem/user/allPermssions",
1792
+ (url4) => axios2.get(url4).then((response) => response.data.data)
1793
+ );
1350
1794
  }
1351
1795
  function useAllPermissionsV2() {
1352
- return useSWR6({
1353
- url: "/api/usystem/user/allPermissionsV2"
1354
- });
1796
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1797
+ return useSWR5(
1798
+ "/api/usystem/user/allPermissionsV2",
1799
+ (url4) => axios2.get(url4).then((response) => response.data.data)
1800
+ );
1355
1801
  }
1356
1802
  function useAllRoles() {
1803
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1357
1804
  const { accessible } = usePermission("200005");
1358
- return useSWR6(
1359
- accessible ? {
1360
- url: "/api/usystem/role/all"
1361
- } : null
1805
+ return useSWR5(
1806
+ accessible ? "/api/usystem/role/all" : null,
1807
+ (url4) => axios2.get(url4).then((response) => response.data.data)
1362
1808
  );
1363
1809
  }
1364
1810
  function useRole(name) {
1365
- const isPermissionApiV2 = useContextStore((state) => state.isPermissionApiV2);
1366
- return useSWR6({
1367
- url: `/api/usystem/role/${isPermissionApiV2 ? "infoV2" : "info"}?name=${name}`
1368
- });
1811
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1812
+ const permissionVersion = useToolkitsStore((state) => state.permissionVersion);
1813
+ return useSWR5(
1814
+ `/api/usystem/role/${permissionVersion === "v2" /* V2 */ ? "infoV2" : "info"}?name=${name}`,
1815
+ (url4) => axios2.get(url4).then((response) => response.data.data)
1816
+ );
1369
1817
  }
1370
1818
  function useCreateRole() {
1371
- const { axios: axios2, isPermissionApiV2 } = useContextStore((s) => s);
1819
+ const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
1372
1820
  return useSWRMutation2(
1373
- isPermissionApiV2 ? "/api/usystem/role/createV2" : "/api/usystem/role/create",
1821
+ permissionVersion === "v2" /* V2 */ ? "/api/usystem/role/createV2" : "/api/usystem/role/create",
1374
1822
  (url4, {
1375
1823
  arg
1376
1824
  }) => axios2.post(url4, arg)
1377
1825
  );
1378
1826
  }
1379
1827
  function useUpdateRole() {
1380
- const { axios: axios2, isPermissionApiV2 } = useContextStore((s) => s);
1828
+ const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
1381
1829
  return useSWRMutation2(
1382
- isPermissionApiV2 ? "/api/usystem/role/updateV2" : "/api/usystem/role/update",
1830
+ permissionVersion === "v2" /* V2 */ ? "/api/usystem/role/updateV2" : "/api/usystem/role/update",
1383
1831
  (url4, {
1384
1832
  arg
1385
1833
  }) => axios2.post(url4, arg)
1386
1834
  );
1387
1835
  }
1388
1836
  function useRemoveRole() {
1389
- const { axios: axios2 } = useContextStore((s) => s);
1837
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1390
1838
  return useSWRMutation2(
1391
1839
  "/api/usystem/role/delete",
1392
1840
  (url4, {
@@ -1395,7 +1843,7 @@ function useRemoveRole() {
1395
1843
  );
1396
1844
  }
1397
1845
  function useCreateUser() {
1398
- const { axios: axios2 } = useContextStore((s) => s);
1846
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1399
1847
  return useSWRMutation2(
1400
1848
  "/api/usystem/user/create",
1401
1849
  (url4, {
@@ -1404,7 +1852,7 @@ function useCreateUser() {
1404
1852
  );
1405
1853
  }
1406
1854
  function useUpdateUser() {
1407
- const { axios: axios2 } = useContextStore((s) => s);
1855
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1408
1856
  return useSWRMutation2(
1409
1857
  "/api/usystem/user/update",
1410
1858
  (url4, {
@@ -1413,7 +1861,7 @@ function useUpdateUser() {
1413
1861
  );
1414
1862
  }
1415
1863
  function useRemoveUser() {
1416
- const { axios: axios2 } = useContextStore((s) => s);
1864
+ const { axios: axios2 } = useToolkitsStore((s) => s);
1417
1865
  return useSWRMutation2(
1418
1866
  "/api/usystem/user/delete",
1419
1867
  (url4, {
@@ -1421,19 +1869,74 @@ function useRemoveUser() {
1421
1869
  }) => axios2.post(url4, arg)
1422
1870
  );
1423
1871
  }
1424
- var init_hooks3 = __esm({
1425
- "src/features/permission/hooks/index.ts"() {
1426
- init_contextProvider();
1427
- init_permission();
1428
- }
1429
- });
1430
- var PermissionCollapse, permissionCollapse_default;
1431
- var init_permissionCollapse = __esm({
1432
- "src/features/permission/components/permissionCollapse/index.tsx"() {
1872
+ var useRoleModal;
1873
+ var init_hooks5 = __esm({
1874
+ "src/features/permission/hooks/index.tsx"() {
1433
1875
  init_locale();
1434
- PermissionCollapse = (props) => {
1435
- const { permissions, readonly, expand, value, onChange } = props;
1436
- const [activeKey, setActiveKey] = useState([]);
1876
+ init_modal2();
1877
+ init_queryList();
1878
+ init_toolkitsProvider();
1879
+ init_hooks2();
1880
+ init_components();
1881
+ useRoleModal = (isCreate) => {
1882
+ const { message } = App.useApp();
1883
+ const { t } = useTranslation();
1884
+ const { refetch, mutate: mutate2 } = useQueryListStore();
1885
+ const create5 = useCreateRole();
1886
+ const update = useUpdateRole();
1887
+ const title = isCreate ? t("RoleList.createTitle") : t("RoleList.updateTitle");
1888
+ const formProps = {
1889
+ layout: "vertical"
1890
+ };
1891
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1892
+ /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate, addonBefore: "role_" }) }),
1893
+ /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
1894
+ ] });
1895
+ const url4 = "/api/usystem/role/list";
1896
+ const onConfirm = async (values, extraValues) => {
1897
+ if (isCreate) {
1898
+ await create5.trigger({
1899
+ name: `role_${values.name}`,
1900
+ permissions: values.permissions
1901
+ });
1902
+ refetch(url4, { page: 1 });
1903
+ message.success(t("RoleList.createSuccessfully"));
1904
+ } else {
1905
+ await update.trigger({
1906
+ id: extraValues?.id,
1907
+ name: `role_${values.name}`,
1908
+ permissions: values.permissions
1909
+ });
1910
+ mutate2(
1911
+ url4,
1912
+ (prev) => produce(prev, (draft) => {
1913
+ const match = draft?.List?.find((item) => item.id === extraValues?.id);
1914
+ if (match) {
1915
+ match.permissions = values.permissions;
1916
+ }
1917
+ }),
1918
+ { revalidate: false }
1919
+ );
1920
+ message.success(t("RoleList.updateSuccessfully"));
1921
+ }
1922
+ };
1923
+ return useFormModal({
1924
+ title,
1925
+ width: "50vw",
1926
+ formProps,
1927
+ content,
1928
+ onConfirm
1929
+ });
1930
+ };
1931
+ }
1932
+ });
1933
+ var PermissionCollapse, permissionCollapse_default;
1934
+ var init_permissionCollapse = __esm({
1935
+ "src/features/permission/components/permissionCollapse/index.tsx"() {
1936
+ init_locale();
1937
+ PermissionCollapse = (props) => {
1938
+ const { permissions, readonly, expand, value, onChange } = props;
1939
+ const [activeKey, setActiveKey] = useState([]);
1437
1940
  const [checkedMap, setCheckedMap] = useState({});
1438
1941
  const [internalValue, setInternalValue] = useState(value ?? []);
1439
1942
  const { t } = useTranslation();
@@ -1518,43 +2021,15 @@ var init_permissionCollapse = __esm({
1518
2021
  permissionCollapse_default = PermissionCollapse;
1519
2022
  }
1520
2023
  });
1521
- var Text2, PermissionListV1, permissionListV1_default;
1522
- var init_permissionListV1 = __esm({
1523
- "src/features/permission/components/permissionListV1/index.tsx"() {
2024
+ var Text2, Option2, PermissionWithGame, PermissionWithGame_default;
2025
+ var init_PermissionWithGame = __esm({
2026
+ "src/features/permission/components/permissionList/PermissionWithGame.tsx"() {
1524
2027
  init_locale();
1525
- init_hooks3();
2028
+ init_hooks5();
1526
2029
  init_permissionCollapse();
1527
2030
  ({ Text: Text2 } = Typography);
1528
- PermissionListV1 = (props) => {
1529
- const { expand = true, value, readonly, onChange } = props;
1530
- const { data: permissions, isLoading, error } = useAllPermissions();
1531
- const { t } = useTranslation();
1532
- if (error) {
1533
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text2, { type: "danger", children: t("PermissionList.failedDescription") }) });
1534
- }
1535
- return /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
1536
- permissionCollapse_default,
1537
- {
1538
- value,
1539
- permissions,
1540
- readonly,
1541
- expand,
1542
- onChange
1543
- }
1544
- ) });
1545
- };
1546
- permissionListV1_default = PermissionListV1;
1547
- }
1548
- });
1549
- var Text3, Option2, PermissionListV2, permissionListV2_default;
1550
- var init_permissionListV2 = __esm({
1551
- "src/features/permission/components/permissionListV2/index.tsx"() {
1552
- init_locale();
1553
- init_hooks3();
1554
- init_permissionCollapse();
1555
- ({ Text: Text3 } = Typography);
1556
2031
  ({ Option: Option2 } = Select);
1557
- PermissionListV2 = (props) => {
2032
+ PermissionWithGame = (props) => {
1558
2033
  const { expand = true, value, readonly, onChange } = props;
1559
2034
  const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2();
1560
2035
  const [gameList, setGameList] = useState([]);
@@ -1571,7 +2046,7 @@ var init_permissionListV2 = __esm({
1571
2046
  setGameList(list);
1572
2047
  }, [value]);
1573
2048
  if (error) {
1574
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text3, { type: "danger", children: t("PermissionList.failedDescription") }) });
2049
+ return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text2, { type: "danger", children: t("PermissionList.failedDescription") }) });
1575
2050
  }
1576
2051
  const addGame = () => {
1577
2052
  setGameList((prev) => [...prev, { gameId: "", permissions: [] }]);
@@ -1601,8 +2076,8 @@ var init_permissionListV2 = __esm({
1601
2076
  Card,
1602
2077
  {
1603
2078
  title: /* @__PURE__ */ jsxs(Space, { children: [
1604
- /* @__PURE__ */ jsx(Text3, { children: t("global.game") }),
1605
- readonly ? /* @__PURE__ */ jsx(Text3, { children: games?.find((game) => String(game.id) === item.gameId)?.name }) : /* @__PURE__ */ jsx(
2079
+ /* @__PURE__ */ jsx(Text2, { children: t("global.game") }),
2080
+ readonly ? /* @__PURE__ */ jsx(Text2, { children: games?.find((game) => String(game.id) === item.gameId)?.name }) : /* @__PURE__ */ jsx(
1606
2081
  Select,
1607
2082
  {
1608
2083
  disabled: readonly,
@@ -1660,24 +2135,59 @@ var init_permissionListV2 = __esm({
1660
2135
  !readonly && /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: addGame, children: t("PermissionList.addText") })
1661
2136
  ] });
1662
2137
  };
1663
- permissionListV2_default = PermissionListV2;
2138
+ PermissionWithGame_default = PermissionWithGame;
2139
+ }
2140
+ });
2141
+ var Text3, PermissionWithoutGame, PermissionWithoutGame_default;
2142
+ var init_PermissionWithoutGame = __esm({
2143
+ "src/features/permission/components/permissionList/PermissionWithoutGame.tsx"() {
2144
+ init_locale();
2145
+ init_hooks5();
2146
+ init_permissionCollapse();
2147
+ ({ Text: Text3 } = Typography);
2148
+ PermissionWithoutGame = (props) => {
2149
+ const { expand = true, value, readonly, onChange } = props;
2150
+ const { data: permissions, isLoading, error } = useAllPermissions();
2151
+ const { t } = useTranslation();
2152
+ if (error) {
2153
+ return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text3, { type: "danger", children: t("PermissionList.failedDescription") }) });
2154
+ }
2155
+ return /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
2156
+ permissionCollapse_default,
2157
+ {
2158
+ value,
2159
+ permissions,
2160
+ readonly,
2161
+ expand,
2162
+ onChange
2163
+ }
2164
+ ) });
2165
+ };
2166
+ PermissionWithoutGame_default = PermissionWithoutGame;
1664
2167
  }
1665
2168
  });
1666
2169
  var PermissionList, permissionList_default;
1667
2170
  var init_permissionList = __esm({
1668
2171
  "src/features/permission/components/permissionList/index.tsx"() {
1669
- init_contextProvider();
1670
- init_permissionListV1();
1671
- init_permissionListV2();
2172
+ init_toolkitsProvider();
2173
+ init_PermissionWithGame();
2174
+ init_PermissionWithoutGame();
1672
2175
  PermissionList = (props) => {
1673
2176
  const { value } = props;
1674
- const isPermissionApiV2 = useContextStore((state) => state.isPermissionApiV2);
1675
- return /* @__PURE__ */ jsx(Fragment, { children: isPermissionApiV2 ? /* @__PURE__ */ jsx(permissionListV2_default, { ...props, value }) : /* @__PURE__ */ jsx(permissionListV1_default, { ...props, value }) });
2177
+ const version = useToolkitsStore((state) => state.permissionVersion);
2178
+ return /* @__PURE__ */ jsx(Fragment, { children: version === "v2" /* V2 */ ? /* @__PURE__ */ jsx(PermissionWithGame_default, { ...props, value }) : /* @__PURE__ */ jsx(PermissionWithoutGame_default, { ...props, value }) });
1676
2179
  };
1677
2180
  permissionList_default = PermissionList;
1678
2181
  }
1679
2182
  });
1680
2183
 
2184
+ // src/features/permission/components/index.ts
2185
+ var init_components = __esm({
2186
+ "src/features/permission/components/index.ts"() {
2187
+ init_permissionList();
2188
+ }
2189
+ });
2190
+
1681
2191
  // src/features/permission/types/index.ts
1682
2192
  var init_types2 = __esm({
1683
2193
  "src/features/permission/types/index.ts"() {
@@ -1685,10 +2195,10 @@ var init_types2 = __esm({
1685
2195
  });
1686
2196
 
1687
2197
  // src/features/permission/index.ts
1688
- var init_permission2 = __esm({
2198
+ var init_permission = __esm({
1689
2199
  "src/features/permission/index.ts"() {
1690
- init_permissionList();
1691
- init_hooks3();
2200
+ init_components();
2201
+ init_hooks5();
1692
2202
  init_types2();
1693
2203
  }
1694
2204
  });
@@ -1696,20 +2206,20 @@ var init_permission2 = __esm({
1696
2206
  // src/pages/permission/userList/index.tsx
1697
2207
  var userList_exports = {};
1698
2208
  __export(userList_exports, {
1699
- default: () => userList_default,
1700
- url: () => url2
2209
+ default: () => userList_default
1701
2210
  });
1702
- var Option3, url2, useModal2, UserList, userList_default;
2211
+ var Text4, url2, useModal2, GameSelect2, useModalWithGroup, UserList, userList_default;
1703
2212
  var init_userList = __esm({
1704
2213
  "src/pages/permission/userList/index.tsx"() {
1705
- init_contextProvider();
1706
2214
  init_highlight();
1707
2215
  init_locale();
1708
2216
  init_modal2();
1709
2217
  init_permissionButton();
1710
2218
  init_queryList();
1711
- init_permission2();
1712
- ({ Option: Option3 } = Select);
2219
+ init_toolkitsProvider();
2220
+ init_constants();
2221
+ init_permission();
2222
+ ({ Text: Text4 } = Typography);
1713
2223
  url2 = "/api/usystem/user/list";
1714
2224
  useModal2 = (isCreate) => {
1715
2225
  const { message } = App.useApp();
@@ -1721,7 +2231,17 @@ var init_userList = __esm({
1721
2231
  const title = isCreate ? t("UserList.createTitle") : t("UserList.updateTitle");
1722
2232
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1723
2233
  /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate }) }),
1724
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.role"), name: "roles", children: /* @__PURE__ */ jsx(Select, { allowClear: true, mode: "multiple", loading: isLoading, children: (roles ?? []).map((role) => /* @__PURE__ */ jsx(Option3, { value: role.name, children: role.name }, role.id)) }) })
2234
+ /* @__PURE__ */ jsx(Form.Item, { label: t("global.role"), name: "roles", children: /* @__PURE__ */ jsx(
2235
+ Select,
2236
+ {
2237
+ allowClear: true,
2238
+ showSearch: true,
2239
+ mode: "multiple",
2240
+ loading: isLoading,
2241
+ optionFilterProp: "label",
2242
+ options: roles?.map((role) => ({ label: role.name, value: role.name }))
2243
+ }
2244
+ ) })
1725
2245
  ] });
1726
2246
  const onConfirm = async (values, extraValues) => {
1727
2247
  if (isCreate) {
@@ -1729,7 +2249,7 @@ var init_userList = __esm({
1729
2249
  refetch(url2, { page: 1 });
1730
2250
  message.success(t("UserList.createSuccessfully"));
1731
2251
  } else {
1732
- await update.trigger(values);
2252
+ await update.trigger({ ...values, id: extraValues?.id });
1733
2253
  mutate2(
1734
2254
  url2,
1735
2255
  (prev) => {
@@ -1749,7 +2269,159 @@ var init_userList = __esm({
1749
2269
  };
1750
2270
  return useFormModal({
1751
2271
  title,
2272
+ width: 600,
1752
2273
  formProps: {
2274
+ autoComplete: "off",
2275
+ labelCol: { flex: "80px" }
2276
+ },
2277
+ content,
2278
+ onConfirm
2279
+ });
2280
+ };
2281
+ GameSelect2 = (props) => {
2282
+ const { groups, onChange, ...rest } = props;
2283
+ const { axios: axios2 } = useToolkitsStore((s) => s);
2284
+ const { data, isLoading } = useSWR5(
2285
+ groups?.length ? `/api/enum/game_group/get_game_ids?game_groups=${groups.join(",")}` : null,
2286
+ (path) => axios2.get(path).then((response) => response.data.data.list)
2287
+ );
2288
+ const options = data?.map((group) => ({ label: group.name, value: group.id }));
2289
+ const onValueChange = (value) => {
2290
+ if (last(value) === WILDCARD) {
2291
+ onChange?.([WILDCARD]);
2292
+ } else if (first(value) === WILDCARD) {
2293
+ onChange?.(value.slice(1));
2294
+ } else {
2295
+ onChange?.(value);
2296
+ }
2297
+ };
2298
+ return /* @__PURE__ */ jsx(
2299
+ Select,
2300
+ {
2301
+ ...rest,
2302
+ allowClear: true,
2303
+ showSearch: true,
2304
+ optionFilterProp: "label",
2305
+ mode: "tags",
2306
+ loading: isLoading,
2307
+ options,
2308
+ onChange: onValueChange
2309
+ }
2310
+ );
2311
+ };
2312
+ useModalWithGroup = (isCreate) => {
2313
+ const { message } = App.useApp();
2314
+ const { t } = useTranslation();
2315
+ const { axios: axios2 } = useToolkitsStore((s) => s);
2316
+ const { refetch, mutate: mutate2 } = useQueryListStore();
2317
+ const { data: roles, isLoading: isRolesLoading } = useAllRoles();
2318
+ const create5 = useCreateUser();
2319
+ const update = useUpdateUser();
2320
+ const title = isCreate ? t("UserList.createTitle") : t("UserList.updateTitle");
2321
+ const { data: groups, isLoading: isGroupsLoading } = useSWR5(
2322
+ "/api/enum/get?enum=game_group",
2323
+ (path) => axios2.get(path).then((response) => response.data.data)
2324
+ );
2325
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
2326
+ /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate }) }),
2327
+ /* @__PURE__ */ jsx(Form.List, { name: "permissions", children: (fields, { add, remove }) => /* @__PURE__ */ jsxs(Row, { gutter: 8, children: [
2328
+ /* @__PURE__ */ jsx(Col, { span: 8, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text4, { strong: true, children: t("global.projectGroup") }) }),
2329
+ /* @__PURE__ */ jsx(Col, { span: 10, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text4, { strong: true, children: t("global.game") }) }),
2330
+ /* @__PURE__ */ jsx(Col, { span: 6, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text4, { strong: true, children: t("global.role") }) }),
2331
+ fields.map((field) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
2332
+ /* @__PURE__ */ jsx(Col, { span: 8, children: /* @__PURE__ */ jsx(Form.Item, { noStyle: true, shouldUpdate: true, children: ({ setFieldValue }) => /* @__PURE__ */ jsx(Form.Item, { name: [field.name, "game_group"], children: /* @__PURE__ */ jsx(
2333
+ Select,
2334
+ {
2335
+ allowClear: true,
2336
+ showSearch: true,
2337
+ mode: "tags",
2338
+ optionFilterProp: "label",
2339
+ loading: isGroupsLoading,
2340
+ options: groups?.map((group) => ({ label: group, value: group })),
2341
+ onChange: () => {
2342
+ setFieldValue(["permissions", field.name, "game_ids"], []);
2343
+ }
2344
+ }
2345
+ ) }) }) }),
2346
+ /* @__PURE__ */ jsx(Col, { span: 10, children: /* @__PURE__ */ jsx(
2347
+ Form.Item,
2348
+ {
2349
+ noStyle: true,
2350
+ shouldUpdate: (prevValues, nextValues) => prevValues.permissions[field.name]?.game_group !== nextValues.permissions[field.name]?.game_group,
2351
+ children: ({ getFieldValue }) => {
2352
+ const _groups = getFieldValue(["permissions", field.name, "game_group"]);
2353
+ return /* @__PURE__ */ jsx(
2354
+ Form.Item,
2355
+ {
2356
+ name: [field.name, "game_ids"],
2357
+ dependencies: [["permissions", field.name, "game_group"]],
2358
+ rules: [{ required: _groups?.length, message: "\u8BF7\u9009\u62E9\u6E38\u620F" }],
2359
+ children: /* @__PURE__ */ jsx(GameSelect2, { groups: _groups })
2360
+ }
2361
+ );
2362
+ }
2363
+ }
2364
+ ) }),
2365
+ /* @__PURE__ */ jsx(Col, { span: 6, children: /* @__PURE__ */ jsxs("div", { className: "flex", children: [
2366
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
2367
+ Form.Item,
2368
+ {
2369
+ name: [field.name, "role"],
2370
+ rules: [
2371
+ { required: true, message: "\u8BF7\u9009\u62E9\u89D2\u8272" },
2372
+ ({ getFieldValue }) => ({
2373
+ validator(_rule, value) {
2374
+ const items = getFieldValue("permissions");
2375
+ const otherItems = items.filter((item, index) => !!item && index !== field.name);
2376
+ if (otherItems.some((item) => item.role === value)) {
2377
+ return Promise.reject(new Error("\u8BF7\u52FF\u91CD\u590D\u9009\u62E9\u89D2\u8272"));
2378
+ }
2379
+ return Promise.resolve();
2380
+ }
2381
+ })
2382
+ ],
2383
+ children: /* @__PURE__ */ jsx(
2384
+ Select,
2385
+ {
2386
+ allowClear: true,
2387
+ showSearch: true,
2388
+ optionFilterProp: "label",
2389
+ loading: isRolesLoading,
2390
+ options: roles?.map((role) => ({ label: role.name, value: role.name }))
2391
+ }
2392
+ )
2393
+ }
2394
+ ) }),
2395
+ /* @__PURE__ */ jsx("div", { className: "w-8 text-center", children: /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(
2396
+ MinusCircleOutlined,
2397
+ {
2398
+ onClick: () => {
2399
+ remove(field.name);
2400
+ }
2401
+ }
2402
+ ) }) })
2403
+ ] }) })
2404
+ ] }, field.key)),
2405
+ fields.length === 0 && /* @__PURE__ */ jsx(Col, { span: 24, children: /* @__PURE__ */ jsx(Empty, { className: "mb-6" }) }),
2406
+ /* @__PURE__ */ jsx(Col, { span: 24, children: /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: () => add(), children: t("global.add") }) })
2407
+ ] }) })
2408
+ ] });
2409
+ const onConfirm = async (values, extraValues) => {
2410
+ if (isCreate) {
2411
+ await create5.trigger(values);
2412
+ refetch(url2, { page: 1 });
2413
+ message.success(t("UserList.createSuccessfully"));
2414
+ } else {
2415
+ await update.trigger({ ...values, id: extraValues?.id });
2416
+ mutate2(url2);
2417
+ message.success(t("UserList.updateSuccessfully"));
2418
+ }
2419
+ };
2420
+ return useFormModal({
2421
+ title,
2422
+ width: "50vw",
2423
+ formProps: {
2424
+ autoComplete: "off",
1753
2425
  labelCol: { flex: "80px" }
1754
2426
  },
1755
2427
  content,
@@ -1760,9 +2432,13 @@ var init_userList = __esm({
1760
2432
  const { modal, message } = App.useApp();
1761
2433
  const remove = useRemoveUser();
1762
2434
  const { mutate: mutate2 } = useQueryListStore();
2435
+ const { permissionVersion } = useToolkitsStore((s) => s);
1763
2436
  const { show: showCreateModal, modal: createModal } = useModal2(true);
1764
2437
  const { show: showUpdateModal, modal: updateModal } = useModal2();
2438
+ const { show: showCreateModalWithGroup, modal: createModalWithGroup } = useModalWithGroup(true);
2439
+ const { show: showUpdateModalWithGroup, modal: updateModalWithGroup } = useModalWithGroup();
1765
2440
  const { t } = useTranslation();
2441
+ const navigate = useNavigate();
1766
2442
  const columns = [
1767
2443
  {
1768
2444
  title: t("global.name"),
@@ -1774,7 +2450,7 @@ var init_userList = __esm({
1774
2450
  dataIndex: "id",
1775
2451
  key: "id"
1776
2452
  },
1777
- {
2453
+ permissionVersion !== "v3" /* V3 */ && {
1778
2454
  title: t("global.role"),
1779
2455
  dataIndex: "roles",
1780
2456
  key: "roles",
@@ -1792,61 +2468,86 @@ var init_userList = __esm({
1792
2468
  title: t("global.operation"),
1793
2469
  width: 150,
1794
2470
  align: "center",
1795
- render: (value) => /* @__PURE__ */ jsxs(Space, { children: [
1796
- /* @__PURE__ */ jsx(
1797
- PermissionButton_default,
1798
- {
1799
- size: "small",
1800
- type: "link",
1801
- code: "100003",
1802
- onClick: () => {
1803
- showUpdateModal({
1804
- initialValues: {
1805
- name: value.name,
1806
- roles: value.roles
1807
- },
1808
- extraValues: {
1809
- id: value.id
1810
- }
1811
- });
1812
- },
1813
- children: t("global.update")
1814
- }
1815
- ),
1816
- /* @__PURE__ */ jsx(
1817
- PermissionButton_default,
1818
- {
1819
- danger: true,
1820
- size: "small",
1821
- code: "100004",
1822
- type: "link",
1823
- onClick: () => {
1824
- modal.confirm({
1825
- title: t("UserList.deleteTitle"),
1826
- content: /* @__PURE__ */ jsx(Highlight_default, { texts: [value.name], children: t("UserList.deleteContent", { user: value.name }) }),
1827
- async onOk() {
1828
- await remove.trigger({
1829
- id: value.id,
1830
- name: value.name
2471
+ render: (_, record) => {
2472
+ const { name, permissions, roles, id: id2 } = record;
2473
+ return /* @__PURE__ */ jsxs(Space, { children: [
2474
+ permissionVersion === "v3" /* V3 */ && /* @__PURE__ */ jsx(
2475
+ Button,
2476
+ {
2477
+ type: "link",
2478
+ onClick: () => {
2479
+ navigate(`./${id2}}`);
2480
+ },
2481
+ children: t("global.view")
2482
+ }
2483
+ ),
2484
+ /* @__PURE__ */ jsx(
2485
+ PermissionButton_default,
2486
+ {
2487
+ size: "small",
2488
+ type: "link",
2489
+ code: "100003",
2490
+ onClick: () => {
2491
+ if (permissionVersion === "v3" /* V3 */) {
2492
+ showUpdateModalWithGroup({
2493
+ initialValues: {
2494
+ name,
2495
+ permissions
2496
+ },
2497
+ extraValues: {
2498
+ id: id2
2499
+ }
1831
2500
  });
1832
- mutate2(url2, (prev) => {
1833
- return produce(prev, (draft) => {
1834
- const index = draft?.List?.findIndex((item) => item.id === value.id);
1835
- if (index) {
1836
- draft?.List?.splice(index, 1);
1837
- }
1838
- });
2501
+ } else {
2502
+ showUpdateModal({
2503
+ initialValues: {
2504
+ name,
2505
+ roles
2506
+ },
2507
+ extraValues: {
2508
+ id: id2
2509
+ }
1839
2510
  });
1840
- message.success(t("UserList.deleteSuccessfully"));
1841
2511
  }
1842
- });
1843
- },
1844
- children: t("global.delete")
1845
- }
1846
- )
1847
- ] })
2512
+ },
2513
+ children: t("global.update")
2514
+ }
2515
+ ),
2516
+ /* @__PURE__ */ jsx(
2517
+ PermissionButton_default,
2518
+ {
2519
+ danger: true,
2520
+ size: "small",
2521
+ code: "100004",
2522
+ type: "link",
2523
+ onClick: () => {
2524
+ modal.confirm({
2525
+ title: t("UserList.deleteTitle"),
2526
+ content: /* @__PURE__ */ jsx(Highlight_default, { texts: [name], children: t("UserList.deleteContent", { user: name }) }),
2527
+ async onOk() {
2528
+ await remove.trigger({
2529
+ id: id2,
2530
+ name
2531
+ });
2532
+ mutate2(url2, (prev) => {
2533
+ return produce(prev, (draft) => {
2534
+ const index = draft?.List?.findIndex((item) => item.id === id2);
2535
+ if (index) {
2536
+ draft?.List?.splice(index, 1);
2537
+ }
2538
+ });
2539
+ });
2540
+ message.success(t("UserList.deleteSuccessfully"));
2541
+ }
2542
+ });
2543
+ },
2544
+ children: t("global.delete")
2545
+ }
2546
+ )
2547
+ ] });
2548
+ }
1848
2549
  }
1849
- ];
2550
+ ].filter(Boolean);
1850
2551
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1851
2552
  /* @__PURE__ */ jsx(
1852
2553
  Card,
@@ -1859,7 +2560,11 @@ var init_userList = __esm({
1859
2560
  icon: /* @__PURE__ */ jsx(UserAddOutlined, {}),
1860
2561
  code: "100002",
1861
2562
  onClick: () => {
1862
- showCreateModal();
2563
+ if (permissionVersion === "v3" /* V3 */) {
2564
+ showCreateModalWithGroup();
2565
+ } else {
2566
+ showCreateModal();
2567
+ }
1863
2568
  },
1864
2569
  children: t("UserList.createTitle")
1865
2570
  }
@@ -1872,98 +2577,129 @@ var init_userList = __esm({
1872
2577
  rowKey: "id",
1873
2578
  columns,
1874
2579
  getTotal: (response) => response?.Total,
1875
- getDataSource: (response) => response?.List
2580
+ getDataSource: (response) => response?.List,
2581
+ renderForm: (form) => /* @__PURE__ */ jsx(Form, { form, children: /* @__PURE__ */ jsx(Form.Item, { label: "\u540D\u79F0", name: "name", children: /* @__PURE__ */ jsx(Input, {}) }) })
1876
2582
  }
1877
2583
  )
1878
2584
  }
1879
2585
  ),
1880
2586
  createModal,
1881
- updateModal
2587
+ updateModal,
2588
+ createModalWithGroup,
2589
+ updateModalWithGroup
1882
2590
  ] });
1883
2591
  };
1884
2592
  userList_default = withContext(UserList, { isGlobal: true });
1885
2593
  }
1886
2594
  });
1887
2595
 
2596
+ // src/pages/permission/userDetail/index.tsx
2597
+ var userDetail_exports = {};
2598
+ __export(userDetail_exports, {
2599
+ default: () => userDetail_default
2600
+ });
2601
+ var UserDetail, userDetail_default;
2602
+ var init_userDetail = __esm({
2603
+ "src/pages/permission/userDetail/index.tsx"() {
2604
+ init_layout();
2605
+ init_locale();
2606
+ init_toolkitsProvider();
2607
+ init_constants();
2608
+ UserDetail = () => {
2609
+ const params = useParams();
2610
+ const { t } = useTranslation();
2611
+ const { axios: axios2, gameApiV2 } = useToolkitsStore((s) => s);
2612
+ const { data, isLoading } = useSWR5(
2613
+ params.id ? `/api/usystem/user/info?id=${params.id}` : null,
2614
+ (url4) => axios2.get(url4).then((res) => res.data.data)
2615
+ );
2616
+ const { data: games } = useGames();
2617
+ const columns = [
2618
+ {
2619
+ key: "group",
2620
+ title: t("global.projectGroup"),
2621
+ dataIndex: "game_group",
2622
+ render(value) {
2623
+ return value.map((item) => /* @__PURE__ */ jsx(Tag, { children: item }, item));
2624
+ }
2625
+ },
2626
+ {
2627
+ key: "game",
2628
+ title: t("global.game"),
2629
+ dataIndex: "game_ids",
2630
+ render(value) {
2631
+ return value.map((item) => {
2632
+ const matchedGame = games?.find((game) => String(gameApiV2 ? game.game_id : game.id) === item);
2633
+ return /* @__PURE__ */ jsx(Tag, { children: matchedGame?.name ?? (item === WILDCARD ? "\u901A\u7528" : item) }, item);
2634
+ });
2635
+ }
2636
+ },
2637
+ {
2638
+ key: "role",
2639
+ title: t("global.role"),
2640
+ dataIndex: "role",
2641
+ render(value) {
2642
+ return /* @__PURE__ */ jsx(Link, { to: `../../role/${value}`, relative: "path", children: value });
2643
+ }
2644
+ }
2645
+ ];
2646
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2647
+ /* @__PURE__ */ jsx(
2648
+ Breadcrumb,
2649
+ {
2650
+ className: "mb-6",
2651
+ items: [
2652
+ {
2653
+ key: "1",
2654
+ title: /* @__PURE__ */ jsx(Link, { to: "..", relative: "path", children: t("global.user") })
2655
+ },
2656
+ {
2657
+ key: "2",
2658
+ title: "\u7528\u6237\u8BE6\u60C5"
2659
+ }
2660
+ ]
2661
+ }
2662
+ ),
2663
+ /* @__PURE__ */ jsx(Card, { title: "\u7528\u6237\u8BE6\u60C5", loading: isLoading, children: /* @__PURE__ */ jsxs(Descriptions, { bordered: true, column: 1, children: [
2664
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
2665
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
2666
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.role"), children: /* @__PURE__ */ jsx(Table, { rowKey: "role", columns, dataSource: data?.permissions, pagination: false }) })
2667
+ ] }) })
2668
+ ] });
2669
+ };
2670
+ userDetail_default = UserDetail;
2671
+ }
2672
+ });
2673
+
1888
2674
  // src/pages/permission/roleList/index.tsx
1889
2675
  var roleList_exports = {};
1890
2676
  __export(roleList_exports, {
1891
2677
  default: () => roleList_default
1892
2678
  });
1893
- var url3, useModal3, RoleList, roleList_default;
2679
+ var url3, RoleList, roleList_default;
1894
2680
  var init_roleList = __esm({
1895
2681
  "src/pages/permission/roleList/index.tsx"() {
1896
- init_contextProvider();
1897
2682
  init_highlight();
1898
2683
  init_locale();
1899
- init_modal2();
1900
2684
  init_permissionButton();
1901
2685
  init_queryList();
1902
- init_stores3();
1903
- init_permission2();
2686
+ init_stores5();
2687
+ init_toolkitsProvider();
1904
2688
  init_permission();
2689
+ init_hooks2();
1905
2690
  url3 = "/api/usystem/role/list";
1906
- useModal3 = (isCreate) => {
1907
- const { message } = App.useApp();
1908
- const { t } = useTranslation();
1909
- const { refetch, mutate: mutate2 } = useQueryListStore();
1910
- const create5 = useCreateRole();
1911
- const update = useUpdateRole();
1912
- const title = isCreate ? t("RoleList.createTitle") : t("RoleList.updateTitle");
1913
- const formProps = {
1914
- layout: "vertical"
1915
- };
1916
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1917
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate, addonBefore: "role_" }) }),
1918
- /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
1919
- ] });
1920
- const onConfirm = async (values, extraValues) => {
1921
- if (isCreate) {
1922
- await create5.trigger({
1923
- name: `role_${values.name}`,
1924
- permissions: values.permissions
1925
- });
1926
- refetch(url3, { page: 1 });
1927
- message.success(t("RoleList.createSuccessfully"));
1928
- } else {
1929
- await update.trigger({
1930
- id: extraValues?.id,
1931
- name: `role_${values.name}`,
1932
- permissions: values.permissions
1933
- });
1934
- mutate2(
1935
- url3,
1936
- (prev) => produce(prev, (draft) => {
1937
- const match = draft?.List?.find((item) => item.id === extraValues?.id);
1938
- if (match) {
1939
- match.permissions = values.permissions;
1940
- }
1941
- }),
1942
- { revalidate: false }
1943
- );
1944
- message.success(t("RoleList.updateSuccessfully"));
1945
- }
1946
- };
1947
- return useFormModal({
1948
- title,
1949
- width: "50vw",
1950
- formProps,
1951
- content,
1952
- onConfirm
1953
- });
1954
- };
1955
2691
  RoleList = () => {
1956
2692
  const { accessible: viewable } = usePermission("200005");
1957
2693
  const { modal, message } = App.useApp();
1958
2694
  const { t } = useTranslation();
1959
- const { axios: axios2, isPermissionApiV2 } = useContextStore((s) => s);
2695
+ const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
1960
2696
  const { mutate: mutate2 } = useQueryListStore();
1961
- const { show: showCreateModal, modal: createModal } = useModal3(true);
1962
- const { show: showUpdateModal, modal: updateModal } = useModal3();
2697
+ const { show: showCreateModal, modal: createModal } = useRoleModal(true);
2698
+ const { show: showUpdateModal, modal: updateModal } = useRoleModal();
1963
2699
  const remove = useRemoveRole();
1964
2700
  const handleUpdateBtnClick = async (record) => {
1965
2701
  const response = await axios2.get(
1966
- `/api/usystem/role/info${isPermissionApiV2 ? "V2" : ""}?name=${record.name}`
2702
+ `/api/usystem/role/info${permissionVersion === "v2" /* V2 */ ? "V2" : ""}?name=${record.name}`
1967
2703
  );
1968
2704
  const data = response.data.data;
1969
2705
  showUpdateModal({
@@ -2099,13 +2835,31 @@ __export(roleDetail_exports, {
2099
2835
  var RoleDetail, roleDetail_default;
2100
2836
  var init_roleDetail = __esm({
2101
2837
  "src/pages/permission/roleDetail/index.tsx"() {
2102
- init_contextProvider();
2103
2838
  init_locale();
2104
- init_permission2();
2839
+ init_toolkitsProvider();
2840
+ init_permission();
2105
2841
  RoleDetail = () => {
2106
2842
  const params = useParams();
2107
- const { data, isLoading } = useRole(params.name);
2108
2843
  const { t } = useTranslation();
2844
+ const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
2845
+ const { data: role, isLoading } = useRole(params.name);
2846
+ const { show, modal } = useRoleModal(false);
2847
+ const handleUpdateBtnClick = async () => {
2848
+ const {
2849
+ data: { data }
2850
+ } = await axios2.get(
2851
+ `/api/usystem/role/info${permissionVersion === "v2" /* V2 */ ? "V2" : ""}?name=${role.name}`
2852
+ );
2853
+ show({
2854
+ initialValues: {
2855
+ permissions: data?.permissions,
2856
+ name: data?.name.replace(/^role_/, "")
2857
+ },
2858
+ extraValues: {
2859
+ id: data?.id
2860
+ }
2861
+ });
2862
+ };
2109
2863
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2110
2864
  /* @__PURE__ */ jsx(
2111
2865
  Breadcrumb,
@@ -2118,28 +2872,26 @@ var init_roleDetail = __esm({
2118
2872
  },
2119
2873
  {
2120
2874
  key: "2",
2121
- title: params.name
2875
+ title: t("RoleDetail.title")
2122
2876
  }
2123
2877
  ]
2124
2878
  }
2125
2879
  ),
2126
- /* @__PURE__ */ jsx(Card, { title: t("RoleDetail.title"), children: /* @__PURE__ */ jsxs(Skeleton, { loading: isLoading, children: [
2127
- /* @__PURE__ */ jsxs(Descriptions, { column: 3, layout: "vertical", children: [
2128
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
2129
- /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
2130
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.creationTime"), children: data?.ctime })
2880
+ /* @__PURE__ */ jsx(Card, { title: t("RoleDetail.title"), extra: /* @__PURE__ */ jsx(Button, { onClick: handleUpdateBtnClick, children: t("global.edit") }), children: /* @__PURE__ */ jsxs(Skeleton, { loading: isLoading, children: [
2881
+ /* @__PURE__ */ jsxs(Descriptions, { column: 2, layout: "vertical", className: "mb-6", children: [
2882
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: role?.name }),
2883
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: role?.id }),
2884
+ /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.creationTime"), children: role?.ctime })
2131
2885
  ] }),
2132
- /* @__PURE__ */ jsx(permissionList_default, { readonly: true, value: data?.permissions })
2133
- ] }) })
2886
+ /* @__PURE__ */ jsx(permissionList_default, { readonly: true, value: role?.permissions })
2887
+ ] }) }),
2888
+ modal
2134
2889
  ] });
2135
2890
  };
2136
2891
  roleDetail_default = withContext(RoleDetail, { isGlobal: true });
2137
2892
  }
2138
2893
  });
2139
2894
 
2140
- // src/index.ts
2141
- init_contextProvider();
2142
-
2143
2895
  // src/components/dynamicTags/DynamicTags.tsx
2144
2896
  init_locale();
2145
2897
  var DynamicTags = (props) => {
@@ -2295,17 +3047,17 @@ init_filterFormWrapper();
2295
3047
  init_highlight();
2296
3048
 
2297
3049
  // src/components/infiniteList/InfiniteList.tsx
2298
- init_permission();
2299
- init_contextProvider();
3050
+ init_hooks2();
2300
3051
  init_filterFormWrapper();
2301
3052
  init_locale();
3053
+ init_toolkitsProvider();
2302
3054
  var InfiniteList = (props) => {
2303
3055
  const { code, url: url4, extras, headers, getRowKey, getDataSource, hasMore, renderForm, transformArg, ...tableProps } = props;
2304
3056
  const { t } = useTranslation();
2305
3057
  const [form] = Form.useForm();
2306
3058
  const [isValid, setIsValid] = useState(false);
2307
3059
  const [formValues, setFormValues] = useState();
2308
- const { axios: axios2 } = useContextStore((s) => s);
3060
+ const { axios: axios2 } = useToolkitsStore((s) => s);
2309
3061
  const getKey = (pageIndex, previousPageData) => {
2310
3062
  if (!isValid) return null;
2311
3063
  const rowKey = pageIndex !== 0 ? getRowKey(previousPageData) : void 0;
@@ -2416,360 +3168,16 @@ var InfiniteList = (props) => {
2416
3168
  };
2417
3169
  var InfiniteList_default = InfiniteList;
2418
3170
 
2419
- // src/components/layout/Layout.tsx
2420
- init_contextProvider();
2421
- var Logo = (props) => {
2422
- return /* @__PURE__ */ jsx("img", { src: logoUrl, alt: "logo", ...props });
2423
- };
2424
- var Logo_default = Logo;
2425
- var useNavStore = create()(
2426
- persist(
2427
- (set) => ({
2428
- openKeys: [],
2429
- setOpenKeys: (keys) => set({ openKeys: keys }),
2430
- selectedKeys: [],
2431
- setSelectedKeys: (keys) => set({ selectedKeys: keys })
2432
- }),
2433
- {
2434
- name: "nav",
2435
- storage: createJSONStorage(() => localStorage),
2436
- partialize: (state) => ({
2437
- openKeys: state.openKeys,
2438
- selectedKeys: state.selectedKeys
2439
- })
2440
- }
2441
- )
2442
- );
2443
- function transformItems(items) {
2444
- const result = [];
2445
- if (items) {
2446
- for (let i = 0; i < items.length; i++) {
2447
- if (items[i] === null || items[i].type === "divider") {
2448
- result[i] = items[i];
2449
- } else if (items[i].children) {
2450
- const { children, ...rest } = items[i];
2451
- result[i] = {
2452
- ...rest,
2453
- children: transformItems(children)
2454
- };
2455
- } else {
2456
- const { route, label, ...rest } = items[i];
2457
- const labelNode = route ? /* @__PURE__ */ jsx(Link, { to: route, children: label }) : label;
2458
- result[i] = {
2459
- ...rest,
2460
- label: labelNode
2461
- };
2462
- }
2463
- }
2464
- }
2465
- return result;
2466
- }
2467
- function flatItems(items, result = [], keypath = []) {
2468
- for (const item of items) {
2469
- const children = item?.children;
2470
- if (Array.isArray(children)) {
2471
- const keys = item.type !== "group" && item.key ? [...keypath, item.key] : keypath;
2472
- flatItems(children, result, keys);
2473
- } else if (item) {
2474
- result.push(Object.assign(item, { keypath }));
2475
- }
2476
- }
2477
- return result;
2478
- }
2479
- var NavMenu = memo(function NavMenu2(props) {
2480
- const { items, theme: theme4, loading } = props;
2481
- const location = useLocation();
2482
- const flattenItems = useMemo(() => flatItems(items ?? []), [items]);
2483
- const internalItems = useMemo(() => transformItems(items ?? []), [items]);
2484
- const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore();
2485
- const onOpenChange = useCallback(
2486
- (keys) => {
2487
- const lastOpenKey = keys?.find((key) => openKeys?.indexOf(key) === -1);
2488
- const match = flattenItems.find((item) => lastOpenKey === item.key);
2489
- setOpenKeys(match?.keypath ?? [lastOpenKey]);
2490
- },
2491
- [flattenItems, openKeys, setOpenKeys]
2492
- );
2493
- useEffect(() => {
2494
- const match = flattenItems.find((item) => location.pathname === item.route);
2495
- if (match) {
2496
- const key = match.key;
2497
- const keypath = match.keypath;
2498
- setSelectedKeys([key]);
2499
- setOpenKeys(keypath);
2500
- }
2501
- }, [flattenItems, location]);
2502
- if (loading) {
2503
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", style: { height: "calc(100vh - 64px)" }, children: /* @__PURE__ */ jsx(Spin, {}) });
2504
- }
2505
- return /* @__PURE__ */ jsx(
2506
- Menu,
2507
- {
2508
- theme: theme4,
2509
- style: { borderRight: "none" },
2510
- items: internalItems,
2511
- mode: "inline",
2512
- openKeys,
2513
- selectedKeys,
2514
- onOpenChange
2515
- }
2516
- );
2517
- });
2518
- if (process.env.NODE_ENV === "development") {
2519
- NavMenu.displayName = "NavMenu";
2520
- }
2521
- var NavMenu_default = NavMenu;
2522
-
2523
- // src/components/requireGame/RequireGame.tsx
2524
- init_contextProvider();
2525
- init_locale();
2526
- var { Spin: Spin3 } = Antd2;
2527
- var RequireGame = ({ children }) => {
2528
- const { isPermissionApiV2, selectedGame, isGamesLoading, isGlobal } = useContextStore((s) => s);
2529
- const { t } = useTranslation();
2530
- if (isGamesLoading) {
2531
- return /* @__PURE__ */ jsx(
2532
- "div",
2533
- {
2534
- style: {
2535
- display: "flex",
2536
- justifyContent: "center",
2537
- alignItems: "center",
2538
- height: 400
2539
- },
2540
- children: /* @__PURE__ */ jsx(Spin3, {})
2541
- }
2542
- );
2543
- }
2544
- if (!isPermissionApiV2 || isGlobal) {
2545
- return children;
2546
- }
2547
- if (!selectedGame) {
2548
- return /* @__PURE__ */ jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: t("RequireGame.description") });
2549
- }
2550
- return /* @__PURE__ */ jsx(Fragment$1, { children }, selectedGame);
2551
- };
2552
- var RequireGame_default = RequireGame;
2553
-
2554
- // src/components/userWidget/UserWidget.tsx
2555
- init_contextProvider();
2556
- init_locale();
2557
- var UserWidget = () => {
2558
- const { t } = useTranslation();
2559
- const navigate = useNavigate();
2560
- const { clearToken, getUser, signInPath } = useContextStore((s) => s);
2561
- const user = getUser();
2562
- const items = [
2563
- {
2564
- key: "1",
2565
- icon: /* @__PURE__ */ jsx(LogoutOutlined, {}),
2566
- label: /* @__PURE__ */ jsx(
2567
- "a",
2568
- {
2569
- onClick: () => {
2570
- clearToken();
2571
- navigate(signInPath);
2572
- },
2573
- children: t("UserWidget.signOutText")
2574
- }
2575
- )
2576
- }
2577
- ];
2578
- return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
2579
- Dropdown,
2580
- {
2581
- menu: {
2582
- selectable: true,
2583
- items
2584
- },
2585
- placement: "bottomRight",
2586
- children: /* @__PURE__ */ jsx(
2587
- "a",
2588
- {
2589
- onClick: (e) => {
2590
- e.preventDefault();
2591
- },
2592
- children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
2593
- /* @__PURE__ */ jsx("span", { children: user?.authorityId }),
2594
- /* @__PURE__ */ jsx(UserOutlined, { style: { fontSize: "16px" } })
2595
- ] })
2596
- }
2597
- )
2598
- }
2599
- ) });
2600
- };
2601
- var UserWidget_default = UserWidget;
2602
-
2603
- // src/components/layout/GameSelect.tsx
2604
- init_constants();
2605
- init_contextProvider();
2606
- init_locale();
2607
- var { Text } = Typography;
2608
- var GameSelect = (props) => {
2609
- const { filter } = props;
2610
- const { t } = useTranslation();
2611
- const { axios: axios2, gameApiV2, setGame, setGames, selectedGame, setSelectedGame, setIsGamesLoading } = useContextStore(
2612
- (s) => s
2613
- );
2614
- const apiV2 = useContextStore((state) => state.gameApiV2);
2615
- const { data, isLoading } = useSWR6("/api/game/list", async () => {
2616
- setIsGamesLoading(true);
2617
- const headers = new AxiosHeaders({ [APP_ID_HEADER]: "global" });
2618
- const games = gameApiV2 ? await axios2({
2619
- url: "/api/game/list",
2620
- headers
2621
- }).then((response) => response.data.data.list ?? []) : await axios2({
2622
- url: "/api/usystem/game/all",
2623
- headers
2624
- }).then((response) => response.data.data ?? []);
2625
- setGames(games);
2626
- setIsGamesLoading(false);
2627
- return games;
2628
- });
2629
- const options = data?.filter((item) => filter?.(item) ?? true)?.map((item) => ({
2630
- label: item.name,
2631
- value: apiV2 ? item.game_id : item.id
2632
- }));
2633
- const onChange = async (value) => {
2634
- setGame(value);
2635
- setSelectedGame(value);
2636
- };
2637
- return /* @__PURE__ */ jsxs(Space, { children: [
2638
- /* @__PURE__ */ jsx(Text, { children: t("GameSelect.label") }),
2639
- /* @__PURE__ */ jsx(
2640
- Select,
2641
- {
2642
- showSearch: true,
2643
- optionFilterProp: "label",
2644
- value: selectedGame,
2645
- placeholder: t("GameSelect.placeholder"),
2646
- loading: isLoading,
2647
- style: { width: "200px" },
2648
- options,
2649
- onChange
2650
- }
2651
- )
2652
- ] });
2653
- };
2654
- var GameSelect_default = GameSelect;
2655
- var useLayoutStore = create()(
2656
- persist(
2657
- (set) => ({
2658
- collapsed: false,
2659
- setCollapsed: (collapsed) => set({ collapsed })
2660
- }),
2661
- {
2662
- name: "layout",
2663
- storage: createJSONStorage(() => localStorage),
2664
- partialize: (state) => ({ collapsed: state.collapsed })
2665
- }
2666
- )
2667
- );
2668
- var { Spin: Spin4, theme: theme3 } = Antd2;
2669
- var { Header, Sider, Content } = Antd2.Layout;
2670
- var Layout2 = (props) => {
2671
- const { menuCollapsible, isMenuLoading, title, items, headerExtra, children, navWidth, hideGameSelect, filter } = props;
2672
- const {
2673
- token: { colorBgContainer, colorBorder }
2674
- } = theme3.useToken();
2675
- const { isPermissionApiV2, layoutTitle, navWidth: globalNavWidth } = useContextStore((s) => s);
2676
- const { collapsed, setCollapsed } = useLayoutStore();
2677
- const onCollapse = async () => {
2678
- setCollapsed(!collapsed);
2679
- };
2680
- return /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
2681
- /* @__PURE__ */ jsxs(
2682
- Sider,
2683
- {
2684
- collapsible: true,
2685
- theme: "light",
2686
- trigger: null,
2687
- collapsed,
2688
- width: navWidth ?? globalNavWidth,
2689
- style: {
2690
- height: "100vh",
2691
- overflow: "auto",
2692
- borderRightWidth: 1,
2693
- borderRightStyle: "solid",
2694
- borderRightColor: colorBorder
2695
- },
2696
- children: [
2697
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2 px-6 py-4 overflow-hidden", children: [
2698
- /* @__PURE__ */ jsx(Logo_default, { width: 32, height: 32 }),
2699
- (!menuCollapsible || !collapsed) && /* @__PURE__ */ jsx("div", { className: `h-8 flex items-center ${menuCollapsible ? "expand" : ""} `, children: title ?? layoutTitle })
2700
- ] }),
2701
- /* @__PURE__ */ jsx(NavMenu_default, { items, loading: isMenuLoading })
2702
- ]
2703
- }
2704
- ),
2705
- /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
2706
- /* @__PURE__ */ jsx(
2707
- Header,
2708
- {
2709
- style: {
2710
- padding: "0 24px",
2711
- background: colorBgContainer
2712
- },
2713
- children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-full", children: [
2714
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), className: "mr-6", children: [
2715
- menuCollapsible && /* @__PURE__ */ jsx(
2716
- Button,
2717
- {
2718
- type: "text",
2719
- icon: collapsed ? /* @__PURE__ */ jsx(MenuUnfoldOutlined, {}) : /* @__PURE__ */ jsx(MenuFoldOutlined, {}),
2720
- style: { fontSize: "16px" },
2721
- onClick: onCollapse
2722
- }
2723
- ),
2724
- isPermissionApiV2 && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, { filter }),
2725
- headerExtra?.left?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key))
2726
- ] }),
2727
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), children: [
2728
- headerExtra?.right?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key)),
2729
- /* @__PURE__ */ jsx(UserWidget_default, {})
2730
- ] })
2731
- ] })
2732
- }
2733
- ),
2734
- /* @__PURE__ */ jsx(
2735
- Content,
2736
- {
2737
- style: {
2738
- overflow: "auto",
2739
- padding: "24px 16px",
2740
- maxHeight: "calc(100vh - 64px)"
2741
- },
2742
- children: /* @__PURE__ */ jsx(
2743
- Suspense,
2744
- {
2745
- fallback: /* @__PURE__ */ jsx(
2746
- Spin4,
2747
- {
2748
- style: {
2749
- display: "flex",
2750
- justifyContent: "center",
2751
- alignItems: "center",
2752
- height: "200px"
2753
- }
2754
- }
2755
- ),
2756
- children: /* @__PURE__ */ jsx(RequireGame_default, { children })
2757
- }
2758
- )
2759
- }
2760
- )
2761
- ] })
2762
- ] });
2763
- };
2764
- var Layout_default = Layout2;
2765
-
2766
3171
  // src/index.ts
3172
+ init_layout();
2767
3173
  init_modal2();
3174
+ init_navMenu();
2768
3175
  init_permissionButton();
2769
3176
  init_queryList();
3177
+ init_requireGame();
2770
3178
 
2771
3179
  // src/components/requirePermission/RequirePermission.tsx
2772
- init_permission();
3180
+ init_hooks2();
2773
3181
  init_locale();
2774
3182
  var RequirePermission = (props) => {
2775
3183
  const { code, children } = props;
@@ -2796,9 +3204,10 @@ var RequirePermission = (props) => {
2796
3204
  var RequirePermission_default = RequirePermission;
2797
3205
 
2798
3206
  // src/index.ts
3207
+ init_toolkitsProvider();
3208
+ init_userWidget();
2799
3209
  init_constants();
2800
- init_menu();
2801
- init_permission();
3210
+ init_hooks2();
2802
3211
  var MenuItemList2 = lazy(() => Promise.resolve().then(() => (init_menuItemList(), menuItemList_exports)));
2803
3212
  var CreateMenuItem2 = lazy(() => Promise.resolve().then(() => (init_createMenuItem(), createMenuItem_exports)));
2804
3213
  var UpdateMenuItem = lazy(() => Promise.resolve().then(() => (init_updateMenuItem(), updateMenuItem_exports)));
@@ -2834,11 +3243,9 @@ var NotFound = (props) => {
2834
3243
  ) });
2835
3244
  };
2836
3245
  var notFound_default = NotFound;
2837
-
2838
- // src/pages/operationLogList/index.tsx
2839
- init_contextProvider();
2840
3246
  init_locale();
2841
3247
  init_queryList();
3248
+ init_toolkitsProvider();
2842
3249
  var { Option } = Select;
2843
3250
  var OperationLogList = () => {
2844
3251
  const { t } = useTranslation();
@@ -2917,27 +3324,30 @@ var OperationLogList = () => {
2917
3324
  };
2918
3325
  var operationLogList_default = withContext(OperationLogList, { isGlobal: true });
2919
3326
  var UserList2 = lazy(() => Promise.resolve().then(() => (init_userList(), userList_exports)));
3327
+ var UserDetail2 = lazy(() => Promise.resolve().then(() => (init_userDetail(), userDetail_exports)));
2920
3328
  var RoleList2 = lazy(() => Promise.resolve().then(() => (init_roleList(), roleList_exports)));
2921
3329
  var RoleDetail2 = lazy(() => Promise.resolve().then(() => (init_roleDetail(), roleDetail_exports)));
2922
3330
  var permission_default = /* @__PURE__ */ jsxs(Routes, { children: [
2923
3331
  /* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(Navigate, { to: "user" }) }),
2924
3332
  /* @__PURE__ */ jsx(Route, { path: "user", element: /* @__PURE__ */ jsx(UserList2, {}) }),
3333
+ /* @__PURE__ */ jsx(Route, { path: "user/:id", element: /* @__PURE__ */ jsx(UserDetail2, {}) }),
2925
3334
  /* @__PURE__ */ jsx(Route, { path: "role", element: /* @__PURE__ */ jsx(RoleList2, {}) }),
2926
3335
  /* @__PURE__ */ jsx(Route, { path: "role/:name", element: /* @__PURE__ */ jsx(RoleDetail2, {}) })
2927
3336
  ] });
2928
3337
 
2929
3338
  // src/pages/signIn/index.tsx
2930
- init_contextProvider();
2931
3339
  init_locale();
3340
+ init_logo();
3341
+ init_toolkitsProvider();
2932
3342
  init_constants();
2933
3343
 
2934
3344
  // src/pages/signIn/background.svg
2935
3345
  var background_default = 'data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';
2936
3346
  var SignIn = (props) => {
2937
3347
  const { title, successRedirectUrl, extra } = props;
2938
- const unregistered = useContextStore((s) => s.unregistered);
3348
+ const unregistered = useToolkitsStore((s) => s.unregistered);
2939
3349
  const queryParams = new URLSearchParams(window.location.search);
2940
- const { token, setToken } = useContextStore((state) => state);
3350
+ const { token, setToken } = useToolkitsStore((state) => state);
2941
3351
  const { t } = useTranslation();
2942
3352
  const { isLoading } = useSWRImmutable(
2943
3353
  queryParams.has("ticket") ? `/api/usystem/user/login?ticket=${queryParams.get("ticket")}` : null,
@@ -2996,8 +3406,8 @@ var SignIn = (props) => {
2996
3406
  var signIn_default = SignIn;
2997
3407
 
2998
3408
  // src/index.ts
2999
- init_storage();
3409
+ init_utils();
3000
3410
 
3001
- export { APP_ID_HEADER, ContextProvider_default as ContextProvider, DynamicTags_default as DynamicTags, ExpandableParagraph_default as ExpandableParagraph, FRONTEND_ROUTE_PREFIX, FilterFormWrapper_default as FilterFormWrapper, Highlight_default as Highlight, InfiniteList_default as InfiniteList, Layout_default as Layout, NavMenu_default as NavMenu, notFound_default as NotFound, operationLogList_default as OperationLogList, PermissionButton_default as PermissionButton, QueryList_default as QueryList, QueryListAction, RequireGame_default as RequireGame, RequirePermission_default as RequirePermission, SSO_URL, signIn_default as SignIn, UserWidget_default as UserWidget, menu_default as menuRoutes, mixedStorage, permission_default as permissionRoutes, useContextStore, useFormModal, useLayoutStore, useMenuList, useModal, usePermission, usePermissions, useQueryListStore, withContext };
3411
+ export { APP_ID_HEADER, DynamicTags_default as DynamicTags, ExpandableParagraph_default as ExpandableParagraph, FRONTEND_ROUTE_PREFIX, FilterFormWrapper_default as FilterFormWrapper, Highlight_default as Highlight, InfiniteList_default as InfiniteList, Layout_default as Layout, NavMenu_default as NavMenu, notFound_default as NotFound, operationLogList_default as OperationLogList, PermissionButton_default as PermissionButton, PermissionVersion, QueryList_default as QueryList, QueryListAction, RequireGame_default as RequireGame, RequirePermission_default as RequirePermission, SSO_URL, signIn_default as SignIn, ToolkitsProvider_default as ToolkitsProvider, UserWidget_default as UserWidget, WILDCARD, menu_default as menuRoutes, mixedStorage, permission_default as permissionRoutes, useFindGame, useFormModal, useGames, useLayoutStore, useMenuList, useModal, useModalStore, usePermission, usePermissions, useQueryListStore, useToolkitsStore, withContext };
3002
3412
  //# sourceMappingURL=index.js.map
3003
3413
  //# sourceMappingURL=index.js.map