react-toolkits 0.0.4 → 0.0.5

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/dist/index.esm.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { AliyunOutlined, UserAddOutlined, UsergroupAddOutlined, PlusOutlined } from '@ant-design/icons';
2
- import { App, Spin, Row, Col, Card, Alert, Divider, Space, Button, theme, Layout as Layout$1, Tag, Form, Input, Breadcrumb, Skeleton, Descriptions, Typography, Modal, Tooltip, Result, Table, Select, Menu, Collapse, Checkbox } from 'antd';
3
- import { lazy, useState, useRef, useCallback, useMemo, useEffect, forwardRef, useId, useImperativeHandle } from 'react';
2
+ import { Spin, Row, Col, Card, Alert, Divider, Space, Button, Result, theme, Layout as Layout$1, App, Tag, Form, Input, Breadcrumb, Skeleton, Descriptions, Typography, Modal, Tooltip, Table, Select, Menu, Collapse, Checkbox } from 'antd';
3
+ import { lazy, useState, useRef, useCallback, useMemo, useEffect, Suspense, forwardRef, useId, useImperativeHandle } from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import { createPortal, flushSync } from 'react-dom';
6
6
  import { createRoot } from 'react-dom/client';
7
7
  import { create } from 'zustand';
8
8
  import { persist } from 'zustand/middleware';
9
9
  import axios from 'axios';
10
- import { useNavigate, useSearchParams, Navigate, Link, useParams, useLocation } from 'react-router-dom';
11
10
  import useSWRImmutable from 'swr/immutable';
11
+ import { useNavigate, useSearchParams, Navigate, Link, useParams, useLocation } from 'react-router-dom';
12
12
  import useSWRMutation2 from 'swr/mutation';
13
13
  import useSWR from 'swr';
14
14
  import logo from './512_orange_nobackground-L6MFCL6M.png';
@@ -481,10 +481,7 @@ var init_stores = __esm({
481
481
  init_queryTrigger();
482
482
  }
483
483
  });
