@topthink/components 1.1.25 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{jsx as t,Fragment as r}from"react/jsx-runtime";import{memo as e,useContext as i,useState as o,useEffect as s}from"react";import{I as a}from"./index-QRjGJrZt.js";import{useInView as m}from"react-intersection-observer";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"lodash";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";var n=e(({lazy:e=!0,...n})=>{const{registerImage:p,setShow:c,setCurrent:l,getId:d}=i(a),[h,g]=o(),[u,w]=o(!1),{ref:f,inView:y}=m({threshold:.2,skip:!e,initialInView:!0}),[v]=o(d);if(s(()=>{if(n.src)return p(v,n.src)},[]),u)return t(r,{children:n.alt?`[图片加载失败:${n.alt}]`:" "});const j=!y&&e&&h?"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3e %3crect width='1' height='1' fill='none'/%3e%3c/svg%3e":n.src;return t("img",{width:h?.[0],height:h?.[1],onLoad:t=>{h||g([t.currentTarget.clientWidth,t.currentTarget.clientHeight])},onError:()=>{w(!0)},ref:f,...n,alt:void 0,src:j,onClick:()=>{l(v),c(!0)}})});export{n as default};
1
+ import{jsx as t,Fragment as r}from"react/jsx-runtime";import{memo as e,useContext as i,useState as o,useEffect as s}from"react";import{I as a}from"./index-kYqlWcrn.js";import{useInView as m}from"react-intersection-observer";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"lodash";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";var n=e(({lazy:e=!0,...n})=>{const{registerImage:p,setShow:c,setCurrent:l,getId:d}=i(a),[h,g]=o(),[u,w]=o(!1),{ref:f,inView:y}=m({threshold:.2,skip:!e,initialInView:!0}),[v]=o(d);if(s(()=>{if(n.src)return p(v,n.src)},[]),u)return t(r,{children:n.alt?`[图片加载失败:${n.alt}]`:" "});const j=!y&&e&&h?"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3e %3crect width='1' height='1' fill='none'/%3e%3c/svg%3e":n.src;return t("img",{width:h?.[0],height:h?.[1],onLoad:t=>{!h&&e&&g([t.currentTarget.clientWidth,t.currentTarget.clientHeight])},onError:()=>{w(!0)},ref:f,...n,alt:void 0,src:j,onClick:()=>{l(v),c(!0)}})});export{n as default};
@@ -1,4 +1,4 @@
1
- import{jsxs as t,jsx as r}from"react/jsx-runtime";import{useState as o,useCallback as e}from"react";import i,{useLightboxState as n,useController as a}from"yet-another-react-lightbox";import s from"yet-another-react-lightbox/plugins/counter";import l from"yet-another-react-lightbox/plugins/download";import m from"yet-another-react-lightbox/plugins/zoom";import p from"yet-another-react-lightbox/plugins/thumbnails";import"yet-another-react-lightbox/styles.css";import"yet-another-react-lightbox/plugins/counter.css";import"yet-another-react-lightbox/plugins/thumbnails.css";import{I as c}from"./index-QRjGJrZt.js";import u from"styled-components";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"lodash";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";const d={counter:s,zoom:m,download:l,thumbnails:p};let g=0;function h({children:i,render:s,zoom:l,toolbar:m,plugins:p=["counter","zoom","download"]}){const[u,h]=o(()=>new Map),[y,x]=o(),[f,w]=o(!1),_=e((t,r)=>(h(o=>new Map(o).set(t,r)),()=>{h(r=>{const o=new Map(r);return o.delete(t)?o:r})}),[]),j=Array.from(u.keys()),k=j.indexOf(y),v=j.map(t=>{const r=u.get(t);return"string"==typeof r?{src:r}:{render:r}}),z=e(()=>g++,[]);return t(c.Provider,{value:{images:u,current:y,setCurrent:x,setShow:w,registerImage:_,getId:z},children:[i,r(b,{plugins:p.map(t=>d[t]),open:f,index:k,close:()=>w(!1),slides:v,carousel:{finite:!0,preload:3},toolbar:m?.({useController:a,useLightboxState:n}),zoom:l,render:{...s,buttonPrev:v.length<=1?()=>null:void 0,buttonNext:v.length<=1?()=>null:void 0,slide:({slide:t})=>{if("render"in t)return t.render()}},controller:{closeOnBackdropClick:!0}})]})}const b=u(i)`
1
+ import{jsxs as t,jsx as r}from"react/jsx-runtime";import{useState as o,useCallback as e}from"react";import i,{useLightboxState as n,useController as a}from"yet-another-react-lightbox";import s from"yet-another-react-lightbox/plugins/counter";import l from"yet-another-react-lightbox/plugins/download";import m from"yet-another-react-lightbox/plugins/zoom";import p from"yet-another-react-lightbox/plugins/thumbnails";import"yet-another-react-lightbox/styles.css";import"yet-another-react-lightbox/plugins/counter.css";import"yet-another-react-lightbox/plugins/thumbnails.css";import{I as c}from"./index-kYqlWcrn.js";import u from"styled-components";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"lodash";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";const d={counter:s,zoom:m,download:l,thumbnails:p};let g=0;function h({children:i,render:s,zoom:l,toolbar:m,plugins:p=["counter","zoom","download"]}){const[u,h]=o(()=>new Map),[y,x]=o(),[f,w]=o(!1),_=e((t,r)=>(h(o=>new Map(o).set(t,r)),()=>{h(r=>{const o=new Map(r);return o.delete(t)?o:r})}),[]),j=Array.from(u.keys()),k=j.indexOf(y),v=j.map(t=>{const r=u.get(t);return"string"==typeof r?{src:r}:{render:r}}),z=e(()=>g++,[]);return t(c.Provider,{value:{images:u,current:y,setCurrent:x,setShow:w,registerImage:_,getId:z},children:[i,r(b,{plugins:p.map(t=>d[t]),open:f,index:k,close:()=>w(!1),slides:v,carousel:{finite:!0,preload:3},toolbar:m?.({useController:a,useLightboxState:n}),zoom:l,render:{...s,buttonPrev:v.length<=1?()=>null:void 0,buttonNext:v.length<=1?()=>null:void 0,slide:({slide:t})=>{if("render"in t)return t.render()}},controller:{closeOnBackdropClick:!0}})]})}const b=u(i)`
2
2
  --yarl__color_backdrop: rgba(0, 0, 0, .7);
3
3
  --yarl__thumbnails_container_background_color: rgba(0, 0, 0, .9);