484
- function useFetcher() {
485
- const { notification } = App.useApp();
486
- const clearToken = useTokenStore((state) => state.clearToken);
487
- const navigate = useNavigate();
484
+ function useHttpClient() {
488
485
  const token = useTokenStore((state) => state.token);
489
486
  const defaultOptions = {
490
487
  withCredentials: true
@@ -500,52 +497,34 @@ function useFetcher() {
500
497
  if (response.data.code === 0 || response.data.status === 0) {
501
498
  return response.data.data;
502
499
  }
503
- throw new FetcherError(response.data.msg, 0);
500
+ throw new HttpClientError(response.data.msg, 0);
504
501
  },
505
502
  (error) => {
506
503
  var _a;
507
504
  if (error.response) {
508
505
  if (error.response.status === 401) {
509
- throw new FetcherError("\u672A\u767B\u5F55\u6216\u767B\u5F55\u5DF2\u8FC7\u671F", error.response.status);
506
+ throw new HttpClientError("\u672A\u767B\u5F55\u6216\u767B\u5F55\u5DF2\u8FC7\u671F", error.response.status);
510
507
  } else if (error.response.status === 403) {
511
- throw new FetcherError("\u65E0\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u8FDB\u884C\u6388\u6743", error.response.status);
508
+ throw new HttpClientError("\u65E0\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u8FDB\u884C\u6388\u6743", error.response.status);
512
509
  } else if ([404, 405].includes(error.response.status)) {
513
- throw new FetcherError("Not Found or Method not Allowed", error.response.status, true);
510
+ throw new HttpClientError("Not Found or Method not Allowed", error.response.status, true);
514
511
  } else if (error.response.status === 412) {
515
- throw new FetcherError("\u672A\u6CE8\u518C\u7528\u6237", error.response.status);
512
+ throw new HttpClientError("\u672A\u6CE8\u518C\u7528\u6237", error.response.status);
516
513
  } else {
517
- throw new FetcherError((_a = error.response.data) == null ? void 0 : _a.msg, error.response.status);
514
+ throw new HttpClientError((_a = error.response.data) == null ? void 0 : _a.msg, error.response.status);
518
515
  }
519
- } else if (error.request) {
520
- console.log(error.request);
521
516
  }
522
- return Promise.reject(error);
517
+ throw new HttpClientError("\u65E0\u54CD\u5E94");
523
518
  }
524
519
  );
525
- return (config) => instance.request(config).catch((err) => {
526
- switch (err.code) {
527
- case 401:
528
- case 412:
529
- clearToken();
530
- navigate(err.code === 401 ? "/login" : "/login?not_registered=1", { replace: true });
531
- break;
532
- default:
533
- if (!err.skip) {
534
- notification.error({
535
- message: "\u8BF7\u6C42\u51FA\u9519",
536
- description: err.message
537
- });
538
- }
539
- }
540
- throw err;
541
- });
520
+ return instance;
542
521
  }
543
- var FetcherError;
544
- var init_use_fetcher = __esm({
545
- "src/hooks/use-fetcher.tsx"() {
522
+ var HttpClientError;
523
+ var init_use_http_client = __esm({
524
+ "src/hooks/use-http-client.tsx"() {
546
525
  init_esm_shims();
547
526
  init_stores();
548
- FetcherError = class extends Error {
527
+ HttpClientError = class extends Error {
549
528
  constructor(message, code, skip = false) {
550
529
  super(message);
551
530
  this.code = code;
@@ -555,14 +534,15 @@ var init_use_fetcher = __esm({
555
534
  }
556
535
  });
557
536
  function usePermissions(codes) {
558
- const fetcher = useFetcher();
537
+ const httpClient = useHttpClient();
538
+ const navigate = useNavigate();
559
539
  const { data, isLoading } = useSWRImmutable(
560
540
  codes.length > 0 ? {
561
541
  method: "POST",
562
542
  url: "/api/usystem/user/check",
563
543
  data: { permissions: codes }
564
544
  } : null,
565
- (config) => fetcher(config).then((res) => {
545
+ (config) => httpClient.request(config).then((res) => {
566
546
  if (res.has_all) {
567
547
  return codes.reduce(
568
548
  (acc, curr) => {
@@ -581,7 +561,11 @@ function usePermissions(codes) {
581
561
  );
582
562
  }),
583
563
  {
584
- shouldRetryOnError: false
564
+ suspense: true,
565
+ shouldRetryOnError: false,
566
+ onError() {
567
+ navigate("/login");
568
+ }
585
569
  }
586
570
  );
587
571
  return { data, isLoading };
@@ -603,7 +587,7 @@ function usePermission(code) {
603
587
  var init_use_permission = __esm({
604
588
  "src/hooks/use-permission.tsx"() {
605
589
  init_esm_shims();
606
- init_use_fetcher();
590
+ init_use_http_client();
607
591
  }
608
592
  });
609
593
 
@@ -611,7 +595,7 @@ var init_use_permission = __esm({
611
595
  var init_hooks2 = __esm({
612
596
  "src/hooks/index.ts"() {
613
597
  init_esm_shims();
614
- init_use_fetcher();
598
+ init_use_http_client();
615
599
  init_use_permission();
616
600
  }
617
601
  });
@@ -643,14 +627,14 @@ var init_QueryList = __esm({
643
627
  init_FilterForm();
644
628
  QueryList = (props) => {
645
629
  const _a = props, { code, confirmText, labelCol, swrKey: swrKey3, renderForm, transformArg, initialValues } = _a, tableProps = __objRest(_a, ["code", "confirmText", "labelCol", "swrKey", "renderForm", "transformArg", "initialValues"]);
646
- const { accessible, isValidating } = usePermission(code);
630
+ const { accessible } = usePermission(code != null ? code : "");
647
631
  const [form] = Form.useForm();
648
632
  const setTrigger = useQueryTriggerStore((state) => state.setTrigger);
649
633
  const [paginationData, setPaginationData] = useState({
650
634
  page: 1,
651
635
  perPage: 10
652
636
  });
653
- const fetcher = useFetcher();
637
+ const httpClient = useHttpClient();
654
638
  const { data, isMutating, trigger } = useSWRMutation2(
655
639
  swrKey3,
656
640
  (_0, _1) => __async(void 0, [_0, _1], function* (key, {
@@ -664,9 +648,8 @@ var init_QueryList = __esm({
664
648
  setPaginationData(newPaginationData);
665
649
  const values = form.getFieldsValue();
666
650
  const fetcherArg = __spreadValues(__spreadValues({}, values), newPaginationData);
667
- return fetcher(__spreadProps(__spreadValues({}, key), {
668
- // TODO: 兼容 params data
669
- params: typeof transformArg === "function" ? transformArg(fetcherArg) : fetcherArg
651
+ return httpClient.request(__spreadProps(__spreadValues({}, key), {
652
+ [key.method === "POST" ? "data" : "params"]: typeof transformArg === "function" ? transformArg(fetcherArg) : fetcherArg
670
653
  }));
671
654
  })
672
655
  );
@@ -693,7 +676,7 @@ var init_QueryList = __esm({
693
676
  );
694
677
  useEffect(() => {
695
678
  setTrigger(swrKey3, trigger);
696
- }, [swrKey3, setTrigger, trigger]);
679
+ }, [swrKey3, trigger, setTrigger]);
697
680
  useEffect(() => {
698
681
  (() => __async(void 0, null, function* () {
699
682
  try {
@@ -704,19 +687,6 @@ var init_QueryList = __esm({
704
687
  }
705
688
  }))();
706
689
  }, [form, trigger]);
707
- if (isValidating) {
708
- return /* @__PURE__ */ jsx(
709
- Spin,
710
- {
711
- style: {
712
- display: "flex",
713
- justifyContent: "center",
714
- alignItems: "center",
715
- height: 200
716
- }
717
- }
718
- );
719
- }
720
690
  if (!accessible) {
721
691
  return /* @__PURE__ */ jsx(Result, { status: 403, subTitle: "\u65E0\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u8FDB\u884C\u6388\u6743" });
722
692
  }
@@ -787,69 +757,57 @@ function useRole(name) {
787
757
  });
788
758
  }
789
759
  function useCreateRole() {
790
- const fetcher = useFetcher();
760
+ const httpClient = useHttpClient();
791
761
  return useSWRMutation2(
792
762
  "/api/usystem/role/create",
793
763
  (url, {
794
764
  arg
795
- }) => fetcher({ method: "POST", url, data: arg })
765
+ }) => httpClient.post(url, arg)
796
766
  );
797
767
  }
798
768
  function useUpdateRole() {
799
- const fetcher = useFetcher();
769
+ const httpClient = useHttpClient();
800
770
  return useSWRMutation2(
801
771
  "/api/usystem/role/update",
802
772
  (url, {
803
773
  arg
804
- }) => fetcher({ method: "POST", url, data: arg })
774
+ }) => httpClient.post(url, arg)
805
775
  );
806
776
  }
807
777
  function useRemoveRole() {
808
- const fetcher = useFetcher();
778
+ const httpClient = useHttpClient();
809
779
  return useSWRMutation2(
810
780
  "/api/usystem/role/delete",
811
781
  (url, {
812
782
  arg
813
- }) => fetcher({ method: "POST", url, data: arg })
783
+ }) => httpClient.post(url, arg)
814
784
  );
815
785
  }
816
786
  function useCreateUser() {
817
- const fetcher = useFetcher();
787
+ const httpClient = useHttpClient();
818
788
  return useSWRMutation2(
819
789
  "/api/usystem/user/create",
820
790
  (url, {
821
791
  arg
822
- }) => fetcher({
823
- method: "POST",
824
- url,
825
- data: arg
826
- })
792
+ }) => httpClient.post(url, arg)
827
793
  );
828
794
  }
829
795
  function useUpdateUser() {
830
- const fetcher = useFetcher();
796
+ const httpClient = useHttpClient();
831
797
  return useSWRMutation2(
832
798
  "/api/usystem/user/update",
833
799
  (url, {
834
800
  arg
835
- }) => fetcher({
836
- method: "POST",
837
- url,
838
- data: arg
839
- })
801
+ }) => httpClient.post(url, arg)
840
802
  );
841
803
  }
842
804
  function useRemoveUser() {
843
- const fetcher = useFetcher();
805
+ const httpClient = useHttpClient();
844
806
  return useSWRMutation2(
845
807
  "/api/usystem/user/delete",
846
808
  (url, {
847
809
  arg
848
- }) => fetcher({
849
- method: "POST",
850
- url,
851
- data: arg
852
- })
810
+ }) => httpClient.post(url, arg)
853
811
  );
854
812
  }
855
813
  var init_hooks3 = __esm({
@@ -1210,7 +1168,7 @@ var init_RoleList = __esm({
1210
1168
  RoleList = () => {
1211
1169
  const { accessible: viewable } = usePermission("200005");
1212
1170
  const { modal, message } = App.useApp();
1213
- const fetcher = useFetcher();
1171
+ const httpClient = useHttpClient();
1214
1172
  const create4 = useCreateRole();
1215
1173
  const remove = useRemoveRole();
1216
1174
  const update = useUpdateRole();
@@ -1307,9 +1265,7 @@ var init_RoleList = __esm({
1307
1265
  size: "small",
1308
1266
  type: "link",
1309
1267
  onClick: () => __async(void 0, null, function* () {
1310
- const role = yield fetcher({
1311
- method: "GET",
1312
- url: "/api/usystem/role/info",
1268
+ const role = yield httpClient.get("/api/usystem/role/info", {
1313
1269
  params: { name: value.name }
1314
1270
  });
1315
1271
  showUpdateModal({
@@ -1365,7 +1321,7 @@ var init_RoleList = __esm({
1365
1321
  }
1366
1322
  }
1367
1323
  ],
1368
- [trigger, viewable, fetcher, modal, message, remove, showUpdateModal]
1324
+ [trigger, viewable, httpClient, modal, message, remove, showUpdateModal]
1369
1325
  );
1370
1326
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1371
1327
  /* @__PURE__ */ jsx(
@@ -1467,7 +1423,6 @@ init_esm_shims();
1467
1423
  // src/constants/index.ts
1468
1424
  init_esm_shims();
1469
1425
  var SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
1470
- new TextEncoder().encode("cc7e0d44fd473002f1c42167459001140ec6389b7353f8088f4d9a95f2f596f2");
1471
1426
 
1472
1427
  // src/pages/Login/index.tsx
1473
1428
  init_stores();
@@ -2872,6 +2827,9 @@ var Default = () => {
2872
2827
  ] });
2873
2828
  };
2874
2829
  var default_default = Default;
2830
+
2831
+ // src/pages/Login/index.tsx
2832
+ init_hooks2();
2875
2833
  var { Title } = Typography;
2876
2834
  var Login = (props) => {
2877
2835
  const { children } = props;
@@ -2879,6 +2837,7 @@ var Login = (props) => {
2879
2837
  const token = useTokenStore((state) => state.token);
2880
2838
  const setToken = useTokenStore((state) => state.setToken);
2881
2839
  const [showAlert, setShowAlert] = useState(false);
2840
+ const httpClient = useHttpClient();
2882
2841
  const { isLoading } = useSWRImmutable(
2883
2842
  searchParams.has("ticket") ? {
2884
2843
  url: "/api/usystem/user/login",
@@ -2886,6 +2845,7 @@ var Login = (props) => {
2886
2845
  ticket: searchParams.get("ticket")
2887
2846
  }
2888
2847
  } : null,
2848
+ (config) => httpClient.request(config),
2889
2849
  {
2890
2850
  onSuccess: (data) => {
2891
2851
  setToken(data.token);
@@ -2953,6 +2913,31 @@ var Login = (props) => {
2953
2913
  };
2954
2914
  var Login_default = Login;
2955
2915
 
2916
+ // src/pages/NoMatch/index.tsx
2917
+ init_esm_shims();
2918
+ var NoMatch = () => {
2919
+ const navigate = useNavigate();
2920
+ return /* @__PURE__ */ jsx("div", { className: "h-screen flex justify-center items-center", children: /* @__PURE__ */ jsx(
2921
+ Result,
2922
+ {
2923
+ status: "404",
2924
+ title: "404",
2925
+ subTitle: "Sorry, the page you visited does not exist.",
2926
+ extra: /* @__PURE__ */ jsx(
2927
+ Button,
2928
+ {
2929
+ type: "primary",
2930
+ onClick: () => {
2931
+ navigate("/");
2932
+ },
2933
+ children: "Back Home"
2934
+ }
2935
+ )
2936
+ }
2937
+ ) });
2938
+ };
2939
+ var NoMatch_default = NoMatch;
2940
+
2956
2941
  // src/pages/permission/index.tsx
2957
2942
  init_esm_shims();
2958
2943
  var UserList2 = lazy(() => Promise.resolve().then(() => (init_UserList(), UserList_exports)));
@@ -3041,7 +3026,7 @@ var NavBar = (props) => {
3041
3026
  const location = useLocation();
3042
3027
  const flattenItems = useMemo(() => flatItems(items != null ? items : []), [items]);
3043
3028
  const codes = flattenItems.map((item) => item.code).filter(Boolean);
3044
- const { data: permissions, isLoading } = usePermissions(codes);
3029
+ const { data: permissions } = usePermissions(codes);
3045
3030
  const internalItems = useMemo(() => transformItems(items != null ? items : [], permissions), [items, permissions]);
3046
3031
  const openKeys = useMenuStore((state) => state.openKeys);
3047
3032
  const selectedKeys = useMenuStore((state) => state.selectedKeys);
@@ -3066,19 +3051,6 @@ var NavBar = (props) => {
3066
3051
  setOpenKeys(keypath);
3067
3052
  }
3068
3053
  }, [flattenItems, location, setOpenKeys, setSelectedKeys]);
3069
- if (isLoading) {
3070
- return /* @__PURE__ */ jsx(
3071
- Spin,
3072
- {
3073
- style: {
3074
- display: "flex",
3075
- justifyContent: "center",
3076
- alignItems: "center",
3077
- height: "calc(100vh - 64px)"
3078
- }
3079
- }
3080
- );
3081
- }
3082
3054
  return /* @__PURE__ */ jsx(
3083
3055
  Menu,
3084
3056
  {
@@ -3092,58 +3064,96 @@ var NavBar = (props) => {
3092
3064
  );
3093
3065
  };
3094
3066
  var NavBar_default = NavBar;
3067
+
3068
+ // src/layouts/Layout.tsx
3069
+ init_hooks2();
3095
3070
  var { Header, Sider, Content } = Layout$1;
3071
+ var { ErrorBoundary } = Alert;
3096
3072
  var Layout = (props) => {
3097
3073
  const { title, items, header, children } = props;
3098
3074
  const {
3099
3075
  token: { colorBgContainer, colorBorder }
3100
3076
  } = theme.useToken();
3101
- return /* @__PURE__ */ jsxs(Layout$1, { hasSider: true, className: "h-screen", children: [
3102
- /* @__PURE__ */ jsxs(
3103
- Sider,
3104
- {
3105
- width: 256,
3106
- style: {
3107
- overflow: "auto",
3108
- height: "100vh",
3109
- position: "fixed",
3110
- left: 0,
3111
- top: 0,
3112
- bottom: 0,
3113
- borderRightWidth: 1,
3114
- borderRightStyle: "solid",
3115
- borderRightColor: colorBorder
3116
- },
3117
- theme: "light",
3118
- children: [
3119
- /* @__PURE__ */ jsxs("div", { className: "flex items-end px-6 py-4", children: [
3120
- /* @__PURE__ */ jsx("img", { src: logo, alt: "logo", className: "w-8 h-8" }),
3121
- /* @__PURE__ */ jsx(Link, { className: "font-bold text-lg ml-2", to: "/", children: title })
3122
- ] }),
3123
- /* @__PURE__ */ jsx(NavBar_default, { items })
3124
- ]
3125
- }
3126
- ),
3127
- /* @__PURE__ */ jsxs(Layout$1, { className: "ml-64", children: [
3128
- /* @__PURE__ */ jsx(
3129
- Header,
3077
+ usePermission("100001");
3078
+ return /* @__PURE__ */ jsx(Layout$1, { hasSider: true, className: "h-screen", children: /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxs(
3079
+ Suspense,
3080
+ {
3081
+ fallback: /* @__PURE__ */ jsx(
3082
+ Spin,
3130
3083
  {
3131
3084
  style: {
3132
- padding: "0 24px",
3133
- background: colorBgContainer,
3134
- borderBottomWidth: 1,
3135
- borderBottomStyle: "solid",
3136
- borderBottomColor: colorBorder
3137
- },
3138
- children: header
3085
+ display: "flex",
3086
+ justifyContent: "center",
3087
+ alignItems: "center",
3088
+ width: "100vw",
3089
+ height: "100vh"
3090
+ }
3139
3091
  }
3140
3092
  ),
3141
- /* @__PURE__ */ jsx(Content, { className: "p-6 overflow-auto bg-gray-50", children })
3142
- ] })
3143
- ] });
3093
+ children: [
3094
+ /* @__PURE__ */ jsxs(
3095
+ Sider,
3096
+ {
3097
+ width: 256,
3098
+ style: {
3099
+ overflow: "auto",
3100
+ height: "100vh",
3101
+ position: "fixed",
3102
+ left: 0,
3103
+ top: 0,
3104
+ bottom: 0,
3105
+ borderRightWidth: 1,
3106
+ borderRightStyle: "solid",
3107
+ borderRightColor: colorBorder
3108
+ },
3109
+ theme: "light",
3110
+ children: [
3111
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end px-6 py-4", children: [
3112
+ /* @__PURE__ */ jsx("img", { src: logo, alt: "logo", className: "w-8 h-8" }),
3113
+ /* @__PURE__ */ jsx(Link, { className: "font-bold text-lg ml-2", to: "/", children: title })
3114
+ ] }),
3115
+ /* @__PURE__ */ jsx(NavBar_default, { items })
3116
+ ]
3117
+ }
3118
+ ),
3119
+ /* @__PURE__ */ jsxs(Layout$1, { className: "ml-64", children: [
3120
+ /* @__PURE__ */ jsx(
3121
+ Header,
3122
+ {
3123
+ style: {
3124
+ padding: "0 24px",
3125
+ background: colorBgContainer,
3126
+ borderBottomWidth: 1,
3127
+ borderBottomStyle: "solid",
3128
+ borderBottomColor: colorBorder
3129
+ },
3130
+ children: header
3131
+ }
3132
+ ),
3133
+ /* @__PURE__ */ jsx(Content, { className: "p-6 overflow-auto bg-gray-50", children: /* @__PURE__ */ jsx(
3134
+ Suspense,
3135
+ {
3136
+ fallback: /* @__PURE__ */ jsx(
3137
+ Spin,
3138
+ {
3139
+ style: {
3140
+ display: "flex",
3141
+ justifyContent: "center",
3142
+ alignItems: "center",
3143
+ height: "50vh"
3144
+ }
3145
+ }
3146
+ ),
3147
+ children
3148
+ }
3149
+ ) })
3150
+ ] })
3151
+ ]
3152
+ }
3153
+ ) }) });
3144
3154
  };
3145
3155
  var Layout_default = Layout;
3146
3156
 
3147
- export { DynamicTags_default as DynamicTags, FetcherError, FilterForm_default as FilterForm, FormModal_default as FormModal, Highlight_default as Highlight, Layout_default as Layout, Login_default as Login, PermissionButton_default as PermissionButton, QueryList_default as QueryList, permission_default as permission, useFetcher, useFormModal, useMenuStore, usePermission, usePermissions, useQueryTriggerStore, useTokenStore };
3157
+ export { DynamicTags_default as DynamicTags, FilterForm_default as FilterForm, FormModal_default as FormModal, Highlight_default as Highlight, HttpClientError, Layout_default as Layout, Login_default as Login, NoMatch_default as NoMatch, PermissionButton_default as PermissionButton, QueryList_default as QueryList, SSO_URL, permission_default as permission, useFormModal, useHttpClient, useMenuStore, usePermission, usePermissions, useQueryTriggerStore, useTokenStore };
3148
3158
  //# sourceMappingURL=out.js.map
3149
3159
  //# sourceMappingURL=index.esm.js.map