4
4
  `;export{h as default};
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"rc-table";import{unstable_batchedUpdates as o}from"react-dom";import{FormControl as a,Table as i}from"react-bootstrap";import{useUrlSearchParams as c}from"use-url-search-params";import{isEqual as l,omit as s}from"lodash";import*as d from"react";import{useState as p,useCallback as u,useRef as m,useEffect as h,useMemo as f,memo as g,forwardRef as y,useImperativeHandle as v}from"react";import{B as b,u as x,a as w,b as j,r as C,i as k,N as S,L as E,T as z,C as V,S as N,P as O}from"./index-QRjGJrZt.js";import M from"styled-components";import H from"./index-DQ5B1OmL.js";import q from"dayjs";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";import"@topthink/json-form";const K=function({indeterminate:t=!1,...r}){const n=m(null);return h(()=>{n.current&&(n.current.indeterminate=t)},[t]),e("input",{ref:n,...r,className:"form-check-input",type:"checkbox"})};var B;function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},D.apply(null,arguments)}const P=e=>d.createElement("svg",D({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",viewBox:"0 0 1024 1024"},e),B||(B=d.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zM511.78 714.496c22.71 0 36.425-15.854 36.425-40.704V547.365H682.35c24.009 0 40.722-12.874 40.722-35.584 0-23.132-15.854-36.426-40.722-36.426H548.206V340.773c0-24.85-13.715-40.704-36.425-40.704s-35.566 16.713-35.566 40.722v134.583H342.49c-24.85 0-41.142 13.275-41.142 36.407 0 22.71 17.152 35.584 41.142 35.584h133.724v126.427c0 23.99 12.855 40.704 35.566 40.704"})));var T;function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Y.apply(null,arguments)}const F=e=>d.createElement("svg",Y({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",viewBox:"0 0 1024 1024"},e),T||(T=d.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zm86.582-289.719h344.576c23.991 0 40.704-12.855 40.704-35.566 0-23.15-15.433-36.425-40.704-36.425H339.931c-24.868 0-40.722 13.276-40.722 36.425 0 22.711 16.713 35.566 40.722 35.566"})));function I({data:r,options:n,columns:o,onSearch:a}){const[i,c]=p(0),[s,d]=p(r);h(()=>{l(r,s)||(d(r),c(e=>e+1))},[r]);const[m,g,y]=f(()=>{const e={"ui:col":10,"ui:order":n.order},t={},r={};n.fields.forEach(a=>{const i=o.find(e=>e.dataIndex===a);if(i){const o=i.title;if("string"==typeof o){if(e[a]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...n.ui?.[a]},i.valueEnum){const t=i.valueEnum;return e[a]["ui:placeholder"]="请选择",r[a]={title:o,type:"string",enum:Object.keys(t).flatMap(e=>"string"==typeof t[e].text?[e]:[]),enumNames:Object.keys(t).flatMap(e=>{const r=t[e].text;return"string"==typeof r?[r]:[]})}}t[a]=void 0,r[a]={title:o,type:"string"}}}}),n.extraFields&&Object.entries(n.extraFields).forEach(([o,a])=>{e[o]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...n.ui?.[o]},t[o]=void 0,r[o]={title:a,type:"string"}});return[{type:"object",properties:r},e,t]},[n.fields,n.extraFields]),v=u(({formData:e})=>{d(e),a({...y,...e})},[a,y]),x=u(()=>{a(y)},[a,y]);return e(R,{children:e(H,{formContext:{layout:"horizontal"},schema:m,uiSchema:g,onSubmit:v,formData:s,children:e("div",{className:"col-12 col-md-2 ms-auto mt-md-auto",children:t("div",{className:"justify-content-end d-flex gap-2 ",children:[e(b,{className:"px-4",onClick:x,variant:"secondary",children:"重置"}),e(b,{className:"px-4",type:"submit",variant:"primary",children:"查询"})]})})})},i)}const R=M.div`
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"rc-table";import{unstable_batchedUpdates as o}from"react-dom";import{FormControl as a,Table as i}from"react-bootstrap";import{useUrlSearchParams as c}from"use-url-search-params";import{isEqual as l,omit as s}from"lodash";import*as d from"react";import{useState as p,useCallback as u,useRef as m,useEffect as h,useMemo as f,memo as g,forwardRef as y,useImperativeHandle as v}from"react";import{B as b,u as x,a as w,b as j,r as C,i as k,N as S,L as E,T as z,C as V,S as N,P as O}from"./index-kYqlWcrn.js";import M from"styled-components";import H from"./index-Dw97sbyt.js";import q from"dayjs";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";import"@topthink/json-form";const K=function({indeterminate:t=!1,...r}){const n=m(null);return h(()=>{n.current&&(n.current.indeterminate=t)},[t]),e("input",{ref:n,...r,className:"form-check-input",type:"checkbox"})};var B;function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},D.apply(null,arguments)}const P=e=>d.createElement("svg",D({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",viewBox:"0 0 1024 1024"},e),B||(B=d.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zM511.78 714.496c22.71 0 36.425-15.854 36.425-40.704V547.365H682.35c24.009 0 40.722-12.874 40.722-35.584 0-23.132-15.854-36.426-40.722-36.426H548.206V340.773c0-24.85-13.715-40.704-36.425-40.704s-35.566 16.713-35.566 40.722v134.583H342.49c-24.85 0-41.142 13.275-41.142 36.407 0 22.71 17.152 35.584 41.142 35.584h133.724v126.427c0 23.99 12.855 40.704 35.566 40.704"})));var T;function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Y.apply(null,arguments)}const F=e=>d.createElement("svg",Y({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor",viewBox:"0 0 1024 1024"},e),T||(T=d.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zm86.582-289.719h344.576c23.991 0 40.704-12.855 40.704-35.566 0-23.15-15.433-36.425-40.704-36.425H339.931c-24.868 0-40.722 13.276-40.722 36.425 0 22.711 16.713 35.566 40.722 35.566"})));function I({data:r,options:n,columns:o,onSearch:a}){const[i,c]=p(0),[s,d]=p(r);h(()=>{l(r,s)||(d(r),c(e=>e+1))},[r]);const[m,g,y]=f(()=>{const e={"ui:col":10,"ui:order":n.order},t={},r={};n.fields.forEach(a=>{const i=o.find(e=>e.dataIndex===a);if(i){const o=i.title;if("string"==typeof o){if(e[a]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...n.ui?.[a]},i.valueEnum){const t=i.valueEnum;return e[a]["ui:placeholder"]="请选择",r[a]={title:o,type:"string",enum:Object.keys(t).flatMap(e=>"string"==typeof t[e].text?[e]:[]),enumNames:Object.keys(t).flatMap(e=>{const r=t[e].text;return"string"==typeof r?[r]:[]})}}t[a]=void 0,r[a]={title:o,type:"string"}}}}),n.extraFields&&Object.entries(n.extraFields).forEach(([o,a])=>{e[o]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...n.ui?.[o]},t[o]=void 0,r[o]={title:a,type:"string"}});return[{type:"object",properties:r},e,t]},[n.fields,n.extraFields]),v=u(({formData:e})=>{d(e),a({...y,...e})},[a,y]),x=u(()=>{a(y)},[a,y]);return e(R,{children:e(H,{formContext:{layout:"horizontal"},schema:m,uiSchema:g,onSubmit:v,formData:s,children:e("div",{className:"col-12 col-md-2 ms-auto mt-md-auto",children:t("div",{className:"justify-content-end d-flex gap-2 ",children:[e(b,{className:"px-4",onClick:x,variant:"secondary",children:"重置"}),e(b,{className:"px-4",type:"submit",variant:"primary",children:"查询"})]})})})},i)}const R=M.div`
2
2
  margin-bottom: 1rem;
3
3
  `;function _({keyword:t,onKeywordChange:r}){const[n,o]=p(t),i=x(r,500);h(()=>{o(t)},[t]);const c=u(e=>{o(e.target.value),i(e.target.value)},[i,o]);return e(a,{value:n,onChange:c,type:"search",placeholder:"Search..."})}const A=M.thead`
4
4
  th {
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import o,{getRegistry as r}from"@topthink/json-form";import*as a from"react";import{forwardRef as e,useState as i,useCallback as n}from"react";import s from"axios";import{c as p,r as m,B as d}from"./index-QRjGJrZt.js";import{mapValues as l}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";const c=require("ajv-i18n/localize/zh"),u=a.lazy(()=>import("./editor-widget-DiT2rVOW.js")),f=o=>t(a.Suspense,{fallback:null,children:t(u,{...o})}),y={upload:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a,value:e}=await m({url:o.endpoint,method:"post",data:r});return{url:a,value:e}}),t(e.upload,{...a,options:o})},avatar:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a}=await m({url:o.endpoint,method:"post",data:r});return a}),t(e.avatar,{...a,options:o})},editor:function({options:o,...r}){return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a}=await m({url:o.endpoint,method:"post",data:r});return a}),t(f,{...r,options:o})},typeahead:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onSearch=async({value:t,query:r})=>await m({url:o.endpoint,params:{value:t,query:r}})),t(e.typeahead,{...a,options:o})}},h=e(({action:r,method:a="post",onSuccess:e,formData:u,onSubmitting:f,onSubmit:h,onChange:w,submitText:b="保存",transformData:g,children:v,validate:j,disabled:x,...D},S)=>{const[k,q]=i(),[z,_]=p(!1),[E,F]=i(u),U=n(async(t,o)=>{if(!z)try{if(_(!0),f&&f(!0),r){let{formData:o}=t;g&&(o=g(o));try{const t=await m({url:r,method:a,data:o});return q(void 0),e&&await e(t),t}catch(t){if(!s.isAxiosError(t))throw t;q((t=>{const o=t.errors;return"string"==typeof o?{__errors:[o]}:l(o,t=>({__errors:[t]}))})(t))}}else if(h)return await h(t,o)}finally{_(!1),f&&f(!1)}},[r,a,h]),C=n(t=>{const{formData:o}=t;F(o),w&&w(t)},[F,w]),N=n(t=>(t=t.map(t=>({keyword:t.name,dataPath:t.property,...t})),c(t),t),[]),T=t(d,{className:"px-4",disabled:x,loading:z,type:"submit",variant:"primary",children:b});"function"==typeof v&&(v=v({submit:T,loading:z,disabled:x}));const V=!j;return!0===j&&(j=void 0),t(o,{ref:S,extraErrors:k,onSubmit:U,transformErrors:N,noHtml5Validate:!0,noValidate:V,validate:j,disabled:x,...D,formData:E,onChange:C,widgets:y,children:v||t("div",{className:"col-12",children:T})})});export{h as default};
1
+ import{jsx as t}from"react/jsx-runtime";import o,{getRegistry as r}from"@topthink/json-form";import*as a from"react";import{forwardRef as e,useState as i,useCallback as n}from"react";import s from"axios";import{c as p,r as m,B as d}from"./index-kYqlWcrn.js";import{mapValues as l}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";const c=require("ajv-i18n/localize/zh"),u=a.lazy(()=>import("./editor-widget-DiT2rVOW.js")),f=o=>t(a.Suspense,{fallback:null,children:t(u,{...o})}),y={upload:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a,value:e}=await m({url:o.endpoint,method:"post",data:r});return{url:a,value:e}}),t(e.upload,{...a,options:o})},avatar:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a}=await m({url:o.endpoint,method:"post",data:r});return a}),t(e.avatar,{...a,options:o})},editor:function({options:o,...r}){return o.endpoint&&(o.onUpload=async t=>{const r=new FormData;r.set("file",t);const{url:a}=await m({url:o.endpoint,method:"post",data:r});return a}),t(f,{...r,options:o})},typeahead:function({options:o,...a}){const{widgets:e}=r();return o.endpoint&&(o.onSearch=async({value:t,query:r})=>await m({url:o.endpoint,params:{value:t,query:r}})),t(e.typeahead,{...a,options:o})}},h=e(({action:r,method:a="post",onSuccess:e,formData:u,onSubmitting:f,onSubmit:h,onChange:w,submitText:b="保存",transformData:g,children:v,validate:j,disabled:x,onRequest:D,...S},k)=>{const[q,z]=i(),[_,E]=p(!1),[F,U]=i(u),C=n(async(t,o)=>{if(!_)try{if(E(!0),f&&f(!0),r||D){let{formData:o}=t;g&&(o=g(o));try{let t;return t=D?await D(o):await m({url:r,method:a,data:o}),z(void 0),e&&await e(t,o),t}catch(t){if(!s.isAxiosError(t))throw t;z((t=>{const o=t.errors;return"string"==typeof o?{__errors:[o]}:l(o,t=>({__errors:[t]}))})(t))}}else if(h)return await h(t,o)}finally{E(!1),f&&f(!1)}},[r,a,h,D]),N=n(t=>{const{formData:o}=t;U(o),w&&w(t)},[U,w]),T=n(t=>(t=t.map(t=>({keyword:t.name,dataPath:t.property,...t})),c(t),t),[]),V=t(d,{className:"px-4",disabled:x,loading:_,type:"submit",variant:"primary",children:b});"function"==typeof v&&(v=v({submit:V,loading:_,disabled:x}));const A=!j;return!0===j&&(j=void 0),t(o,{ref:k,extraErrors:q,onSubmit:C,transformErrors:T,noHtml5Validate:!0,noValidate:A,validate:j,disabled:x,...S,formData:F,onChange:N,widgets:y,children:v||t("div",{className:"col-12",children:V})})});export{h as default};
@@ -0,0 +1,78 @@
1
+ import e from"sweetalert2/dist/sweetalert2.js";import n from"sweetalert2-react-content";import{jsx as t,jsxs as r,Fragment as o}from"react/jsx-runtime";import{useRef as a,useState as i,useEffect as c,createContext as s,useContext as l,useCallback as d,useMemo as u,Fragment as h,forwardRef as m,lazy as f,Suspense as p,memo as g,Children as y,createElement as w,useImperativeHandle as v}from"react";import{OverlayTrigger as b,Tooltip as x,Spinner as k,Button as C,Modal as N,ButtonGroup as S,ToggleButton as z,Card as j,Accordion as P,Stack as T,Alert as $,Pagination as H,Offcanvas as B,Row as E,Col as D}from"react-bootstrap";import{uniqueId as L,values as _,omit as R,debounce as F}from"lodash";import M from"axios";import O from"query-string";import*as U from"retry-axios";import{enqueueSnackbar as A,SnackbarProvider as I}from"notistack";import q from"path";import{useAsyncCallback as W}from"react-async-hook";import G,{css as K,createGlobalStyle as V}from"styled-components";import Y from"dayjs";import"dayjs/locale/zh-cn";import Q from"dayjs/plugin/relativeTime";import J from"dayjs/plugin/duration";import X from"classnames";import{useUrlSearchParams as Z}from"use-url-search-params";import ee from"copy-to-clipboard";import*as ne from"goober";import{freeze as te,produce as re}from"immer";import"react-intersection-observer";const oe=()=>{document.body.style.setProperty("--vh",window.innerHeight/100+"px"),document.body.style.setProperty("--100vh",window.innerHeight+"px")};window.addEventListener("resize",oe),oe();const ae=n(e),ie={confirmButtonText:"确定",cancelButtonText:"取消"},ce={confirm:async e=>{const{isConfirmed:n}=await ae.fire({...ie,icon:"warning",showCancelButton:!0,...e,async preConfirm(n){if(e.preConfirm)try{return await e.preConfirm(n)}catch(e){return e instanceof Error&&ae.showValidationMessage(e.message),!1}return!0}});return n},success:e=>{ae.fire({...ie,toast:!0,position:"top",icon:"success",timer:2e3,showConfirmButton:!1,...e})},error:e=>{ae.fire({...ie,toast:!0,position:"top",icon:"error",timer:5e3,showConfirmButton:!1,...e})},close:e=>{ae.close(e)},defaults:ie};const se=s({});function le(e){return({resolve:n,destroy:r,message:o})=>{const[s,h]=function(e){const n=a(null),[t,r]=i(e);return c(()=>{n.current&&(n.current(),n.current=null)},[t]),[t,(e,t)=>{n.current="function"==typeof t?t:null,r(e)}]}(!0),m=l(se),f=d(e=>{h(!1,()=>{n(e)})},[h,n]),p=u(()=>({show:s,onHide:()=>f(),onExited:()=>r(),container:m.container}),[s,f,r]);return t(e,{resolve:f,state:p,message:o})}}function de(e){return n=>new Promise(r=>{const o=t(e,{resolve:r,destroy:()=>{fe(o)},message:n});me(o)})}let ue=()=>{},he=new Set;const me=e=>{he=new Set(he),he.add(e),ue(he)},fe=e=>{he=new Set(he),he.delete(e),ue(he)};function pe(e,n){return de(le(e))(n)}function ge({tooltip:e,children:n,placement:r="bottom"}){return t(b,{placement:r,overlay:t(x,{id:L(),children:e}),children:n})}const ye=s(!1),we=m(({loading:e,percent:n,disabled:a,children:i,tooltip:c,variant:s,...d},u)=>{l(ye)&&!s&&(s="link"),e&&(a=!0,i=r(o,{children:[t(k,{ref:u,as:"span",size:"sm",role:"status","aria-hidden":"true",animation:"border"}),n?r("span",{className:"ms-2",children:[n,"%"]}):null]}));const h=t(C,{ref:u,...d,variant:s,disabled:a,children:i});return c?t(ge,{tooltip:c,children:t("span",{className:"d-inline-block",children:h})}):h}),ve=function({state:e,message:{title:n,message:o,okText:a,cancelText:i},resolve:c}){return r(N,{...e,children:[t(N.Header,{children:t(N.Title,{as:"h5",children:n||"确认"})}),t(N.Body,{children:o}),r(N.Footer,{children:[t(we,{variant:"secondary",onClick:()=>c(),children:i||"取消"}),t(we,{onClick:()=>c(!0),children:a||"确定"})]})]})};const be=f(()=>import("./index-Dw97sbyt.js")),xe=m((e,n)=>t(p,{fallback:null,children:t(be,{...e,ref:n})})),ke=function({state:e,resolve:n,message:{title:o,size:i,layout:c,...s}}){const l=a(null);return r(N,{...e,size:i,backdrop:"static",children:[t(N.Header,{children:t(N.Title,{as:"h5",children:o})}),t(N.Body,{children:t(xe,{ref:l,...s,formContext:{layout:c},onSubmit:({formData:e})=>{n(e)},children:t(h,{})})}),r(N.Footer,{children:[t(we,{variant:"secondary",onClick:()=>n(),children:"取消"}),t(we,{onClick:()=>{l.current?.submit().catch(()=>{})},children:"确定"})]})]})};const Ce=({header:e,children:n,footer:a,closable:c=!0,show:s,cancelText:l="取消",okText:d="确定",onOk:h,onCancel:m,onHide:f,okButtonProps:p,bodyAs:g,headerAs:y="h5",confirmLoading:w=!1,...v})=>{const[b,x]=i(!1),k=u(()=>t(we,{loading:b||w,variant:"primary",onClick:async e=>{x(!0);try{await(h?.(e)),e.defaultPrevented||f?.()}finally{x(!1)}},...p,children:d}),[p,d,h,f,b,w]),C=u(()=>t(we,{variant:"secondary",onClick:e=>{m?.(e),e.defaultPrevented||f?.()},children:l}),[m,f,l]),S={close:()=>{f?.()}};switch(typeof a){case"undefined":a=r(o,{children:[C,k]});break;case"function":a=a({okButton:k,cancelButton:C,action:S})}return r(N,{...v,onHide:f,show:s,children:[e&&t(N.Header,{closeButton:c,children:t(N.Title,{as:y,children:e})}),t(N.Body,{as:g,children:n}),a&&t(N.Footer,{children:a})]})};Ce.Message=function(e){const[n,r]=i(he);return c(()=>{ue=r},[]),t(se.Provider,{value:e,children:Array.from(n).map((e,n)=>t(h,{children:e},`message-${n}`))})},Ce.confirm=function(e){return de(le(ve))(e)},Ce.prompt=function(e){return de(le(g(ke)))(e)},Ce.show=pe;const Ne=["default","error","warning","success","info"].reduce((e,n)=>(e[n]=(e,t)=>A(e,{variant:n,autoHideDuration:3e3,anchorOrigin:{vertical:"top",horizontal:"center"},...t}),e),{});function Se(e){return e&&"object"==typeof e}U.attach(),M.defaults.raxConfig={retryDelay:2e3,backoffType:"static",shouldRetry:({config:e,response:n})=>!(e.raxConfig?.retryDecider&&!e.raxConfig.retryDecider())&&("GET"===e.method?.toUpperCase()&&449===n?.status)},M.defaults.maxContentLength=1/0,M.defaults.maxBodyLength=1/0,M.defaults.baseURL="/api",M.defaults.authTokenName="authorization";const ze=M.isAxiosError,je=e=>{if(!M.isAxiosError(e))throw e;Ne.error(e.message)},Pe=function(e){e?.baseURL&&(e.baseURL=q.resolve(M.defaults.baseURL||"/",e.baseURL));const n=M.create(e);return U.attach(n),n.interceptors.request.use(e=>{const n=e.authTokenName;if(n){const t=localStorage.getItem(n);t&&(e.headers={Authorization:`Bearer ${t}`,...e.headers})}return e},e=>Promise.reject(e)),n.interceptors.response.use(e=>(201===e.status&&e.data.location&&(window.location.href=e.data.location,e.data=void 0),e),e=>{if(M.isAxiosError(e)&&e.response){const{data:n,status:t}=e.response;401===t?e.errors="Unauthorized":Se(n)?422===t?e.errors=n:"message"in n&&(e.errors=n.message):e.errors=n,"string"!=typeof e.errors?e.message=Object.values(e.errors).join("<br />"):e.message=e.errors}return Promise.reject(e)}),n},Te=async function(e,n){if(n||(n=Pe()),e="string"==typeof e?{url:e}:e,(e={paramsSerializer:function(e){return O.stringify(e,{sort:!1,skipNull:!0,skipEmptyString:!0,arrayFormat:"bracket"})},...e}).onMessage){let n=0,t="",r=null;const o=e.onMessage;e.onDownloadProgress=e=>{const a=e.target,{responseText:i}=a;for(;n<e.loaded;){const e=i.substring(n,++n);if(t+=e,"\n"===e){if(r||(r={id:"",event:"",data:""}),"\n"===t)o(r),r=null;else{const e=t.match(/^data:(?<data>.*)/);e&&(r.data=e.groups.data.trim())}t=""}}}}const{data:t}=await n.request(e);return t};Te.create=function(e){const n=Pe(e),t=e=>Te(e,n);return t.interceptors=n.interceptors,t},Te.defaults=M.defaults,Te.interceptors=M.interceptors;function $e(e){const n=(()=>{const e=a(!1);return c(()=>(e.current=!1,()=>{e.current=!0}),[]),e})(),[t,r]=i(e);return[t,d(e=>{n.current||r(e)},[])]}function He(e,n={}){const{locale:t="zh-CN",currency:r=!0,...o}=n;let a;a=r?{style:"currency",currency:"CNY"}:{minimumFractionDigits:2};return new Intl.NumberFormat(t,{...a,...o}).format(e)}function Be(e,{manual:n,refreshDeps:t,...r}={}){let{execute:o,currentParams:a,error:i,...s}=W(async n=>(e="string"==typeof e?{url:e}:e,await Te({...e,...n})),r);c(()=>{if(!n&&!t)try{o()}catch{}},[]),c(()=>{t&&l()},t);const l=d(async()=>{try{a?await o(...a):await o()}catch{}},[o,a]);if(i&&ze(i)){const e=i.errors;i=new Error("string"==typeof e?e:_(e).join(""))}return{refresh:l,execute:o,error:i,...s}}function Ee({active:e,inverted:n,...r}){return t(De,{$active:e,$inverted:n,...r})}G.div`
2
+ position: relative;
3
+ `;const De=G.div`
4
+ display: ${e=>e.$active?"flex":"none"};
5
+ position: absolute;
6
+ top: 0 !important;
7
+ left: 0 !important;
8
+ width: 100%;
9
+ height: 100%;
10
+ text-align: center;
11
+ vertical-align: middle;
12
+ padding: 1em;
13
+ background-color: ${e=>e.$inverted?"rgba(255, 255, 255, .85)":"rgba(0, 0, 0, .85)"};
14
+ opacity: ${e=>e.$active?1:0};
15
+ line-height: 1;
16
+ animation-fill-mode: both;
17
+ animation-duration: .5s;
18
+ transition: background-color .5s linear;
19
+ flex-direction: column;
20
+ align-items: center;
21
+ justify-content: center;
22
+ user-select: none;
23
+ will-change: opacity;
24
+ z-index: 990;
25
+ `;function Le({loading:e=!0,children:n,variant:o="primary",animation:a="border",wrap:i,...c}){return e?(n&&(n=t("p",{className:"mt-3 text-secondary",children:n})),n=r(Ee,{inverted:!0,active:!0,children:[t(k,{animation:a,variant:o,...c}),n]}),i?t(_e,{$height:"number"==typeof i?i:150,children:n}):n):null}const _e=G.div`
26
+ position: relative;
27
+ height: ${e=>`${e.$height}px`};
28
+ `,Re=f(async()=>{const{QRCodeSVG:e}=await import("qrcode.react");return{default:e}});function Fe(e){return t(p,{fallback:null,children:t(Re,{...e})})}const Me=function({state:e,message:n,resolve:r}){const o=a(!0),{result:i,checkUrl:s,onComplete:l}=n,[d,u]=$e(!1);return c(()=>{Te({url:s,method:"post",data:{order_no:i.order_no},raxConfig:{shouldRetry:e=>o.current&&449===e.response?.status}}).then(()=>{l?.(),r()}).catch(()=>null)},[]),t(Ce,{...e,centered:!0,onHide:()=>{o.current=!1,e.onHide()},backdrop:"static",header:"支付结果",okText:"已完成支付",okButtonProps:{loading:d},onOk:async e=>{e.preventDefault();try{u(!0),await Te({url:s,method:"post",data:{order_no:i.order_no,force:!0},raxConfig:{shouldRetry:()=>!1}}),l?.(),r()}catch(e){ze(e)&&Ne.error(e.message)}finally{u(!1)}},cancelText:"取消",children:"请在新打开的页面上进行支付,支付完成后再关闭此窗口"})},Oe=function({state:e,message:n,resolve:o}){const i=a(!0),{result:{pay_options:s,order_no:l},checkUrl:d,onComplete:u}=n,[h,m]=$e(s.channels.alipay?"alipay":"wechat"),[f,p]=$e(!1);c(()=>{Te({url:d,method:"post",data:{order_no:l},raxConfig:{shouldRetry:e=>i.current&&449===e.response?.status}}).then(()=>{u?.(),o()}).catch(()=>null)},[]);const{loading:g,result:y}=Be({url:s.url,method:"POST",data:{channel:h,order_no:l}},{refreshDeps:[h]});return r(Ce,{...e,onHide:()=>{i.current=!1,e.onHide()},centered:!0,backdrop:"static",header:"收银台",okText:"已完成支付",okButtonProps:{loading:f},onOk:async e=>{e.preventDefault();try{p(!0),await Te({url:d,method:"post",data:{order_no:l,force:{channel:h}},raxConfig:{shouldRetry:()=>!1}}),u?.(),o()}catch(e){ze(e)&&Ne.error(e.message)}finally{p(!1)}},cancelText:"取消",children:[r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"商品名称"}),t("dd",{className:"col-9",children:s.subject})]}),r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"支付金额"}),t("dd",{className:"col-9 text-success h3",children:He(s.amount/100)})]}),r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"支付方式"}),t("dd",{className:"col-9",children:r(S,{children:[s.channels.alipay&&t(z,{id:"payment-alipay",type:"radio",variant:"alipay"===h?"primary":"outline-primary",name:"alipay",value:"alipay",checked:"alipay"===h,onChange:()=>m("alipay"),children:"支付宝"}),s.channels.alipay&&t(z,{id:"payment-wechat",type:"radio",variant:"wechat"===h?"primary":"outline-primary",name:"wechat",value:"wechat",checked:"wechat"===h,onChange:()=>m("wechat"),children:"微信支付"})]})})]}),r("dl",{className:"row mb-0",children:[t("dt",{className:"col-3",children:"扫码支付"}),r("dd",{className:"col-9",children:[t(Le,{loading:g,wrap:200}),y&&t(Fe,{size:200,value:y.data})]})]})]})};function Ue(e){const{result:n}=e;n.pay_url?(window.opener=null,window.innerWidth<992?location.href=n.pay_url:(window.open(n.pay_url),pe(Me,e))):pe(Oe,e)}function Ae(e,n=2){const t=["","K","M","G"];let r=0;for(;e>=1024&&r<t.length-1;)e/=1024,r++;return e%1==0&&(n=0),e.toFixed(n)+t[r]}function Ie(e,n=2){const t=["","K","M","G"];let r=0;for(;e>=1e3&&r<t.length-1;)e/=1e3,r++;return e%1==0&&(n=0),e.toFixed(n)+t[r]}function qe(e){const n=q.extname(e);return!(!/^data:image\//.test(e)&&!/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n))||!/^data:/.test(e)&&!n}function We(e){if(/^https?:\/\//.test(e))return e;const n=document.createElement("a");return n.href=e,n.href}Y.locale("zh-cn"),Y.extend(Q),Y.extend(J);const Ge={success:t("i",{className:"bi bi-check-circle-fill text-success"}),error:t("i",{className:"bi bi-exclamation-circle-fill text-danger"}),info:t("i",{className:"bi bi-info-circle-fill text-info"}),warning:t("i",{className:"bi bi-exclamation-triangle-fill text-warning"})};function Ke({className:e,status:n,title:o,icon:a,extra:i}){return!a&&n&&(a=Ge[n]),r(Ve,{className:e,children:[a&&t(Ye,{children:a}),o&&t(Qe,{children:o}),i&&t(Je,{children:i})]})}const Ve=G.div`
29
+ padding: 48px 32px;
30
+ `,Ye=G.div`
31
+ margin-bottom: 24px;
32
+ text-align: center;
33
+ font-size: 72px;
34
+ `,Qe=G.div`
35
+ color: rgba(0, 0, 0, .85);
36
+ font-size: 24px;
37
+ line-height: 1.8;
38
+ text-align: center;
39
+ `,Je=G.div`
40
+ margin-top: 32px;
41
+ text-align: center;
42
+ `;function Xe({children:e,title:n,className:a,...i}){return t(Ze,{className:X("border-0 shadow-sm",a),...i,children:r("div",{className:"card-body",children:[n&&r(o,{children:[t("h5",{children:n}),t("hr",{})]}),e]})})}const Ze=G(j)`
43
+ &:not(:last-child) {
44
+ margin-bottom: 1rem;
45
+ }
46
+ `,en=s(void 0);function nn({children:e}){const[n,r]=i(new Set),o=d(e=>{e&&"string"==typeof e&&(e=[e]),r(new Set(e))},[r]);return t(en.Provider,{value:[n,r],children:t(P,{activeKey:Array.from(n),onSelect:o,alwaysOpen:!0,children:e})})}const tn=()=>{const e=l(en);if(!e)throw new Error("usePanel must be used within a PanelGroup");return e};function rn({title:e,action:n,children:a,eventKey:i,open:s}){if(i){const[,e]=tn();c(()=>{void 0!==s&&e(e=>s?new Set([...e,i]):new Set([...e].filter(e=>e!==i)))},[s]),a=t(P.Collapse,{eventKey:i,children:r(o,{children:[t("hr",{}),a]})})}else a=r(o,{children:[t("hr",{}),a]});return r(Xe,{children:[r(T,{direction:"horizontal",children:[t("div",{className:"fs-5 me-auto",children:e}),n]}),a]})}function on({errors:e}){return e?t($,{variant:"danger",children:t("ul",{className:"mb-0",children:"string"==typeof e?t("li",{children:e}):Object.entries(e).map(([e,n])=>t("li",{children:n},e))})}):null}function an({children:e,className:n,size:r="small",direction:o="horizontal"}){"string"==typeof r&&(r={small:8,middle:16,large:24}[r]);const a=y.map(e,e=>{if(e)return t(sn,{children:e})});return t(cn,{className:n,$direction:o,$size:r,children:a})}const cn=G.div`
47
+ display: inline-flex;
48
+ align-items: center;
49
+ gap: ${e=>e.$size}px;
50
+
51
+ ${e=>"vertical"===e.$direction&&K`
52
+ display: flex;
53
+ flex-direction: column;
54
+ align-items: inherit;
55
+ `}
56
+ `,sn=G.div`
57
+
58
+ `,ln=f(()=>import("./steps-DECts1pI.js")),dn=f(()=>import("./steps-DECts1pI.js").then(({Step:e})=>({default:e})));function un(e){return t(p,{fallback:null,children:t(ln,{...e})})}const hn=function(e){return t(p,{fallback:null,children:t(dn,{...e})})};function mn({title:e,content:n,footer:o}){return r(Xe,{children:[t(gn,{children:e}),t(pn,{children:n}),o&&t(fn,{children:o})]})}un.Step=hn;const fn=G.div`
59
+ margin-top: 9px;
60
+ padding-top: 10px;
61
+ border-top: 1px solid #f0f0f0;
62
+ color: rgba(0, 0, 0, .65);
63
+ `,pn=G.div`
64
+ color: rgba(0, 0, 0, .85);
65
+ font-size: 24px;
66
+ `,gn=G.div`
67
+ margin-bottom: 4px;
68
+ color: rgba(0, 0, 0, .45);
69
+ font-size: 1.1rem;
70
+ `;function yn(){}function wn(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function vn(e){return"current_page"in e}function bn({total:e=0,onChange:n=yn,defaultCurrent:o=1,defaultPageSize:a=10,className:s,...l}){const[h,m]=i(o),[f,p]=i(a);c(()=>{wn(l.current)&&m(l.current)},[l.current]),c(()=>{wn(l.pageSize)&&p(l.pageSize)},[l.pageSize]);const g=u(()=>Math.floor((e-1)/f)+1,[e,f]),y=d(e=>()=>{e!==h&&(m(e),n(e,f))},[n,h,f]),w=h-1>0?h-1:0,v=h+1<g?h+1:g,b=[];let x=null,k=null,C=null,N=null;if(g<=7)for(let e=1;e<=g;e+=1){const n=h===e;b.push(t(H.Item,{active:n,onClick:y(e),children:e},e))}else{N=t(H.Last,{onClick:y(g)},"last"),C=t(H.First,{onClick:y(1)},"first"),x=t(H.Prev,{onClick:y(w)},"prev"),k=t(H.Next,{onClick:y(v)},"next");let e=Math.max(1,h-2),n=Math.min(h+2,g);h-1<=2&&(n=5),g-h<=2&&(e=g-4);for(let r=e;r<=n;r+=1){const e=h===r;b.push(t(H.Item,{active:e,onClick:y(r),children:r},r))}h-1>=4&&3!==h&&b.unshift(x),g-h>=4&&h!==g-2&&b.push(k),1!==e&&b.unshift(C),n!==g&&b.push(N)}return r("div",{className:X("mb-3 d-flex align-column-center justify-content-between",s),children:[r("div",{className:"d-flex align-items-center",children:["共 ",e," 条"]}),t(H,{className:"mb-0",children:b})]})}function xn({className:e,value:n,locale:r="zh-CN",currency:a=!0,options:i={}}){const c=u(()=>{let e;return e=a?{style:"currency",currency:"CNY"}:{minimumFractionDigits:2},new Intl.NumberFormat(r,{...e,...i})},[a,r,i]);return e?t("span",{className:e,children:c.format(n)}):t(o,{children:c.format(n)})}function kn({loading:e,disabled:n,children:r,...o}){return t(C,{...o,disabled:e||n,children:e?"Loading…":r})}const Cn=f(()=>import("./image-zoom-He8CEHjx.js"));function Nn(e){return t(p,{fallback:null,children:t(Cn,{...e})})}const Sn=m(({confirm:e,onSuccess:n,children:t,disabled:r,as:o=we,onError:a,...i},c)=>{const[s,l]=$e(!1),u=d(async t=>{t.preventDefault(),t.stopPropagation();try{if(l(!0),e&&!await Ce.confirm({message:e}))return;let t;if("onRequest"in i)t=await i.onRequest();else{const e="string"==typeof i.url?{url:i.url,method:i.method}:{method:i.method,...i.url};t=await Te(e)}n&&n(t)}catch(t){if(!(t instanceof Error))throw t;a?a(t):Ne.error(t.message,{preventDuplicate:!0})}finally{l(!1)}},[i,l]);return w(o,{...R(i,["onRequest","url","method"]),disabled:r||s,onClick:u,ref:c},t)}),zn=f(()=>import("./index-Dq32ec_1.js")),jn=m((e,n)=>t(p,{fallback:null,children:t(zn,{...e,ref:n})}));let Pn=0;function Tn({onHide:e,onShow:n}={}){const[t,r]=i(!1),[o,a]=i(`visible-${Pn}`),c=d(()=>{r(!1),e&&e()},[r,e]),s=d(()=>{a("visible-"+ ++Pn)},[a,Pn]);return{visible:t,show:d(()=>{r(!0),n&&n()},[r,n]),hide:c,state:{show:t,onHide:c,onExited:s,key:o}}}const $n=m(({text:e,onOk:n,modalProps:a,children:i,onShow:c,onHide:s,confirmLoading:l,as:d=we,...u},h)=>{const{state:m,show:f,hide:p}=Tn({onShow:c,onHide:s});v(h,()=>({close:p}));const g=w(d,{...u,onClick:e=>{e.preventDefault(),e.stopPropagation(),f()}},e);return r(o,{children:[g,t(Ce,{header:e,...a,...m,confirmLoading:l,onOk:async e=>{if(n){!1===await n()&&e.preventDefault()}},children:i})]})}),Hn=m(({text:e,onSuccess:n,onSubmit:o,buttonProps:c,modalProps:s,children:l,...u},h)=>{const[m,f]=i(!1),p=a(null),g=a(null);v(h,()=>({close:()=>{p.current?.close()}}));const y=d(async()=>(g.current?.submit().catch(()=>{}),!1),[]),w=d((e,t)=>{n&&n(e,t),p.current?.close()},[n]),b=d(async(e,n)=>{o&&await o(e,n)&&p.current?.close()},[o]);return t($n,{ref:p,text:e,...c,modalProps:s,onOk:y,confirmLoading:m,children:r(xe,{...u,onSubmitting:f,ref:g,onSuccess:w,onSubmit:b,children:[l,t("input",{type:"submit",hidden:!0})]})})});function Bn({header:e,children:n,closable:o=!0,show:a,onHide:i,bodyAs:c,headerAs:s="h5",...l}){return r(B,{...l,onHide:i,show:a,children:[e&&t(B.Header,{closeButton:o,children:t(B.Title,{as:s,children:e})}),t(B.Body,{as:c,children:n})]})}const En=m(({text:e,offcanvasProps:n,children:a,onShow:i,onHide:c,as:s=we,...l},d)=>{const{state:u,show:h,hide:m}=Tn({onShow:i,onHide:c});v(d,()=>({close:m}));const f=w(s,{...l,onClick:h},e);return r(o,{children:[f,t(Bn,{header:e,...n,...u,children:a})]})});function Dn(e,n=[]){const t=a(e);return c(()=>{t.current=e}),d((...e)=>t.current?.(...e),n)}function Ln(e){const{value:n,defaultValue:t,onChange:r,shouldUpdate:o=(e,n)=>e!==n}=e,a=Dn(r),c=Dn(o),[s,l]=i(t),d=void 0!==n,u=d?n:s,h=Dn(e=>{const n="function"==typeof e?e(u):e;c(u,n)&&(d||l(n),a(n))},[d,a,u,c]);return[u,h]}const _n=m(({className:e,rowClassName:n,paginate:o=!0,sync:s=!1,columns:l=3,source:u,renderItem:h,renderEmpty:m},f)=>{const[p,g]=i([]),[y,w]=i(o?{total:0,current:1,pageSize:10}:null),[b,x]=i(!0),[k,C]=Z({}),[N,S]=Ln({value:s?k.page||1:void 0,defaultValue:1,onChange:e=>{s&&C({page:e||void 0})}}),z=d(async(e=!1)=>{e||x(!0);try{let e;const n={page:N>1?N:void 0};e="string"==typeof u?await Te({url:u,params:n}):await u(n),o&&vn(e)?(e.last_page>1?w({total:e.total,current:e.current_page,pageSize:e.per_page}):w(null),e=e.data):w(null),g(e)}catch(e){}finally{x(!1)}},[u,g,N]);c(()=>{z()},[N]),c(()=>{j.current={reload:z}},[z]);const j=a({reload:z});return v(f,()=>j.current),r(Rn,{className:e,children:[t(Le,{wrap:!0,loading:b}),0===p.length&&!b&&m?.(),t(E,{className:X(n,"g-4"),children:p.map((e,n)=>t(D,{className:"d-flex",md:12/l,children:h(e)},`card-${n}`))}),y&&t(Fn,{...y,onChange:S})]})}),Rn=G.div`
71
+
72
+ `,Fn=G(bn)`
73
+ margin-bottom: 0;
74
+ justify-content: flex-end;
75
+ margin-top: 1rem;
76
+ `;var Mn=g(_n);function On(){const[e,n]=i(!1),t=a();return c(()=>()=>{t.current&&clearTimeout(t.current)},[]),{copied:e,copy:d(e=>{ee(e),n(!0),t.current&&clearTimeout(t.current),t.current=setTimeout(()=>{n(!1),t.current=void 0},3e3)},[])}}function Un({as:e="div",className:n,content:r,tooltip:o=!0,placement:a}){const{copy:i,copied:c}=On(),s=o?t("i",c?{className:"bi bi-clipboard-check"}:{className:"bi bi-clipboard"}):c?"已复制":"复制",l=w(e,{role:"button",className:n,onClick:()=>{"function"==typeof r&&(r=r()),i(r)}},s);return o?t(ge,{tooltip:c?"已复制":"复制",placement:a,children:l}):l}const An=s({images:new Map,current:0,setCurrent:()=>null,setShow:()=>null,registerImage:()=>()=>null,getId:()=>0}),In=f(()=>import("./index-C_-3Bx3J.js")),qn=f(()=>import("./image-CxAkw1uO.js"));function Wn(e){return t(p,{fallback:null,children:t(In,{...e})})}Wn.Image=function(e){return t(p,{fallback:null,children:t(qn,{...e})})},Wn.Context=An;const Gn=f(()=>import("./infinite-scroller-6129fWpu.js")),Kn=m((e,n)=>t(p,{fallback:null,children:t(Gn,{...e,ref:n})})),Vn=f(()=>import("./slider-DE41CkdN.js"));function Yn(e){return t(p,{fallback:null,children:t(Vn,{...e})})}function Qn({children:e}){return r(I,{children:[t(Jn,{}),e]})}const Jn=V`
77
+ ${ne.extractCss()}
78
+ `,Xn=f(()=>import("./cascader-BQf3OIMo.js"));function Zn(e){return t(p,{fallback:null,children:t(Xn,{...e})})}const et=f(()=>import("./select-CwDOdXXH.js"));function nt(e){return t(p,{fallback:null,children:t(et,{...e})})}function tt(e,n,t){const r=a(e),o=a(F(e,n,t));return c(()=>{r.current=e}),c(()=>{o.current=F((...e)=>{r.current(...e)},n,t)},[n,t]),o.current}function rt(e){const[n,t]=i(()=>te("function"==typeof e?e():e,!0));return[n,d(e=>{t("function"==typeof e?re(e):te(e))},[])]}function ot(e="lg"){function n(){const n=e=>{switch(e){case"xxl":return window.innerWidth>=1400;case"xl":return window.innerWidth>=1200;case"lg":return window.innerWidth>=992;case"md":return window.innerWidth>=768;case"sm":return window.innerWidth>=576;default:return!0}};return{isMobile:!n(e),width:window.innerWidth,match:n}}const[t,r]=i(n),o=tt(()=>{r(n())},100);return c(()=>(window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)),[]),t}var at;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(at||(at={}));const it=(e,n)=>{let t=a(!1);const[r,o]=i(()=>{const{lang:e="default",name:t=""}=n.voice||{};return{isPlaying:!1,status:at[at.init],lang:n.lang||"default",voiceInfo:{lang:e,name:t},rate:n.rate||1,pitch:n.pitch||1,volume:n.volume||1}}),s=d(()=>{t.current&&o(e=>({...e,isPlaying:!0,status:at[at.play]}))},[]),l=d(()=>{t.current&&o(e=>({...e,isPlaying:!1,status:at[at.pause]}))},[]),u=d(()=>{t.current&&o(e=>({...e,isPlaying:!1,status:at[at.end]}))},[]);return c(()=>{t.current=!0;const r=new SpeechSynthesisUtterance(e);return n.lang&&(r.lang=n.lang),n.voice&&(r.voice=n.voice),r.rate=n.rate||1,r.pitch=n.pitch||1,r.volume=n.volume||1,r.onstart=s,r.onpause=l,r.onresume=s,r.onend=u,window.speechSynthesis.speak(r),()=>{t.current=!1}},[]),r};function ct(e,n){c(()=>{const n=e();!async function(){await n}()},n)}export{Tn as $,$n as A,we as B,Xe as C,Ce as D,on as E,xe as F,Bn as G,ge as H,An as I,Mn as J,Un as K,Le as L,ce as M,xn as N,En as O,bn as P,Wn as Q,Ke as R,an as S,ye as T,Kn as U,Yn as V,Fe as W,Qn as X,Zn as Y,nt as Z,Be as _,ot as a,On as a0,it as a1,ct as a2,ze as a3,je as a4,Ln as b,$e as c,rt as d,Ne as e,Se as f,Ae as g,He as h,vn as i,Ie as j,qe as k,We as l,rn as m,nn as n,tn as o,un as p,hn as q,Te as r,mn as s,kn as t,tt as u,Nn as v,Ue as w,Sn as x,jn as y,Hn as z};
package/es/index.js CHANGED
@@ -1 +1 @@
1
- export{B as Button,C as Card,J as CardList,Y as Cascader,K as Clipboard,E as Error,F as Form,v as ImageZoom,U as InfiniteScroller,Q as Lightbox,L as Loader,t as LoadingButton,M as Message,D as Modal,A as ModalButton,z as ModalForm,N as NumberFormat,G as Offcanvas,O as OffcanvasButton,P as Pagination,m as Panel,n as PanelGroup,W as Qrcode,x as RequestButton,R as Result,Z as Select,V as Slider,S as Space,s as Statistic,q as Step,p as Steps,y as Table,e as Toast,X as ToastProvider,H as Tooltip,j as formatLongNumber,h as formatNumber,g as formatSize,l as getAbsoluteUrl,k as isImageUrl,f as isRecord,a3 as isRequestError,r as request,a4 as showRequestError,a2 as useAsyncEffect,a0 as useClipboard,b as useControllableState,u as useDebounce,d as useImmer,$ as useOverlayState,o as usePanel,_ as useRequest,c as useSafeState,a1 as useSpeech,a as useWindowSize,w as waitPayComplete}from"./index-QRjGJrZt.js";export{StyleSheetManager,ThemeProvider,createGlobalStyle,css,keyframes,default as styled}from"styled-components";export{useAsync,useAsyncCallback}from"react-async-hook";export{useInView}from"react-intersection-observer";export{default as queryString}from"query-string";export{freeze,immerable,produce}from"immer";export{default as dayjs}from"dayjs";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react/jsx-runtime";import"react";import"react-bootstrap";import"lodash";import"axios";import"retry-axios";import"notistack";import"path";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";
1
+ export{B as Button,C as Card,J as CardList,Y as Cascader,K as Clipboard,E as Error,F as Form,v as ImageZoom,U as InfiniteScroller,Q as Lightbox,L as Loader,t as LoadingButton,M as Message,D as Modal,A as ModalButton,z as ModalForm,N as NumberFormat,G as Offcanvas,O as OffcanvasButton,P as Pagination,m as Panel,n as PanelGroup,W as Qrcode,x as RequestButton,R as Result,Z as Select,V as Slider,S as Space,s as Statistic,q as Step,p as Steps,y as Table,e as Toast,X as ToastProvider,H as Tooltip,j as formatLongNumber,h as formatNumber,g as formatSize,l as getAbsoluteUrl,k as isImageUrl,f as isRecord,a3 as isRequestError,r as request,a4 as showRequestError,a2 as useAsyncEffect,a0 as useClipboard,b as useControllableState,u as useDebounce,d as useImmer,$ as useOverlayState,o as usePanel,_ as useRequest,c as useSafeState,a1 as useSpeech,a as useWindowSize,w as waitPayComplete}from"./index-kYqlWcrn.js";export{StyleSheetManager,ThemeProvider,createGlobalStyle,css,keyframes,default as styled}from"styled-components";export{useAsync,useAsyncCallback}from"react-async-hook";export{useInView}from"react-intersection-observer";export{default as queryString}from"query-string";export{freeze,immerable,produce}from"immer";export{default as dayjs}from"dayjs";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react/jsx-runtime";import"react";import"react-bootstrap";import"lodash";import"axios";import"retry-axios";import"notistack";import"path";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{memo as a,forwardRef as r,useState as e,useCallback as o,useImperativeHandle as i}from"react";import s from"react-infinite-scroller";import{d as m,r as p,i as n}from"./index-QRjGJrZt.js";import{last as d}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";var c=a(r(({source:a,render:r,as:c,useWindow:l,className:u,getState:g,limit:y=10},f)=>{const[h,j]=e(!1),[w,x]=m({params:{},end:!1,data:[]}),b=o(async(t=!1)=>{if(!h){j(!0);try{let r;const e=t?{}:w.params;r="string"==typeof a?await p({url:a,params:e}):await a(e),g||(g=t=>n(t)?{params:{page:t.current_page+1},end:t.current_page>=t.last_page,data:t.data}:{params:{offset:d(t)?.id},end:t.length<y,data:t});const o=g(r);x({...o,data:t?o.data:[...w.data,...o.data]})}catch{x({...w,end:!0})}finally{j(!1)}}},[a,w,g,h]),v=o(()=>{b(!0)},[b]);i(f,()=>({reload:v}),[v]);const _=o(t=>{x(a=>{const r=t(a.data);r&&(a.data=r)})},[x]);return t(s,{className:u,hasMore:!w.end,pageStart:0,loadMore:()=>{b()},useWindow:l,element:c,children:r({data:w.data,setData:_,end:w.end,loading:h,action:{reload:v}})})}));export{c as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{memo as a,forwardRef as r,useState as e,useCallback as o,useImperativeHandle as i}from"react";import s from"react-infinite-scroller";import{d as m,r as p,i as n}from"./index-kYqlWcrn.js";import{last as d}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"axios";import"query-string";import"retry-axios";import"notistack";import"path";import"react-async-hook";import"styled-components";import"dayjs";import"dayjs/locale/zh-cn";import"dayjs/plugin/relativeTime";import"dayjs/plugin/duration";import"classnames";import"use-url-search-params";import"copy-to-clipboard";import"goober";import"immer";import"react-intersection-observer";var c=a(r(({source:a,render:r,as:c,useWindow:l,className:u,getState:g,limit:y=10},f)=>{const[h,j]=e(!1),[w,x]=m({params:{},end:!1,data:[]}),b=o(async(t=!1)=>{if(!h){j(!0);try{let r;const e=t?{}:w.params;r="string"==typeof a?await p({url:a,params:e}):await a(e),g||(g=t=>n(t)?{params:{page:t.current_page+1},end:t.current_page>=t.last_page,data:t.data}:{params:{offset:d(t)?.id},end:t.length<y,data:t});const o=g(r);x({...o,data:t?o.data:[...w.data,...o.data]})}catch{x({...w,end:!0})}finally{j(!1)}}},[a,w,g,h]),v=o(()=>{b(!0)},[b]);i(f,()=>({reload:v}),[v]);const _=o(t=>{x(a=>{const r=t(a.data);r&&(a.data=r)})},[x]);return t(s,{className:u,hasMore:!w.end,pageStart:0,loadMore:()=>{b()},useWindow:l,element:c,children:r({data:w.data,setData:_,end:w.end,loading:h,action:{reload:v}})})}));export{c as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topthink/components",
3
- "version": "1.1.25",
3
+ "version": "1.2.1",
4
4
  "module": "es/index.js",
5
5
  "types": "types/index.d.ts",
6
6
  "files": [
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "author": "yunwuxin <tzzhangyajun@qq.com> (https://github.com/yunwuxin)",
70
70
  "license": "MIT",
71
- "gitHead": "1b2aed0bfff536822073eab1b44970fadc754bce",
71
+ "gitHead": "bf97bae04cbf072837f3dc02bf3223a71483026d",
72
72
  "scripts": {
73
73
  "prebuild": "rimraf es types",
74
74
  "build": "rollup -c --environment NODE_ENV:production",
@@ -2,7 +2,7 @@ import { JsonFormProps, JsonFormType } from '@topthink/json-form';
2
2
  import { ForwardRefExoticComponent, PropsWithoutRef, ReactNode, RefAttributes } from 'react';
3
3
  import { Method } from 'axios';
4
4
  export interface FormProps<T = any> extends Omit<JsonFormProps<T>, 'validate'> {
5
- onSuccess?: (data: any) => void;
5
+ onSuccess?: (result: any, data: T) => void;
6
6
  method?: Method;
7
7
  children?: ReactNode | ((props: {
8
8
  submit: ReactNode;
@@ -13,6 +13,7 @@ export interface FormProps<T = any> extends Omit<JsonFormProps<T>, 'validate'> {
13
13
  onSubmitting?: (submitting: boolean) => void;
14
14
  transformData?: (data: T) => T;
15
15
  validate?: JsonFormProps<T>['validate'] | true;
16
+ onRequest?: (data: T) => Promise<any>;
16
17
  }
17
18
  export interface FormType extends JsonFormType {
18
19
  }
@@ -3,6 +3,7 @@ import { ElementType, MouseEvent, ReactNode } from 'react';
3
3
  import { ButtonProps } from '../button';
4
4
  import show from './show';
5
5
  import confirm from './confirm';
6
+ import prompt from './prompt';
6
7
  import Message, { MessageProps } from './message';
7
8
  export interface ModalProps extends Pick<ReactModalProps, 'style' | 'container' | 'backdrop' | 'centered' | 'size' | 'scrollable' | 'fullscreen' | 'onHide' | 'onShow' | 'onEnter' | 'onEntering' | 'onEntered' | 'onExit' | 'onExiting' | 'onExited'> {
8
9
  children: ReactNode;
@@ -29,6 +30,7 @@ declare const Modal: {
29
30
  ({ header, children, footer, closable, show, cancelText, okText, onOk, onCancel, onHide, okButtonProps, bodyAs, headerAs, confirmLoading, ...rest }: ModalProps): import("react/jsx-runtime").JSX.Element;
30
31
  Message: typeof Message;
31
32
  confirm: typeof confirm;
33
+ prompt: typeof prompt;
32
34
  show: typeof show;
33
35
  };
34
36
  export default Modal;
@@ -0,0 +1,7 @@
1
+ import { FormProps } from '../form';
2
+ export interface PromptOptions<T> extends Pick<FormProps<T>, 'schema' | 'validate' | 'formData' | 'uiSchema' | 'onChange' | 'idPrefix'> {
3
+ title: string;
4
+ size?: 'sm' | 'lg' | 'xl';
5
+ layout?: 'vertical' | 'horizontal';
6
+ }
7
+ export default function prompt<T>(options: PromptOptions<T>): Promise<void | T>;
@@ -8,5 +8,5 @@ export interface ModalFormProps<T = any> extends FormProps<T> {
8
8
  children?: ReactNode;
9
9
  }
10
10
  type ModalFormType = ForwardRefExoticComponent<PropsWithoutRef<ModalFormProps> & RefAttributes<ModalType>>;
11
- declare const ModalFrom: ModalFormType;
12
- export default ModalFrom;
11
+ declare const ModalForm: ModalFormType;
12
+ export default ModalForm;
@@ -1,78 +0,0 @@
1
- import e from"sweetalert2/dist/sweetalert2.js";import n from"sweetalert2-react-content";import{jsx as t,jsxs as r,Fragment as o}from"react/jsx-runtime";import{useRef as a,useState as i,useEffect as s,createContext as c,useContext as l,useCallback as d,useMemo as u,Fragment as h,forwardRef as m,lazy as f,Suspense as p,Children as g,createElement as y,useImperativeHandle as w,memo as v}from"react";import{OverlayTrigger as b,Tooltip as x,Spinner as k,Button as N,Modal as C,ButtonGroup as S,ToggleButton as j,Card as z,Accordion as P,Stack as T,Alert as $,Pagination as H,Offcanvas as B,Row as E,Col as L}from"react-bootstrap";import{uniqueId as _,values as D,omit as R,debounce as M}from"lodash";import F from"axios";import O from"query-string";import*as U from"retry-axios";import{enqueueSnackbar as A,SnackbarProvider as I}from"notistack";import q from"path";import{useAsyncCallback as W}from"react-async-hook";import G,{css as K,createGlobalStyle as V}from"styled-components";import Y from"dayjs";import"dayjs/locale/zh-cn";import Q from"dayjs/plugin/relativeTime";import J from"dayjs/plugin/duration";import X from"classnames";import{useUrlSearchParams as Z}from"use-url-search-params";import ee from"copy-to-clipboard";import*as ne from"goober";import{freeze as te,produce as re}from"immer";import"react-intersection-observer";const oe=()=>{document.body.style.setProperty("--vh",window.innerHeight/100+"px"),document.body.style.setProperty("--100vh",window.innerHeight+"px")};window.addEventListener("resize",oe),oe();const ae=n(e),ie={confirmButtonText:"确定",cancelButtonText:"取消"},se={confirm:async e=>{const{isConfirmed:n}=await ae.fire({...ie,icon:"warning",showCancelButton:!0,...e,async preConfirm(n){if(e.preConfirm)try{return await e.preConfirm(n)}catch(e){return e instanceof Error&&ae.showValidationMessage(e.message),!1}return!0}});return n},success:e=>{ae.fire({...ie,toast:!0,position:"top",icon:"success",timer:2e3,showConfirmButton:!1,...e})},error:e=>{ae.fire({...ie,toast:!0,position:"top",icon:"error",timer:5e3,showConfirmButton:!1,...e})},close:e=>{ae.close(e)},defaults:ie};const ce=c({});function le(e){return({resolve:n,destroy:r,message:o})=>{const[c,h]=function(e){const n=a(null),[t,r]=i(e);return s(()=>{n.current&&(n.current(),n.current=null)},[t]),[t,(e,t)=>{n.current="function"==typeof t?t:null,r(e)}]}(!0),m=l(ce),f=d(e=>{h(!1,()=>{n(e)})},[h,n]),p=u(()=>({show:c,onHide:()=>f(),onExited:()=>r(),container:m.container}),[c,f,r]);return t(e,{resolve:f,state:p,message:o})}}function de(e){return n=>new Promise(r=>{const o=t(e,{resolve:r,destroy:()=>{fe(o)},message:n});me(o)})}let ue=()=>{},he=new Set;const me=e=>{he=new Set(he),he.add(e),ue(he)},fe=e=>{he=new Set(he),he.delete(e),ue(he)};function pe(e,n){return de(le(e))(n)}function ge({tooltip:e,children:n,placement:r="bottom"}){return t(b,{placement:r,overlay:t(x,{id:_(),children:e}),children:n})}const ye=c(!1),we=m(({loading:e,percent:n,disabled:a,children:i,tooltip:s,variant:c,...d},u)=>{l(ye)&&!c&&(c="link"),e&&(a=!0,i=r(o,{children:[t(k,{ref:u,as:"span",size:"sm",role:"status","aria-hidden":"true",animation:"border"}),n?r("span",{className:"ms-2",children:[n,"%"]}):null]}));const h=t(N,{ref:u,...d,variant:c,disabled:a,children:i});return s?t(ge,{tooltip:s,children:t("span",{className:"d-inline-block",children:h})}):h}),ve=function({state:e,message:{title:n,message:o,okText:a,cancelText:i},resolve:s}){return r(C,{...e,children:[t(C.Header,{children:t(C.Title,{as:"h5",children:n||"确认"})}),t(C.Body,{children:o}),r(C.Footer,{children:[t(we,{variant:"secondary",onClick:()=>s(),children:i||"取消"}),t(we,{onClick:()=>s(!0),children:a||"确定"})]})]})};const be=({header:e,children:n,footer:a,closable:s=!0,show:c,cancelText:l="取消",okText:d="确定",onOk:h,onCancel:m,onHide:f,okButtonProps:p,bodyAs:g,headerAs:y="h5",confirmLoading:w=!1,...v})=>{const[b,x]=i(!1),k=u(()=>t(we,{loading:b||w,variant:"primary",onClick:async e=>{x(!0);try{await(h?.(e)),e.defaultPrevented||f?.()}finally{x(!1)}},...p,children:d}),[p,d,h,f,b,w]),N=u(()=>t(we,{variant:"secondary",onClick:e=>{m?.(e),e.defaultPrevented||f?.()},children:l}),[m,f,l]),S={close:()=>{f?.()}};switch(typeof a){case"undefined":a=r(o,{children:[N,k]});break;case"function":a=a({okButton:k,cancelButton:N,action:S})}return r(C,{...v,onHide:f,show:c,children:[e&&t(C.Header,{closeButton:s,children:t(C.Title,{as:y,children:e})}),t(C.Body,{as:g,children:n}),a&&t(C.Footer,{children:a})]})};be.Message=function(e){const[n,r]=i(he);return s(()=>{ue=r},[]),t(ce.Provider,{value:e,children:Array.from(n).map((e,n)=>t(h,{children:e},`message-${n}`))})},be.confirm=function(e){return de(le(ve))(e)},be.show=pe;const xe=["default","error","warning","success","info"].reduce((e,n)=>(e[n]=(e,t)=>A(e,{variant:n,autoHideDuration:3e3,anchorOrigin:{vertical:"top",horizontal:"center"},...t}),e),{});function ke(e){return e&&"object"==typeof e}U.attach(),F.defaults.raxConfig={retryDelay:2e3,backoffType:"static",shouldRetry:({config:e,response:n})=>!(e.raxConfig?.retryDecider&&!e.raxConfig.retryDecider())&&("GET"===e.method?.toUpperCase()&&449===n?.status)},F.defaults.maxContentLength=1/0,F.defaults.maxBodyLength=1/0,F.defaults.baseURL="/api",F.defaults.authTokenName="authorization";const Ne=F.isAxiosError,Ce=e=>{if(!F.isAxiosError(e))throw e;xe.error(e.message)},Se=function(e){e?.baseURL&&(e.baseURL=q.resolve(F.defaults.baseURL||"/",e.baseURL));const n=F.create(e);return U.attach(n),n.interceptors.request.use(e=>{const n=e.authTokenName;if(n){const t=localStorage.getItem(n);t&&(e.headers={Authorization:`Bearer ${t}`,...e.headers})}return e},e=>Promise.reject(e)),n.interceptors.response.use(e=>(201===e.status&&e.data.location&&(window.location.href=e.data.location,e.data=void 0),e),e=>{if(F.isAxiosError(e)&&e.response){const{data:n,status:t}=e.response;401===t?e.errors="Unauthorized":ke(n)?422===t?e.errors=n:"message"in n&&(e.errors=n.message):e.errors=n,"string"!=typeof e.errors?e.message=Object.values(e.errors).join("<br />"):e.message=e.errors}return Promise.reject(e)}),n},je=async function(e,n){if(n||(n=Se()),e="string"==typeof e?{url:e}:e,(e={paramsSerializer:function(e){return O.stringify(e,{sort:!1,skipNull:!0,skipEmptyString:!0,arrayFormat:"bracket"})},...e}).onMessage){let n=0,t="",r=null;const o=e.onMessage;e.onDownloadProgress=e=>{const a=e.target,{responseText:i}=a;for(;n<e.loaded;){const e=i.substring(n,++n);if(t+=e,"\n"===e){if(r||(r={id:"",event:"",data:""}),"\n"===t)o(r),r=null;else{const e=t.match(/^data:(?<data>.*)/);e&&(r.data=e.groups.data.trim())}t=""}}}}const{data:t}=await n.request(e);return t};je.create=function(e){const n=Se(e),t=e=>je(e,n);return t.interceptors=n.interceptors,t},je.defaults=F.defaults,je.interceptors=F.interceptors;function ze(e){const n=(()=>{const e=a(!1);return s(()=>(e.current=!1,()=>{e.current=!0}),[]),e})(),[t,r]=i(e);return[t,d(e=>{n.current||r(e)},[])]}function Pe(e,n={}){const{locale:t="zh-CN",currency:r=!0,...o}=n;let a;a=r?{style:"currency",currency:"CNY"}:{minimumFractionDigits:2};return new Intl.NumberFormat(t,{...a,...o}).format(e)}function Te(e,{manual:n,refreshDeps:t,...r}={}){let{execute:o,currentParams:a,error:i,...c}=W(async n=>(e="string"==typeof e?{url:e}:e,await je({...e,...n})),r);s(()=>{if(!n&&!t)try{o()}catch{}},[]),s(()=>{t&&l()},t);const l=d(async()=>{try{a?await o(...a):await o()}catch{}},[o,a]);if(i&&Ne(i)){const e=i.errors;i=new Error("string"==typeof e?e:D(e).join(""))}return{refresh:l,execute:o,error:i,...c}}function $e({active:e,inverted:n,...r}){return t(He,{$active:e,$inverted:n,...r})}G.div`
2
- position: relative;
3
- `;const He=G.div`
4
- display: ${e=>e.$active?"flex":"none"};
5
- position: absolute;
6
- top: 0 !important;
7
- left: 0 !important;
8
- width: 100%;
9
- height: 100%;
10
- text-align: center;
11
- vertical-align: middle;
12
- padding: 1em;
13
- background-color: ${e=>e.$inverted?"rgba(255, 255, 255, .85)":"rgba(0, 0, 0, .85)"};
14
- opacity: ${e=>e.$active?1:0};
15
- line-height: 1;
16
- animation-fill-mode: both;
17
- animation-duration: .5s;
18
- transition: background-color .5s linear;
19
- flex-direction: column;
20
- align-items: center;
21
- justify-content: center;
22
- user-select: none;
23
- will-change: opacity;
24
- z-index: 990;
25
- `;function Be({loading:e=!0,children:n,variant:o="primary",animation:a="border",wrap:i,...s}){return e?(n&&(n=t("p",{className:"mt-3 text-secondary",children:n})),n=r($e,{inverted:!0,active:!0,children:[t(k,{animation:a,variant:o,...s}),n]}),i?t(Ee,{$height:"number"==typeof i?i:150,children:n}):n):null}const Ee=G.div`
26
- position: relative;
27
- height: ${e=>`${e.$height}px`};
28
- `,Le=f(async()=>{const{QRCodeSVG:e}=await import("qrcode.react");return{default:e}});function _e(e){return t(p,{fallback:null,children:t(Le,{...e})})}const De=function({state:e,message:n,resolve:r}){const o=a(!0),{result:i,checkUrl:c,onComplete:l}=n,[d,u]=ze(!1);return s(()=>{je({url:c,method:"post",data:{order_no:i.order_no},raxConfig:{shouldRetry:e=>o.current&&449===e.response?.status}}).then(()=>{l?.(),r()}).catch(()=>null)},[]),t(be,{...e,centered:!0,onHide:()=>{o.current=!1,e.onHide()},backdrop:"static",header:"支付结果",okText:"已完成支付",okButtonProps:{loading:d},onOk:async e=>{e.preventDefault();try{u(!0),await je({url:c,method:"post",data:{order_no:i.order_no,force:!0},raxConfig:{shouldRetry:()=>!1}}),l?.(),r()}catch(e){Ne(e)&&xe.error(e.message)}finally{u(!1)}},cancelText:"取消",children:"请在新打开的页面上进行支付,支付完成后再关闭此窗口"})},Re=function({state:e,message:n,resolve:o}){const i=a(!0),{result:{pay_options:c,order_no:l},checkUrl:d,onComplete:u}=n,[h,m]=ze(c.channels.alipay?"alipay":"wechat"),[f,p]=ze(!1);s(()=>{je({url:d,method:"post",data:{order_no:l},raxConfig:{shouldRetry:e=>i.current&&449===e.response?.status}}).then(()=>{u?.(),o()}).catch(()=>null)},[]);const{loading:g,result:y}=Te({url:c.url,method:"POST",data:{channel:h,order_no:l}},{refreshDeps:[h]});return r(be,{...e,onHide:()=>{i.current=!1,e.onHide()},centered:!0,backdrop:"static",header:"收银台",okText:"已完成支付",okButtonProps:{loading:f},onOk:async e=>{e.preventDefault();try{p(!0),await je({url:d,method:"post",data:{order_no:l,force:{channel:h}},raxConfig:{shouldRetry:()=>!1}}),u?.(),o()}catch(e){Ne(e)&&xe.error(e.message)}finally{p(!1)}},cancelText:"取消",children:[r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"商品名称"}),t("dd",{className:"col-9",children:c.subject})]}),r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"支付金额"}),t("dd",{className:"col-9 text-success h3",children:Pe(c.amount/100)})]}),r("dl",{className:"row",children:[t("dt",{className:"col-3",children:"支付方式"}),t("dd",{className:"col-9",children:r(S,{children:[c.channels.alipay&&t(j,{id:"payment-alipay",type:"radio",variant:"alipay"===h?"primary":"outline-primary",name:"alipay",value:"alipay",checked:"alipay"===h,onChange:()=>m("alipay"),children:"支付宝"}),c.channels.alipay&&t(j,{id:"payment-wechat",type:"radio",variant:"wechat"===h?"primary":"outline-primary",name:"wechat",value:"wechat",checked:"wechat"===h,onChange:()=>m("wechat"),children:"微信支付"})]})})]}),r("dl",{className:"row mb-0",children:[t("dt",{className:"col-3",children:"扫码支付"}),r("dd",{className:"col-9",children:[t(Be,{loading:g,wrap:200}),y&&t(_e,{size:200,value:y.data})]})]})]})};function Me(e){const{result:n}=e;n.pay_url?(window.opener=null,window.innerWidth<992?location.href=n.pay_url:(window.open(n.pay_url),pe(De,e))):pe(Re,e)}function Fe(e,n=2){const t=["","K","M","G"];let r=0;for(;e>=1024&&r<t.length-1;)e/=1024,r++;return e%1==0&&(n=0),e.toFixed(n)+t[r]}function Oe(e,n=2){const t=["","K","M","G"];let r=0;for(;e>=1e3&&r<t.length-1;)e/=1e3,r++;return e%1==0&&(n=0),e.toFixed(n)+t[r]}function Ue(e){const n=q.extname(e);return!(!/^data:image\//.test(e)&&!/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n))||!/^data:/.test(e)&&!n}function Ae(e){if(/^https?:\/\//.test(e))return e;const n=document.createElement("a");return n.href=e,n.href}Y.locale("zh-cn"),Y.extend(Q),Y.extend(J);const Ie={success:t("i",{className:"bi bi-check-circle-fill text-success"}),error:t("i",{className:"bi bi-exclamation-circle-fill text-danger"}),info:t("i",{className:"bi bi-info-circle-fill text-info"}),warning:t("i",{className:"bi bi-exclamation-triangle-fill text-warning"})};function qe({className:e,status:n,title:o,icon:a,extra:i}){return!a&&n&&(a=Ie[n]),r(We,{className:e,children:[a&&t(Ge,{children:a}),o&&t(Ke,{children:o}),i&&t(Ve,{children:i})]})}const We=G.div`
29
- padding: 48px 32px;
30
- `,Ge=G.div`
31
- margin-bottom: 24px;
32
- text-align: center;
33
- font-size: 72px;
34
- `,Ke=G.div`
35
- color: rgba(0, 0, 0, .85);
36
- font-size: 24px;
37
- line-height: 1.8;
38
- text-align: center;
39
- `,Ve=G.div`
40
- margin-top: 32px;
41
- text-align: center;
42
- `;function Ye({children:e,title:n,className:a,...i}){return t(Qe,{className:X("border-0 shadow-sm",a),...i,children:r("div",{className:"card-body",children:[n&&r(o,{children:[t("h5",{children:n}),t("hr",{})]}),e]})})}const Qe=G(z)`
43
- &:not(:last-child) {
44
- margin-bottom: 1rem;
45
- }
46
- `,Je=c(void 0);function Xe({children:e}){const[n,r]=i(new Set),o=d(e=>{e&&"string"==typeof e&&(e=[e]),r(new Set(e))},[r]);return t(Je.Provider,{value:[n,r],children:t(P,{activeKey:Array.from(n),onSelect:o,alwaysOpen:!0,children:e})})}const Ze=()=>{const e=l(Je);if(!e)throw new Error("usePanel must be used within a PanelGroup");return e};function en({title:e,action:n,children:a,eventKey:i,open:c}){if(i){const[,e]=Ze();s(()=>{void 0!==c&&e(e=>c?new Set([...e,i]):new Set([...e].filter(e=>e!==i)))},[c]),a=t(P.Collapse,{eventKey:i,children:r(o,{children:[t("hr",{}),a]})})}else a=r(o,{children:[t("hr",{}),a]});return r(Ye,{children:[r(T,{direction:"horizontal",children:[t("div",{className:"fs-5 me-auto",children:e}),n]}),a]})}function nn({errors:e}){return e?t($,{variant:"danger",children:t("ul",{className:"mb-0",children:"string"==typeof e?t("li",{children:e}):Object.entries(e).map(([e,n])=>t("li",{children:n},e))})}):null}function tn({children:e,className:n,size:r="small",direction:o="horizontal"}){"string"==typeof r&&(r={small:8,middle:16,large:24}[r]);const a=g.map(e,e=>{if(e)return t(on,{children:e})});return t(rn,{className:n,$direction:o,$size:r,children:a})}const rn=G.div`
47
- display: inline-flex;
48
- align-items: center;
49
- gap: ${e=>e.$size}px;
50
-
51
- ${e=>"vertical"===e.$direction&&K`
52
- display: flex;
53
- flex-direction: column;
54
- align-items: inherit;
55
- `}
56
- `,on=G.div`
57
-
58
- `,an=f(()=>import("./steps-DECts1pI.js")),sn=f(()=>import("./steps-DECts1pI.js").then(({Step:e})=>({default:e})));function cn(e){return t(p,{fallback:null,children:t(an,{...e})})}const ln=function(e){return t(p,{fallback:null,children:t(sn,{...e})})};function dn({title:e,content:n,footer:o}){return r(Ye,{children:[t(mn,{children:e}),t(hn,{children:n}),o&&t(un,{children:o})]})}cn.Step=ln;const un=G.div`
59
- margin-top: 9px;
60
- padding-top: 10px;
61
- border-top: 1px solid #f0f0f0;
62
- color: rgba(0, 0, 0, .65);
63
- `,hn=G.div`
64
- color: rgba(0, 0, 0, .85);
65
- font-size: 24px;
66
- `,mn=G.div`
67
- margin-bottom: 4px;
68
- color: rgba(0, 0, 0, .45);
69
- font-size: 1.1rem;
70
- `;function fn(){}function pn(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function gn(e){return"current_page"in e}function yn({total:e=0,onChange:n=fn,defaultCurrent:o=1,defaultPageSize:a=10,className:c,...l}){const[h,m]=i(o),[f,p]=i(a);s(()=>{pn(l.current)&&m(l.current)},[l.current]),s(()=>{pn(l.pageSize)&&p(l.pageSize)},[l.pageSize]);const g=u(()=>Math.floor((e-1)/f)+1,[e,f]),y=d(e=>()=>{e!==h&&(m(e),n(e,f))},[n,h,f]),w=h-1>0?h-1:0,v=h+1<g?h+1:g,b=[];let x=null,k=null,N=null,C=null;if(g<=7)for(let e=1;e<=g;e+=1){const n=h===e;b.push(t(H.Item,{active:n,onClick:y(e),children:e},e))}else{C=t(H.Last,{onClick:y(g)},"last"),N=t(H.First,{onClick:y(1)},"first"),x=t(H.Prev,{onClick:y(w)},"prev"),k=t(H.Next,{onClick:y(v)},"next");let e=Math.max(1,h-2),n=Math.min(h+2,g);h-1<=2&&(n=5),g-h<=2&&(e=g-4);for(let r=e;r<=n;r+=1){const e=h===r;b.push(t(H.Item,{active:e,onClick:y(r),children:r},r))}h-1>=4&&3!==h&&b.unshift(x),g-h>=4&&h!==g-2&&b.push(k),1!==e&&b.unshift(N),n!==g&&b.push(C)}return r("div",{className:X("mb-3 d-flex align-column-center justify-content-between",c),children:[r("div",{className:"d-flex align-items-center",children:["共 ",e," 条"]}),t(H,{className:"mb-0",children:b})]})}function wn({className:e,value:n,locale:r="zh-CN",currency:a=!0,options:i={}}){const s=u(()=>{let e;return e=a?{style:"currency",currency:"CNY"}:{minimumFractionDigits:2},new Intl.NumberFormat(r,{...e,...i})},[a,r,i]);return e?t("span",{className:e,children:s.format(n)}):t(o,{children:s.format(n)})}function vn({loading:e,disabled:n,children:r,...o}){return t(N,{...o,disabled:e||n,children:e?"Loading…":r})}const bn=f(()=>import("./image-zoom-He8CEHjx.js"));function xn(e){return t(p,{fallback:null,children:t(bn,{...e})})}const kn=m(({confirm:e,onSuccess:n,children:t,disabled:r,as:o=we,onError:a,...i},s)=>{const[c,l]=ze(!1),u=d(async t=>{t.preventDefault(),t.stopPropagation();try{if(l(!0),e&&!await be.confirm({message:e}))return;let t;if("onRequest"in i)t=await i.onRequest();else{const e="string"==typeof i.url?{url:i.url,method:i.method}:{method:i.method,...i.url};t=await je(e)}n&&n(t)}catch(t){if(!(t instanceof Error))throw t;a?a(t):xe.error(t.message,{preventDuplicate:!0})}finally{l(!1)}},[i,l]);return y(o,{...R(i,["onRequest","url","method"]),disabled:r||c,onClick:u,ref:s},t)}),Nn=f(()=>import("./index-DQ5B1OmL.js")),Cn=m((e,n)=>t(p,{fallback:null,children:t(Nn,{...e,ref:n})})),Sn=f(()=>import("./index-sbmUp8FC.js")),jn=m((e,n)=>t(p,{fallback:null,children:t(Sn,{...e,ref:n})}));let zn=0;function Pn({onHide:e,onShow:n}={}){const[t,r]=i(!1),[o,a]=i(`visible-${zn}`),s=d(()=>{r(!1),e&&e()},[r,e]),c=d(()=>{a("visible-"+ ++zn)},[a,zn]);return{visible:t,show:d(()=>{r(!0),n&&n()},[r,n]),hide:s,state:{show:t,onHide:s,onExited:c,key:o}}}const Tn=m(({text:e,onOk:n,modalProps:a,children:i,onShow:s,onHide:c,confirmLoading:l,as:d=we,...u},h)=>{const{state:m,show:f,hide:p}=Pn({onShow:s,onHide:c});w(h,()=>({close:p}));const g=y(d,{...u,onClick:e=>{e.preventDefault(),e.stopPropagation(),f()}},e);return r(o,{children:[g,t(be,{header:e,...a,...m,confirmLoading:l,onOk:async e=>{if(n){!1===await n()&&e.preventDefault()}},children:i})]})}),$n=m(({text:e,onSuccess:n,onSubmit:o,buttonProps:s,modalProps:c,children:l,...u},h)=>{const[m,f]=i(!1),p=a(null),g=a(null);w(h,()=>({close:()=>{p.current?.close()}}));const y=d(async()=>(g.current?.submit().catch(()=>{}),!1),[]),v=d(e=>{n&&n(e),p.current?.close()},[n]),b=d(async(e,n)=>{o&&await o(e,n)&&p.current?.close()},[o]);return t(Tn,{ref:p,text:e,...s,modalProps:c,onOk:y,confirmLoading:m,children:r(Cn,{...u,onSubmitting:f,ref:g,onSuccess:v,onSubmit:b,children:[l,t("input",{type:"submit",hidden:!0})]})})});function Hn({header:e,children:n,closable:o=!0,show:a,onHide:i,bodyAs:s,headerAs:c="h5",...l}){return r(B,{...l,onHide:i,show:a,children:[e&&t(B.Header,{closeButton:o,children:t(B.Title,{as:c,children:e})}),t(B.Body,{as:s,children:n})]})}const Bn=m(({text:e,offcanvasProps:n,children:a,onShow:i,onHide:s,as:c=we,...l},d)=>{const{state:u,show:h,hide:m}=Pn({onShow:i,onHide:s});w(d,()=>({close:m}));const f=y(c,{...l,onClick:h},e);return r(o,{children:[f,t(Hn,{header:e,...n,...u,children:a})]})});function En(e,n=[]){const t=a(e);return s(()=>{t.current=e}),d((...e)=>t.current?.(...e),n)}function Ln(e){const{value:n,defaultValue:t,onChange:r,shouldUpdate:o=(e,n)=>e!==n}=e,a=En(r),s=En(o),[c,l]=i(t),d=void 0!==n,u=d?n:c,h=En(e=>{const n="function"==typeof e?e(u):e;s(u,n)&&(d||l(n),a(n))},[d,a,u,s]);return[u,h]}const _n=m(({className:e,rowClassName:n,paginate:o=!0,sync:c=!1,columns:l=3,source:u,renderItem:h,renderEmpty:m},f)=>{const[p,g]=i([]),[y,v]=i(o?{total:0,current:1,pageSize:10}:null),[b,x]=i(!0),[k,N]=Z({}),[C,S]=Ln({value:c?k.page||1:void 0,defaultValue:1,onChange:e=>{c&&N({page:e||void 0})}}),j=d(async(e=!1)=>{e||x(!0);try{let e;const n={page:C>1?C:void 0};e="string"==typeof u?await je({url:u,params:n}):await u(n),o&&gn(e)?(e.last_page>1?v({total:e.total,current:e.current_page,pageSize:e.per_page}):v(null),e=e.data):v(null),g(e)}catch(e){}finally{x(!1)}},[u,g,C]);s(()=>{j()},[C]),s(()=>{z.current={reload:j}},[j]);const z=a({reload:j});return w(f,()=>z.current),r(Dn,{className:e,children:[t(Be,{wrap:!0,loading:b}),0===p.length&&!b&&m?.(),t(E,{className:X(n,"g-4"),children:p.map((e,n)=>t(L,{className:"d-flex",md:12/l,children:h(e)},`card-${n}`))}),y&&t(Rn,{...y,onChange:S})]})}),Dn=G.div`
71
-
72
- `,Rn=G(yn)`
73
- margin-bottom: 0;
74
- justify-content: flex-end;
75
- margin-top: 1rem;
76
- `;var Mn=v(_n);function Fn(){const[e,n]=i(!1),t=a();return s(()=>()=>{t.current&&clearTimeout(t.current)},[]),{copied:e,copy:d(e=>{ee(e),n(!0),t.current&&clearTimeout(t.current),t.current=setTimeout(()=>{n(!1),t.current=void 0},3e3)},[])}}function On({as:e="div",className:n,content:r,tooltip:o=!0,placement:a}){const{copy:i,copied:s}=Fn(),c=o?t("i",s?{className:"bi bi-clipboard-check"}:{className:"bi bi-clipboard"}):s?"已复制":"复制",l=y(e,{role:"button",className:n,onClick:()=>{"function"==typeof r&&(r=r()),i(r)}},c);return o?t(ge,{tooltip:s?"已复制":"复制",placement:a,children:l}):l}const Un=c({images:new Map,current:0,setCurrent:()=>null,setShow:()=>null,registerImage:()=>()=>null,getId:()=>0}),An=f(()=>import("./index-C97DS7ut.js")),In=f(()=>import("./image-SX99DbLN.js"));function qn(e){return t(p,{fallback:null,children:t(An,{...e})})}qn.Image=function(e){return t(p,{fallback:null,children:t(In,{...e})})},qn.Context=Un;const Wn=f(()=>import("./infinite-scroller-zConMfyx.js")),Gn=m((e,n)=>t(p,{fallback:null,children:t(Wn,{...e,ref:n})})),Kn=f(()=>import("./slider-DE41CkdN.js"));function Vn(e){return t(p,{fallback:null,children:t(Kn,{...e})})}function Yn({children:e}){return r(I,{children:[t(Qn,{}),e]})}const Qn=V`
77
- ${ne.extractCss()}
78
- `,Jn=f(()=>import("./cascader-BQf3OIMo.js"));function Xn(e){return t(p,{fallback:null,children:t(Jn,{...e})})}const Zn=f(()=>import("./select-CwDOdXXH.js"));function et(e){return t(p,{fallback:null,children:t(Zn,{...e})})}function nt(e,n,t){const r=a(e),o=a(M(e,n,t));return s(()=>{r.current=e}),s(()=>{o.current=M((...e)=>{r.current(...e)},n,t)},[n,t]),o.current}function tt(e){const[n,t]=i(()=>te("function"==typeof e?e():e,!0));return[n,d(e=>{t("function"==typeof e?re(e):te(e))},[])]}function rt(e="lg"){function n(){const n=e=>{switch(e){case"xxl":return window.innerWidth>=1400;case"xl":return window.innerWidth>=1200;case"lg":return window.innerWidth>=992;case"md":return window.innerWidth>=768;case"sm":return window.innerWidth>=576;default:return!0}};return{isMobile:!n(e),width:window.innerWidth,match:n}}const[t,r]=i(n),o=nt(()=>{r(n())},100);return s(()=>(window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)),[]),t}var ot;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(ot||(ot={}));const at=(e,n)=>{let t=a(!1);const[r,o]=i(()=>{const{lang:e="default",name:t=""}=n.voice||{};return{isPlaying:!1,status:ot[ot.init],lang:n.lang||"default",voiceInfo:{lang:e,name:t},rate:n.rate||1,pitch:n.pitch||1,volume:n.volume||1}}),c=d(()=>{t.current&&o(e=>({...e,isPlaying:!0,status:ot[ot.play]}))},[]),l=d(()=>{t.current&&o(e=>({...e,isPlaying:!1,status:ot[ot.pause]}))},[]),u=d(()=>{t.current&&o(e=>({...e,isPlaying:!1,status:ot[ot.end]}))},[]);return s(()=>{t.current=!0;const r=new SpeechSynthesisUtterance(e);return n.lang&&(r.lang=n.lang),n.voice&&(r.voice=n.voice),r.rate=n.rate||1,r.pitch=n.pitch||1,r.volume=n.volume||1,r.onstart=c,r.onpause=l,r.onresume=c,r.onend=u,window.speechSynthesis.speak(r),()=>{t.current=!1}},[]),r};function it(e,n){s(()=>{const n=e();!async function(){await n}()},n)}export{Pn as $,Tn as A,we as B,Ye as C,be as D,nn as E,Cn as F,Hn as G,ge as H,Un as I,Mn as J,On as K,Be as L,se as M,wn as N,Bn as O,yn as P,qn as Q,qe as R,tn as S,ye as T,Gn as U,Vn as V,_e as W,Yn as X,Xn as Y,et as Z,Te as _,rt as a,Fn as a0,at as a1,it as a2,Ne as a3,Ce as a4,Ln as b,ze as c,tt as d,xe as e,ke as f,Fe as g,Pe as h,gn as i,Oe as j,Ue as k,Ae as l,en as m,Xe as n,Ze as o,cn as p,ln as q,je as r,dn as s,vn as t,nt as u,xn as v,Me as w,kn as x,jn as y,$n as z};